ColdFusion Muse

Developersauros Tarpit - Email Marketing

If it hasn't happened to you yet get ready - it will. Some client or potential client is going to ask you if you can do an "email blast". Now, they might mean that they want to send a newsletter or announcement to their own customers. Or they might mean they want you to contribute to the juggernaut of spam that is flooding the Internet. To you, spam is a battle - a titanic struggle between good and evil. To them, spam is minor annoyance, or (due to the fact that many clients are salesman turned businessman) a goldmine of nearly free marketing. Of course, they may not read 200 to 300 emails a day. In any case you will have to consider how to respond and what kind of advice to give your client. Here are a few important things to consider.

4>Tracking customer "read" requests

The first question you will get after you tell him or her it is possible (resist the temptation to lie) is, "How do I know if a recipient has read an email? The answer is to use a web bug for tracking. What's a web bug? It's usually a transparent 1 X 1 pixel gif image that is embedded in an HTML email. For example, let's say you have this IMG tag:

If this looks unusual to you, spend some time looking at the source code of some email marketing messages. Here's what the Coldfusion code looks like on the other end:
<cfset transGif = "c:\1x1.gif">
   <cfparam name="url.emid" default="0">
   <!--- increment for the email --->
   <cfquery name="update" datsource="#dsn#">
      UPDATE   myCampaign
      SET      hasRead = hasRead + 1
      WHERE   emid = #val(url.emid)#
   </cfquery>

   <cfcontent type="image/gif" file="#transGif#">
The query code and operation could be a lot more complicated, but the principle is the same - mark the user as "read" and serve up a GIF image. When the user reads the message by opening or reading it in preview mode the gif image is retrieved and "displayed" on the page (obviously it's tiny and transparent so it does not really serve any purpose). Straightforward right?

How good is "read" information?

The short answer is, "not very good". This is what you need to drive home to your client. I promise, you will have to say it over and over again. They can go to any one of the popular email marketers (the Internet version of a cross between a snake oil salesman and a lawyer), and get claims of 100% accuracy or 60% click through rates - yada yada yada. This point may even have to be "proven" to the client. It's hard for them to believe or sometimes comprehend how many things have to go right over and over again for the data to be worth anything intrinsically. You will simply never be able to say with certainty that "500 people read our email out of 50000 messages sent." Here are some points to drive home.

  • Many people don't read HTML email - In order for the "read" data to be correct and accurate it must be rendered in HTML. If a user only reads in text mode they will never be listed as "read".
  • Major email providers now require user pro-action to display graphics - Yahoo, Gmail, and Hotmail aggressively filter advertising email into a bulk folder and require a user to proactively unblock the images to see them. No images, no tracking. The next version of Outlook will contain the same feature - set "on" by default.
  • ISPs, network spam control and filters can and do block requests for web bugs.
  • Email messages with interesting content are often forwarded - This can scew the numbers of "reads per send" if you are doing targeted marketing.
  • Users can open an email multiple times - skewing the results as well.
  • Spam is universally hated and despised by all - make sure you are following the rules, sending to legitmate lists, and that your email messages are relevant and interesting - not just clever.
  • Your message will be filtered - Things are tightening up. Spam is a legitimate problem on the internet costing companies billions per year. More and more resources are being devoted to fighting it, and more can be expected.
  • Remember the preview pane - an email displayed in the preview pane of an email client (like outlook) will count as "read" - even if the user was simply moving through his inbox and deleting messages.

Add all of that up and it should be obvious that the data delivered by a web bug is at the least unreliable and at the worst crap. I tell customers that they can use such data as a way of determining the effectiveness of campaign "A" against campaign "B". Click throughs are much better for understanding the effectiveness of a campaign, but clients like "read" numbers because they are always higher than click-throughs, and that makes them sexier.

Textual Content is Important

Get your client to think - really think - about the textual content of the campaigns. So many campaigns are nothing more than groups of images and links - with no textual content at all. You are throwing away a chance to reach a large percentage of users if you pay little attention to the text. Remember, all those hotmail, yahoo and gmail users may not see your images, but they will all see your text. It's amazing how clients will often spend a great deal of money to design amazing graphic content for email delivery, but then totally blow it when it comes to the actual message. Along that same line, take advantage of multi-part messaging. Send out emails with both html and text mail parts. Doing so paints with the broadest possible brush.

Beware of the numbers

Try to emphasize to your client to not trust statistics. Especially if they use a third party email service! The numbers of reads, response rates, campaign efficacy etc. - can all be misinterpreted or downright deceptive. I ran across this excellent article by Loren McDonald (email labs is an email marketing company) on the subject today.

Comments
Jeff Coughlin's Gravatar Back in 2001 I had a client with over 100,000 customers. They started selling their products online as well (ecommerce). After 2+ years 10% of their income came from web sales (about $18 million per year). Approximately 30,000 of their customers opted to receive emails for product deals.

The client finally decided to use their email offering feature. We (the programmers) followed all of the rules (encrypted opt-out option, targetted emails by market segment, etc). We missed one small detail though. That afternoon we got a "threat-to-terminate contract" call from our ISP for spamming (oops). Apparently this particular ISP required that you a.) notify them that you plan on doing mass-mailing, and b.) sign a new contract with tons of mass-mailing rules.

