412.343.3692
1.800.975.1844

Archive for November, 2006

Compelling and urgent: offers and subject lines

Wednesday, November 29th, 2006

I really notice lousy email subject lines and offers when I finally see good ones.

I opted in (by accident) to the email list of my favorite national clothing store. They have no e-commerce capabilities, so all email has the goal of driving the reader to the bricks and mortar location. They bore the reader with subject lines and no-offers like, “Shine this season at [our store]” and “Suede, Denim and more now at [our store].”

The company makes it worse by sending the whole ad in one picture. Many email programs, like Thunderbird or Outlook, may not open up the picture unless you click on the “show me the pictures” button (requiring yet another click. And clicks are precious.)

This week, though, their mail carried the subject line, “Hurry! Take an additional 20% off already reduced merchandise!” Not only did I open it, not only did I click to see the picture, but I printed it out and put it in my bag so that I could redeem the coupon.

You don’t always have to do a sale to get noticed. I only got onto this mailing list by asking them to please tell me when their brushed cotton winter pants came into stock. So even a nice little personalized text message about product availability would have been more interesting to me than another email about what fabrics they had in stock. “Sale - New Reductions Just Taken” would have been so much more compelling if it had been written, “Limited Time Sale! 50% off selected merchandise.” It really was a 50% sale, so the offer was compelling but the subject line fell flat.

Robbin Steif
LunaMetrics

Regular Expressions Part XII: Now Let’s Practice

Monday, November 27th, 2006

Now that I have learned and then explained all the Regular Expressions for Google Analytics:

Backslashes \
Dots .
Carats ^
Dollars signs $
Question marks ?
Pipes |
Parentheses ()
Square brackets []and dashes -
Plus signs +
Stars *
Regular Expressions for Google Analytics: Now let’s Practice
Bad Greed
RegEx and Good Greed
Intro to RegEx
{Braces}
Minimal Matching

let’s can work backwards, i.e. look at some expressons and figure out what they mean and why.

I always hate when techies give a really simple explanation and then jump to the hardest example possible, so I will try not to do the same (which is easy for me, not being a techie and all.) Let’s start with these warm-up examples from the Wikipedia entry on Regular Expressions.

  • “.at” matches any three-character string like hat, cat or bat. Reason: Because a dot matches any character. So hat, cat and bat are all good matches, as would be any other one character match to the dot.
  • “[hc]at” matches hat and cat. Reason: Because square brackets create a list of items, and you can match to any one item in the list. So this expressions matches hat by pulling the “h” out of the square brackets, and it matches cat by pulling the “c” out of the square brackets, but unlike the former example, it doesn’t match bat — that’s because there is no “b” in the square brackets.
  • “[^b]at” matches all the matched strings from the regex “.at” except bat. Reason: This is an alternative of the carat ^ – when it is inside square brackets at the beginning, it means “not.” Thus, the [^b] means, don’t match a b.
  • “^[hc]at” matches hat and cat but only at the beginning of a line. Reason: This is a more standard use of the carat ^ — it is not inside square brackets so it means, the RegEx will match your expression only if your expression starts at the beginning of the line.
  • “[hc]at$” matches hat and cat but only at the end of a line. Reason: This is identical to the second example in this list, except for the dollar sign at the end. The dollars sign ensures that the RegEx only matches your string if your string’s characters come at the end of a line.

OK, here is a slightly harder one, also from Wikipedia:

((great )*grand)?((fa|mo)ther)

I will take this apart to make it easier to understand.

The parenthesis create groups, separated by a question mark. So we effectively have:

(expression in this set of parenthesis)?(another expression in this set of parenthesis)

Since a question mark usually means, include 0 or 1 of the former expression, we know that this RegEx is allowed to match just the stuff in the second set of parenthesis (right? That’s what question marks do, they can match what comes right before them or not match what comes right before them. If they don’t match the stuff before them, only the characters after them are left to match.) So, let’s start by looking at the second half only, which we know should be able to stand by itself:

((fa|mo)ther)

