Help your customers unsubscribe

Once you go to the effort of getting someone on your email list, of course you want them to stay there.

And in most cases, you’re emailing when you have something interesting to say, and you’re producing compelling content that means that your subscribers will never, ever, want to leave.

But there are a bunch of reasons why you should make it really easy for them to do that, anyway.

1) Some subscribers will mark you as spam instead of unsubscribing.

The more people who mark you as spam, the higher risk that GMail (for example) will mark your email as spam for all of its users. Avoid this by letting people tell you, with very little effort, when they’re not interested.

2) It looks good.

Even if I’m not planning to unsubscribe from your email, providing the option shows respect and consideration for your users. It also prevents them from complaining on social media.

3) The difficulty of your unsubscribe process shouldn’t be what keeps people on your list.

Amazon offers its warehouse associates $5,000 every year to quit the company. Why? They don’t want people onboard who don’t want to be there.

In the same way, in most cases you don’t want email subscribers who don’t want to be there. Yes, there’s room for convincing people, but your marketing process at every other step of the funnel is about generating the right leads, not just leads in general.

If someone tells you they’re not the right person, take their word for it.

4) It lets you focus your efforts better.

Database segmentation can be tricky, but at least part of the “people who are very unlikely to buy from you” segment can be delineated very quickly. Your understanding of your database, and your marketing efforts, will be much better if you can reduce that segment to zero or almost zero members.

Also, allowing people to unsubscribe easily, especially if you provide the option to tell you why they unsubscribed, can give you valuable data to increase your emails’ effectiveness.

“We’re not testing fast enough!”

It’s really hard to accelerate A/B tests, for lots of reasons. Unfortunately, it’s also desirable to accelerate A/B testing, to get people excited and to show that you’re making progress. Here are some alternatives:

Try not testing. Seriously. You will have to accept the possibility that the changes you make won’t work. (Which you have to accept anyway, even if it’s less likely, when you A/B test.) But can you find some best practices, or do you have historical research, that can help you? For example:

  • Use a library of completed tests, such as, to give you guidance
  • Follow best practices that are research-based. Usability sites like the Nielsen Norman Group often have great advice that is grounded in data
  • Do user testing, instead of A/B testing. Services like will let you record people as they navigate a page or site, which might give you valuable insight that you can use
  • Put your effort elsewhere, entirely. Let’s say you have run a bunch of tests on a page that are showing very little impact. You get an extra 100 conversions a month in the best case. You could also write a great blog post, that has a 10% chance of giving you 1,000 conversions a month. Do that instead.

Do more radical tests, and fewer of them. It’s possible that you’ve hit a local maximum, and further tests will have a high chance of running without showing a significant result. Redesign something altogether, instead of tweaking, and test that.

Adjust the significance (the chance that you will get a false positive) or power (the chance that you will get a false negative) of the test down; trade certainty for time.

Think hard about whether you are running the right tests. I was once asked to run tests on a page that actually couldn’t be changed for political reasons. I have also been asked to run many, many tests on the same page, to avoid a hard conversation about priorities and strategy. You probably won’t decide the design of a page based on an A/B test. That should be a strategic brand decision.

How to avoid running online advertising experiments

Let’s say you’re trying to figure out how expensive it will be for you to run ads on, say, Twitter. How do you spend as little as possible while still getting a sense for whether this is a viable channel?

Step 1, is, don’t. Before you spend anything, answer these questions in detail. You can actually get a lot of information about the viability of your plans, without spending any money.

1) Start by estimating or figuring out what the cost per lead / acquisition is for your other channels.

Does it cost $100 for you to get a sale through cold-calling? Or $5 to get a lead through search? Numbers like these give you a number to compare your results to, which is critical for your overall marketing strategy.

And if you already have a cheap channel in place, should you consider doubling-down there instead? What is the scale-up potential of your existing channels?

2) Estimate the lifetime value of one of your customers (CLV).

There are tons of articles out there on calculating this, and there’s even this page which will help. Put this together with the information in (1) to figure out what it’s actually worth for you to acquire someone.

Maybe one of your acquisition channels (like events) is great in terms of volume, but it actually costs way too much money and you could improve results by optimizing that channel first.

Or alternatively, maybe one of your acquisition channels definitely has a positive return, and you could spend more there, first.

You start with (1) and (2), ideally. If you can’t calculate, or at least estimate, (1) and (2), how will you know if your online spend is effective?

But maybe you just want to get a sense of how much online advertising will cost, first, in that case, you can still answer (3) and (4).

3) Figure out what resources you have to devote to online advertising.

Online advertising isn’t “fire and forget”. Someone needs to spend time monitoring results, trying new advertising and variations, optimizing audiences and landing pages, designing ads, and on so on. Do you have someone who can work half- or full-time on this, if your experiment is successful? Or can you afford to hire an agency, and can someone on your team manage that relationship?