Luckily we were able to sort things out without being disconnected. Some of the requirements were that we send them out in a limited number of emails at a time (it wasn't bad. I believe it was something like 10k emails per 3 minutes or something. It was easy enough to write in CF).
# Posted By Jeff Coughlin | 7/18/05 9:37 AM
Shawn (AdPulp.com)'s Gravatar Good points about email blasts.

Two additional points:
1) Don't forget the unsubscribe page (to be CAN-SPAM compliant), but do not link it with numeric querystring that is remotely close the unique identifier of your database. Either pass the email address or an encrypted character set.

Otherwise, anyone with knowledge of simple data-scraping techniques could swipe your entire DB of addresses.

2) For the tracking, you could also pass an ID for the email campaign as well. For the marketing folk, being able to track numbers by campaigns is usually pretty important.
# Posted By Shawn (AdPulp.com) | 7/18/05 9:48 AM
mkruger's Gravatar An excellent point. Be sure and work with your ISP if you are sending mass email. For most ISP's, handling email is 10x more expensive for them than hosting a web site - even an application based website. Believe it!
# Posted By mkruger | 7/18/05 9:49 AM
mkruger's Gravatar Shawn - Good points. I didn't include all the nuances of what to include in the link or what to track. Please explain how someone could acquire your database via a numeric identifier? Are you somehow "giving back" the email address? We usually require that a user enter an email in - and it must match the identifier we've set. What are we missing?
# Posted By mkruger | 7/18/05 9:56 AM
Jeff Coughlin's Gravatar To allow people to link back to the site we've generally either done a.) encrypted variables in the URL (I have a custom tag for this on my site) or b.) in recent versions of CF we've identified the users by using UUIDs. CF7 has much better encryption methods that we now use, so I really need to update my custom tag :).

And yes, we add extra URL variables so that marketing can use other information. But thats generally customised for each client.
# Posted By Jeff Coughlin | 7/18/05 10:05 AM
Shawn's Gravatar Follow up to my post comments earlier.

First, yes, you are fine with requiring the user to type in their address as confirmation. But the CAN-SPAM zealots read the act as meaning make the Unsubscribe as easy as possible. i.e. clicking a button because making the recipient type in his address is just sooooo more difficult and time consuming.

Quite a few email marketers have been bitten by the 'unsubscribe bug.'

Simply put, the quick and easy method for tailoring a email blast with an unsubscribe link would include the recipients ID in the in the querystring back to the unsubscribe page.

Something like:
www.yourdomain.com/unsubscribe.cfm?id=212

The unsubscribe page would of course fetch the email and display it so the recipient only needed to verify the info was correct and then click the confirmation button.

The evil spam thugs quickly realized that running a script to request that page and looping through a numeric range could grab each page and store the results remotely (via XMLHTTPRequest or something similar).

An easy fix would be to send the email back:
www.yourdomain.com/unsubscribe.cfm?e=joe@yourdomai...

A better way is a unique encrypted string:
www.yourdomain.com/unsubscribe.cfm?hhx=nndfvgg

Off the top of my head, I remember SubscriberMail was hit by this a few years ago and vaguely remember them losing a big chunk of their clients' databases including Harley Davidson. I think TailoredMail also got hit.

Granted, all the big mail shops shouldn't be vulnerable to this anymore, but I still see it often on mail blasts put together by smaller shops that just aren't as familiar with the logistics of the technology.
# Posted By Shawn | 7/18/05 11:28 PM
mkruger's Gravatar I see where you are coming from there. If I have a page that simply displays an email address based on a numeric sequence someone could (in effect) come and get my entire list of emails. Thanks for adding this excellent explination.
# Posted By mkruger | 7/19/05 12:36 PM
sebasvd's Gravatar Using CFPARAM on your query strings is very important as well.
# Posted By sebasvd | 7/1/09 4:27 PM



Blog provided and hosted by CF Webtools. Blog Sofware by Ray Camden.