The pipe symbol | means OR. So this resolves to (father) OR (mother). You might reasonably ask, why do we need all the parentheses? Technically, we don’t need the outside set but they make the expression easier to read when it is all together like this: ((great )*grand)?((fa|mo)ther) It would be perfectly reasonable to write an expression like this: (fa|mo)ther. We do need the inside set because if we got rid of them, the expression would look like this: fa|mother , which means, either fa OR mother.

Now let’s go back and look at the first half, the part that came before the question mark:

((great )*grand)

The star tells us to match zero, one or more than one instances of the expression before it. So it can match a string which doesn’t include great, in which case we just have grand, and of course, we always have the end of the expression, which will either be mother or father. So we might match to grandmother or grandfather. It can match a string which includes great just once, in which case we have great grand mother OR great grandfather. And it can match a string which includes great more than once, so we might end up with great great great great grandmother OR great great grandfather.

So there you have it, all your ancestors with just one Regular Expression.

If you didn’t understand any of that, please send me email, steif -at- lunametrics.com. (I am always disappointed that no one ever comments on RegEx posts.)

Robbin
LunaMetrics

More on Website Goals

Sunday, November 26th, 2006

I consistently am reminded that not all website owners — even ecommerce website owners — have purely financial goals.

Usually, I see non-monetary goals that are about ego or competitiveness. However, I got onto the B&H website yesterday - Saturday - (because they have great prices) and was surprised to see that the shopping cart was closed, but would open at 5:45 pm.

I whipped out my calendar and saw that in New York City, where they are based, nightfall was at 5:08 PM last night. Then I went to Shimon Sandler’s site. He did a piece that I read a couple of weeks ago. At issue were Orthodox Jews who own e-commerce sites and wanted to turn off the sites on the Jewish Sabbath. (This time, I actually noticed that he linked to the B&H site as an example.)

B&H is not a small 10-page website. They have 424,000 pages according to Google. They sent me a 420 page catalog in the mail after I dropped $35 for a jumpdrive and a USB cable there. Online weekend shopping will continue to get stronger as just about everyone has broadband at home, and this is a big (private) company willing to forego plenty of Friday night and Saturday purchases in the name of their beliefs.

Read my other post on this topic: The Web, is it just about making money?

Robbin Steif
LunaMetrics

Update: auto-create Google Analytics Powerpoint and Excel presentations

Friday, November 24th, 2006

Just a note to tell everyone that if they want to auto-generate .ppt and .xls from Google Analytics, the software that Chris Harrington created (and I user tested and nagged about and then user tested again) is now updated. You can read the original post here. If this is something that interests you, please read the whole post because there are a number of “must have” issues.

Robbin Steif
LunaMetrics

Regular Expressions Part XI: Real Wildcards .*

Monday, November 20th, 2006

Now we are (I am) ready for a Google Analytics Regular Expression that is truly a wildcard .*

Months ago, I wrote a blog post about Regular Expressions Wildcards for Google Analytics. But when I went back to it, it was only semi-intelligible, so I deleted it and created all the Regular Expression building blocks first. If you like, you can read all ten of them:

… you can read all of them, stretching out over a year:

Backslashes \
Dots .
Carats ^
Dollars signs $
Question marks ?
Pipes |
Parentheses ()
Square brackets []and dashes -
Plus signs +
Stars *
Regular Expressions for Google Analytics: Now let’s Practice
Bad Greed
RegEx and Good Greed
Intro to RegEx
{Braces}
Minimal Matching
Lookahead

Now that you (or perhaps more correctly, I) understand the building blocks, let’s talk about how to create real wildcards.

Most of us are familiar with a star as a wildcard, outside of Regular Expressions. We can search for all our .jpg files on our computer with this: *.jpg, which to us means “get everything.jpg.” However, with Regular Expressions, a star only means repeat the last character zero times or once or more than once. In order to make it mean “get everything,” you have to pair it with a dot, like so: .*

Why? Because, a dot means get any character. A star means, repeat the last character zero times or once or more than once. So the combination means, repeat any characters as often as you like, i.e. get everything.

If we wanted to get every occurance of a jpg file, we would do it with a RegEx that looked like this:
.*\.jpg