If not, you might not want to bother doing the tests to see how effective it is, especially if there are other high-ROI activites you already know about.

4) Figure out the size of your audience.

Part of the appeal of online advertising is that it’s very scalable. It doesn’t take much to reach 10x as many people, and you’re theoretically able to reach everyone on the internet.

But you’re going to be targeting your ads to specific audiences with specific intents. If you product serves a narrow niche, you may find that you actually cannot spend enough money on online advertising to make it worthwhile.

Tools like Google’s keyword planner can help, and most ad services will give you a sense upfront of what the reach of your ads will be. Other channels, like search, can give you clues as to how much people care about your content, too.

5 web marketing tips for your new business

Even though there’s more free business help on the web than ever before, starting a new product or service, and building a site for it, is not easy. Here are some things to do early on that will save a lot of time later.

1) Take a guess at who your customers are.

Notice that I didn’t say “figure out who your customers are.”

The goal is to put yourself out there with someting plausible so you can start learning, not to commission a multi-million-dollar research project. But you should take an explicit guess, because it will help you make faster, and more consistent, decisions later.

For example, if you’re starting a dollhouse furniture business, maybe you think your customers are moms with daughters. So,

  • When you start doing social media, you’ll want to follow and tweet at all the famous mommy-bloggers.
  • When you build the site, you’ll want to have a design that conveys quality, trust, and nostalgia. (Or maybe the best place to reach this audience is Etsy, and you should forgo the site entirely)
  • Pinterest might be a big promotional channel for you.
  • When you use the demographic tools in Google Analytics, you know what to look for.

And so on.

2) Think about what your visitors want to do, and how you can help them.

Notice that I didn’t say “think about what you want your visitors to do“. The purpose of your product or service is to help people, right? You’ll be in the best position to do that if you figure out what their intent is, and show how what you’re offering matches that intent.

For example, if you’re starting a gluten-free bakery, you want people who can’t eat gluten to buy your baked goods. They come to your site, somehow, or hear your name. How did that happen? What were they trying to do?

  • If they were interested in buying a cake, that’s great, you can show them that offer.
  • If they found you because they want to learn to bake, then maybe they can sign up for your newsletter, which has gluten-free baking tips. (Then later on, when they want to buy a cake, you’re there with that offer in your newsletter.)
  • If they found you because they can eat gluten, but can’t eat sugar, maybe you can refer them to someone who can help them through your blogroll.
  • Or maybe you have a great article on this exact topic – which is where they landed – that they can tweet to their friends, who then come to visit you and buy cakes.

This is the best way to get people engaged. And engagement is the raw material for revenue.

3) Escalate commitment, and provide value at every step.

The holy grail for your lawnmowing business is a $50 / month premium subscription, billed annually.

It is very unlikely that you will sell someone this on their first visit to your site. (In fact, in many cases you won’t sell anything on a visitor’s first visit to your site.)

So, related to (2), ask for something small to start. A email address. A follow on Twitter. Provide a relevant offer in exchange.

For your newsletter, the newsletter is your offer- and you won’t spam them, and here’s a sample of what you’ll receive every month, including lawn care tips if you’re doing it yourself. If they follow you on Twitter, here’s what the feed looks like, and by the way, thanks for joining us, and here’s a direct message with a $5 coupon.

And then you escalate that commitment over time:

  • Special trial lawncare appointment for our newsletter subscribers.
  • Hey, we’ll be at Home Depot this weekend giving a free class on how to weed more efficiently, come on by (and let us show you this product that we sell.)

And so on.

4) Remove all conceivable obstacles to engagement.

The nice thing about (2), is that if you do it right, your visitors should find it valuable to engage with you.

You offer something that they’re looking for, and they’ll welcome the chance to keep receiving valuable information from you, by, for example, giving you their email address.

Unless, of course, your newsletter popup doesn’t display properly on their mobile device. Or they’ve never heard of you, and there’s no evidence on your page that your product or service works as advertised. Or they’re distracted by a typo on your page or bad color choice. Or a million other things.

People are on your site to accomplish a task. For you, it means paying your bills, but for them, the task is one of many things that they’re thinking about, care about, and have to do. It may not even rank very highly. So make it as quick, easy, and low-friction as possible to get that engagement. Don’t raise any questions in their minds. This means:

  • Your design doesn’t have to be amazing, but it should definitely not get in the way. Ideally, it should reinforce your decisions about your identity and make your site more personable and trustworthy.
  • Copy that explains very concisely what is going on, and reminds the user of what they’re doing. A tiny example is that your form fields should have the placeholder text in them (“Enter Email Here”) until they’ve actually been filled out. A bigger example is that your call to action (“Subscribe”,”Join”,”Download”) should stand out and be easy to see and to click.
  • Social proof is important. When you have pictures and testimonials from real people, it creates trust. Stats are helpful too, but if you present them, you have to do it in a way that’s very simple to understand.