For those of you who are scratching your head instead of nodding your heads, here is why: .* tells Google Analytics to match everything (as described above). The next part of the expression \. tells GA to then match a real dot. This is because dots are usually wildcards in their own right, but using a backslash turns them into ordinary dots. The last three characters, jpg, tells GA to match the letters jpg. So we get end up with “everything.jpg,” which was just what we wanted.

Robbin
LunaMetrics

Many thanks to Justin and his awesome RegEx Tool (which doesn’t require a download.) Postscript: And of course, thanks to Steve, who taught me Regular Expressions from the beginning and found an error in this original post.

Measuring downloads and other onclick events

Saturday, November 18th, 2006

“Honey, I finally coded my blog’s onclick events,” I told my spouse. He looked at me like I had lost my mind, but in fact, I had worked earlier in the week to code the download of a .pdf from his page at CMU. Onclick events are everywhere.

Before we get into the main topic, let’s talk about events in general. Most web analytics, like most web analysts, are event driven. We want to know that someone signed up for our email marketing, we want to know that someone put something into the shopping cart, that someone downloaded a .pdf.

Lots of times, this is no trouble at all. When the page changes, that signals EVENT to the web analytics. There are at least three reasons why it is nice to have a new page show up when the user clicks on something:

1) It creates great feedback for the user (he’s not mumbling, “Did anything happen there or do I need to click again?”)
2) It gives a website the opportunity to talk to the user (”Thank you for your request for information, we’ll be getting back to you within 24 hours,” etc.)
3) It makes the measurement easy.

However, not all clicks can be measured with a page chage. Examples of events that we are probably desperate to measure and that may require special treatment are:

  • Clicks that send you to a different page. How many people clicked over to WebEx to sign up for that webinar, how many people clicked over to FeedBurner to subscribe to your feed? You can’t know what they did once they got to the other site, but you can at least learn that they clicked.
  • Downloads - your .pdfs, your video files, your audio files. You won’t know how many pages they looked at or how much they listened to, but you’ll know that they clicked to download. (You really won’t know if they finished the download either.)
  • Rich media events, like Flash

and more.

Most web analytics solutions still can measure these kinds of events, but require special code. Maybe it’s a special variable, maybe it’s a special on-click call. No matter how you look at it, it usually requires just that much more work on your part.

On the other hand, we need to use onclick events now more than ever. Flash and AJAX are pervasive and lead to many minutes (or hours) of work on pages that never change. I predict that coding onclick events will become much easier - as easy as coding a hyperlink is right now. A little window will come up, you’ll be able to specify the kind of event and what you want to call it, and you’ll be on your way. This is my same old story, though: web analytics will really make it when we really make it easy.

For the record, I went through all the Omniture videos in an effort to learn how SiteCatalyst 13 handles rich media events (part of the press release spoke to their new abilities in that realm) but I couldn’t figure out what the new functionality is. Anyone is welcome to add that.

Robbin Steif
LunaMetrics

Two more thoughts on Blog Conversion

Thursday, November 16th, 2006

Earlier this week, I wrote twelve tips on blog conversion. Here are two additional thoughts:

1) One commenter asked how I felt about including only a snippet of the post in the feed, so that all the people using feeds have to visit the blogsite to read the whole thing. Although I personally hate it, I would urge everyone to test it themselves. I was very influenced, a year ago, by this post that Xavier Casanova did on his analytics blog. When you read the comments, you really hear his audience telling him exactly what they want, and they really wanted to see the whole post in the feed. Thanks X, for finding that post for me.

2) I alluded to the importance of having on-site search. If you blog a lot and link among your posts, no one will use your on-site search box quite as much as you will, I promise you. You will want to link back to the post you did last year and won’t be able to find it without a search box.

Robbin Steif
LunaMetrics

Regular Expressions Part X: Stars *

Wednesday, November 15th, 2006

This is Part X of the long long series I have been doing on Regular Expressions (RegEx) for Google Analytics. It is the last one I will do that explains what Google says vs. what they mean.

When it comes to stars (or call them asterisks if you like), Google Analytic says this:

* Match zero or more of the previous items

Perfectly reasonable, if you know how to create a list of previous items. If you already read Post IX, use of the plus sign in RegEx, this will be easy, and if not, I’ll try to make it easy.

If the only special character you are using is the star *, then the previous item is defined as the previous character. For example, let’s say that my company has five digit part numbers, and I want to know how many people are searching for part number 34. The problem I have are all those leading zeros - technically, the part number is PN00034. So I could use the little Google Analytics filter box in my search report with a RegEx like this: PN0*34. That will bring me back all the searches for PN034 and PN0034 and PN00034 and PN00000034 and for that matter, PN34, since using the star means that the previous item doesn’t need to be in the search — zero or more of the previous items, it says.

Alternatively, we could build a list of previous items using square brackets. Like in my post on plus signs, I had a hard time finding a reason someone would want to use this, but again, used the example that Steve gave me. His example was square brackets with a space. So, I could do a search for my company name in the same filter box on the keywords report, like so:
Luna[ ]*metrics. That will come back with LunaMetrics (no use of the space) or Luna Metrics, or Luna Metrics, etc.

For the sake of completeness, I should point out that you can put real characters in the square brackets like this:b[aeiou]*d, and it matches bad and bed and bid and bod and bud. But for that matter, it matches baaaad and boud and bd, so I don’t think it is particularly useful. If I really just wanted to see those five examples (bad, bed, bid, bod and bud), I would be smarter to use the OR pipe | and do it like this: b(a|e|i|o|u)d.

Anyone who has a great example of using a star with square brackets is strongly encouraged to comment.

Backslashes \
Dots .
Carats ^
Dollars signs $
Question marks ?
Pipes |
Parentheses ()
Square brackets []and dashes -
Plus signs +
Stars *
Regular Expressions for Google Analytics: Now let’s Practice
Bad Greed
RegEx and Good Greed
{Braces}
Minimal Matching
Lookahead

Robbin
LunaMetrics

Blog conversion: Twelve highly-detailed suggestions

Monday, November 13th, 2006

At least three of my friends have started blogs in the past two weeks. Every time I read one, I start to compose an email with suggestions and then I remember that not everyone likes unsolicited advice. So (for those three friends and everyone else who has a blog): here are my thoughts on how to increase your blog conversion (assuming you define conversion as getting your audience to be more involved with your blog.) It is not the Big Picture — for that one, you have to go read Avinash’s post on blogging. It is not about blog SEO — for that one, you have to go read Rand’s post on blogging. No, these are details that are way down in the weeds, but that’s where the devil is, no?

1. Compose in an editor that won’t insert strange characters into your feeds

It’s easy to see who composes in MS Word — those are the bloggers whose feeds look like this:

I’m researching options for being able to find zip codes within a specific distance from a location. Thus far I’ve found a couple of desktop applications, ZIP Code Download’s Lookup GXE and Xionetic’s …

If the subscriber is reading with something like My Yahoo, he only sees the titles anyway and has to click through to the blogsite - so if you are checking this comment against a reader like My Yahoo, you won’t see the mess that I see in my blog reading software. (I use Thunderbird, as do about 4% of my subscribers.)

I have experimented with this problem a lot and haven’t found a way to save the Word document such that the strange characters don’t come through. (The same is often true if you cut and paste an email into a post, which is actually what happened with the above post, the writer told me.) The best is to compose in Notepad, spellcheck a copy of it in Word and then manually fix your typos. This is an opportunity for everyone who uses a Mac to tell me how much better their technology is.

2. Link among your posts.
If I subscribe to your blog (so I can read your content without checking out your blogsite) and you don’t link to your other posts, I am much less likely to check out other posts that you have written. This is also a problem for non-subscribers who land on a permalink with, say, a Google search (so they do visit your blogsite), but you don’t link among your posts and they still don’t see any more than the one page.

3. You have an internal search engine.
Even a crummy search engine, like the one that Technorati provides for free, is better than nothing. Don’t you hate when you remember reading something great on someone’s site, you get to the site, and you have no idea how to find it?

4. When you do a multi-part series, link both forwards and backwards.

I am currently writing a multi-part series on Regular Expressions for Google Analytics. I am up to Part Nine, and I promise you that linking both forward and backwards has been difficult and time consuming and sometimes I just don’t get to it. Why not? Because when I put up Part X, I will have nine other older posts that need to have changes made to them. On the other hand, when I am done (it should only happen!!) I will completely index everything because it drives me a little crazy when other bloggers forget this nicety.