5) Take some time to set up your technology and analytics so that they work.

There’s a huge number of truly impressive and high-quality analytics, testing and other services out there today. Almost all of them offer free trials, or are simply free to use. (See Tip 3.)

You should set up Google Analytics and Webmaster Tools as soon as possible. It will not be easy to use this stuff effectively right away, but collecting data starting now will be useful later.

Google Analytics by itself can tell you things like what your most popular content is, how many visitors you get every month, and what percentage are new vs. returning. That means more relevant offers for your visitors, and more people in your database.

Together with Webmaster Tools, you can also get demographic data on your visitors (like age and gender), which might be very helpful for you depending on how your service is targeted.

Consider using other services like Unbounce and Optimizely to help increase the efficiency of your pages when you do get visitors.

Implementing Marketo progressive profiling in Javascript

If you’ve used Marketo’s progressive profiling engine, you know it has a bunch of limitations. It:

  • Doesn’t work between different types of forms. So a user who tells you their job function on a webinar or event registration might not have that auto-filled on a Talk to Sales form.
  • Is inflexible; all you can do is specify a list of fields you’d like filled in, and how many blank spaces to present at once. That can be frustrating if you’re staging your leads such that you need different amounts of data at each stage, e.g. First, Last and email, then Company, Job Function, Job Title, and Revenue, then Interest.
  • Only works on Marketo’s hosted landing pages. Some users want more control over their landing pages, are using a CMS that allows for easy form management, or need to ensure proper integration with analytics services, which Marketo doesn’t support.

Fortunately, progressive profiling can be implemented much more flexibly with a bit of Javascript and the Forms 2.0 API.

The code below:

  • Saves the user’s information in a cookie, locally, and uses that to pre-populate any form on your site with matching field names. (This assumes you are not collecting sensitive information through Marketo, such as a personal mailing address. If so, you probably shouldn’t store this information locally.)
  • Hides any fields that are already filled in (reducing perceived workload), unless they are textareas, since textareas are also used for comments that should not persist from session to session.
  • Uses fieldsets, defined in Marketo’s form builder, to break the form up into sections that are displayed on separate visits. This means that if you want to collect information in three stages, for example, you can break your form fields up into three fieldsets, and the user will only see one at a time. If you want a field to show up all the time, don’t put it in a fieldset.

Some notes: The code relies on the extremely useful jQuery Cookie library by Klaus Hartl. This is only the first version, so there are probably bugs and cases I haven’t considered. You’ll need to assign values to marketo_instance_id and formid. On our site, we use CSS so that the fieldset itself doesn’t add additional styling.

The code

Start by loading the form using the typical MktoForms2 methods. Within the load function, define onSubmit so that it grabs all the form values using the .vals() method as soon as a form is submitted (but before success). Remove the formid and munchkinId properties so they don’t interfere with other forms, and store a stringified version of the returned object in a cookie.

MktoForms2.loadForm("//", marketo_instance_id, formid, function(form){
var vals = form.vals();
delete vals.formid; delete vals.munchkinId;
jQuery.cookie('formdata', JSON.stringify(vals), { expires: 30, path: '/' });

Next, add some work to happen on the whenReady event, which MktoForms2 fires when a form has been loaded from Marketo and fully rendered. First, check to see if the formdata cookie exists. If it doesn’t, don’t do anything.

Then grab the formdata cookie, parse the contents into an object, delete the formid and munchkinId again as we did above, just in case, and populate the form using the Marketo vals() function.

MktoForms2.whenReady(function(f) {
if (typeof jQuery.cookie('formdata') == 'undefined') {}
else {
var formdata = jQuery.cookie('formdata');
formdata = JSON.parse(formdata);
delete formdata.formid; delete formdata.munchkinId;

Once the form has been populated with cookie data, hide all the fields that are already complete.

jQuery('fieldset input, fieldset select').each(function(){
if(jQuery(this).val() != '')

Finally, look through all the fieldsets. Is any of them completely blank? (We test for this by concatenating the values of all the fields within the fieldset). If yes, remove all the following fieldsets.

for (i = 1; i < jQuery('fieldset').length; i++)
if (jQuery('fieldset').eq(i-1).find('input,select').val() == '')
jQuery('fieldset').eq(i).remove(); i = 0;

Note that this code doesn’t “count” fields of type textarea for the calculations of what is blank or what to hide, though it does save the value.

It’s worth considering whether textareas should be treated as other fields are (which is easy to do, just add textarea where you see input together with select, or whether data left in them should not be stored, since it’s usually things like comments which aren’t useful to save. The latter would be harder to do since .vals() doesn’t give you a way to exclude fields based on type.