5. Set up your software so that your posts are signed in some way.

I see this problem a lot with new bloggers. They don’t explore all the options that Blogger/Wordpress etc gives them — and one of those options is the ability to electronically sign their posts. The WordPress default seems to be Administrator, so if you haven’t set up a name for yourself, your post comes through to me like this:

Clear those Cookies - by Anonymous

This is especially important if you have a blog with multiple authors (as a reader, I want the ability to skip the author that I hate and go right to the author that I love.)

6. Have an “About Us” section
I really, really want to know who you are. Do you work for Microsoft? Are you a Google Analytics Certified Representative? This problem (no “about us” or “about me” section) is the worst when it is combined with #5, because then you have neither a name nor a description of yourself.

7. Use feed chicklets and the Universal feed icon.

Just because your blog is Atom or RSS enabled doesn’t mean that people will subscribe. It’s true that in Firefox you can see the Universal feed icon in the address bar, but if the reader just wants to click that Bloglines chicklet and be all set up, a little orange icon is just not going to do it for them. Spend a minute and subscribe to my favorite company, FeedBurner, and then use their Chicklet Chooser capabilities.

8. Don’t blog so often that I can’t keep up with you
This is very subjective. There are a lot of blogs, like TechCrunch, that do incredibly well with ten posts a day. I still subscribe to them, but now I only scan the titles (an argument for great titles), and maybe look at one item. In general, I find myself unsubscribing when I can’t keep up. Since your mileage may vary, you should test test test.

9. There is no 9. (Really. I skipped it accidentally.)

10. Don’t blog so rarely that I forget to take your seriously
Enough said

11. If you take a vacation, you may have a hundred posts when you get back, but save them to use over time.
One of my friends was unable to write for a few weeks and then published four incredible posts, all in one day. I wish he lived here in Pittsburgh so that I could take him out for a drink and chastise him. If the posts aren’t time sensitive, write them up and just publish them, one each day.

12. Make it easy to scan your post.
Not every post is meant to be scanned. When you write a very technical, in depth post about how to create a certain kind of functionality, the reader need to read it. But a post like the one you are currently reading is perfect for scanning. You can read the boldfacing and then pause to read the test where you are truly interested.

Additions?

Robbin Steif
LunaMetrics

Regular Expressions Part IX: Plus signs +

Thursday, November 9th, 2006

This is part nine of a multi-part series I am doing to make Regular Expressions (”RegEx”) more understandable for users of Google Analytics. I am learning and teaching at the same time.

Today, I am writing about the plus sign, +. Here is how GA defines the plus sign:

+ Match one or more of the previous items

This probably seems perfectly reasonable to Google and other old hands at Regular Expressions, because they already know how to define “the Previous Items.” But I didn’t and had to figure it out.

The simplest meaning of “Previous Items” is “previous character.” So, I could look for my name in my Google Analytics search terms by typing this into the “quick filter” box: Rob+in. That will return Robin or Robbin, and for that matter, Robbbbin. It’s actually pretty useful, since I get a lot of searches like that, and often want to filter them out.

Alternatively, you can build a list of Previous Items by using square brackets. Like this: [abc]+ This will return a, ab, cab, c, b, bbbb and the like. This seems a little strange, but in fact, if you read the interpretation (”match one or more of the previous items”), you’ll notice there isn’t anything about the previous items being in a specific order.

However — I couldn’t think of any way to use square brackets with a plus sign that I couldn’t achieve with other Regular Expressions. So I wrote my tutor in Australia, Steve. The best example he had was searching for a space. Thus: if I wanted to know how many people type in web site or web site or even web site, I could create web[ ]+site for my Regular Expression.

If you have any other great uses of square brackets and plus signs for Google Analytics, please share them.

Backslashes \
Dots .
Carats ^
Dollars signs $
Question marks ?
Pipes |
Parentheses ()
Square brackets []and dashes -
Plus signs +
Stars *
Regular Expressions for Google Analytics: Now let’s Practice
Bad Greed
RegEx and Good Greed
{Braces}
Minimal Matching
Lookahead

Robbin
LunaMetrics