Category Archives: Conversion Rate Optimization

Thumbnail

7 Page Speed Stats Every Marketer Should Know

If we asked you to describe an effective digital marketing campaign, you might tout the value of strong design, ad targeting, or the benefits of conversion optimization. But even if your web and landing pages are aesthetically on point, it can mean nothing if you haven’t considered page speed. For context, if it takes more than three seconds for a page to load, just over half of visitors will leave it. Put another way, for every second of impatient agony you’re causing visitors with slow load times, you’re losing conversions and profit.

Beyond your bottom line, page speed also influences how your content ranks with Google. In July of this year, the search engine announced that speed will have a more prominent effect on the ranking of mobile searches. So if you want your landing pages and web pages to appear in the SERP (paid or search), you need them to be lightning-fast.

To paint a picture of why load time is so essential, we’ve collected seven stats about page speed. We’re currently doing some original research of our own on this, but for now, read on to learn why slow and steady doesn’t win the digital marketing race and use these fast facts to make the case for speeding up your landing pages.

1. 46% of people say waiting for pages to load is what they dislike most about browsing the web on mobile

When creating a landing page, you consider several factors (layout, content hierarchy, visuals, CTA, and more). But as Google encourages, page speed needs to be a priority too. Your visitors don’t like waiting—and their frustration has only grown since the 2015 survey linked above—so always consider load time (regardless of device) just as much as traditional design elements. Watch your image sizes and compress any that are borderline too heavy. Anything above 800kb is pushing your luck in the speed department.

2. On average, it takes 15.3 seconds to load a mobile landing page

(And that’s on simulated 4G and everything!) But that’s also just accounting for mobile—in general, pages can load much faster on desktop. According to the latest from Pingdom, for example, most web pages load in just 3.21 seconds. At a minimum, you should aim for a load time of three seconds or less—especially if you want to boost conversions.

When Akamai studied how mobile load times affected a client’s conversions, they discovered that 2.4 seconds was the sweet spot, averaging a peak mobile conversion rate of 1.9% during a 30-day span. On the flipside, when their client’s site loaded in 4.2 seconds, the average conversion rate dropped below 1%.

Ultimately, aiming for anywhere between 2.4 to 3 seconds on mobile and desktop is a smart move.

3. Sites that load in five seconds (compared to those that load in 19) see 70% longer average sessions

While you can definitely aim for quicker than five seconds, the point here is that the longer people spend on your pages, the more time they have to consume your content and actually convert. You work hard to build persuasive offers—so keep visitors on your landing pages by ensuring that they load quickly enough for them to actually see (and understand!) your key messaging.

4. A 100-millisecond delay in load time can cause conversion rates to drop by 7%

Similar to Google’s stat about conversions dropping by 12% for every second of load time, Akamai comes to the table with another time-is-money figure. According to their research in 2017, one full second can decrease conversion rates by 70%! So, in addition to losing visitors, page speed is directly tied to losing a lot of potential revenue—something Mobify discovered when they decided to examine the effects of homepage load time. In its 2016 Q2 Mobile Insights Report, the online shopping platform revealed that every 100-millisecond decrease in load time worked out to a 1.11% increase in session-based conversion.

But remember, page speed doesn’t just affect organizations that sell products and/or services, as evidenced by Pinterest’s decision to rebuild their pages for performance. By reducing wait times by 40%,the sharing platform increased both search engine traffic and sign-ups by 15%.

5. 73% of mobile users have encountered websites that take too long to load

Hey, we’ve all been there. Even though faster speeds are constantly being offered to visitors (via telecom ads, internet providers, etc.), many websites still aren’t loading fast enough. That’s bad news for visitors, but great news for you in that there’s an opportunity to stand out if you speed up. SEMrush reports that “if your site loads in 1.7 seconds, it’s faster than approximately 75% of the web.” Use this as an opportunity for your brand to make a competitive move with websites and landing pages that load faster than most. It’s time to make speed a priority.

6. 79% of web shoppers who have trouble with web site performance say they won’t return to the site to buy again

The online shopping experience isn’t just about website aesthetics or customer service; it’s about overall performance, which includes page speed and responsivity. This stat shows that something like a slow loading site can easily turn visitors away—sometimes for good.

7. Pages that load within two seconds have an average bounce rate of 9%, while pages that take five seconds to load have a bounce rate of 38%

A high bounce rate indicates visitors aren’t staying on your website for very long—I mean, sure they’re landing there, but they’re not consuming more content than the page they’re on right at that moment. And who knows how much of it?! This can mean they’re not clicking your CTA to a next step, nevermind learning about your key value prop.

It can be difficult to determine why, exactly, someone has left your landing page—poor audience targeting? Uninteresting content? Not enough multimedia? And if page speed is affecting bounce rate, you might begin to second guess your content. Save yourself some time (and confusion) by prioritizing page speed via solutions like Accelerated Mobile Pages (AMP).

Are slow loading pages affecting your digital marketing campaigns? Join our AMP beta and be one of the first to give your visitors a near-instant mobile experience.

Now, returning to our question about the most important thing to consider when designing a digital marketing campaign? Hopefully, with all of these stats in mind, you have a new perspective. Page speed is one of the first things visitors experience when they arrive on your site or landing page, and as load time continues to become a priority (for both mobile and desktop environments) it will only be more integral to the success of your online strategy—so you gotta hurry up!

Link:

7 Page Speed Stats Every Marketer Should Know

Thumbnail

It’s Time to Retest Your Page Speed [Google’s latest update]

Back in October, we were the first to claim that 2019 will be the year of page speed. We’ve got our eyes on the market and lemme tell you: Google is sending serious signals that it’s crunch time to deal with your slow pages.

Faster pages are a strategic marketing priority.

And sure enough, Google has made yet another change to uphold that prediction. In early November, they quietly rolled out the most significant update to a core performance tool we’ve seen to date, announcing the latest version of PageSpeed Insights.

So what does this update mean for marketers and their bottom line?

If you’ve used PageSpeed Insights to test page performance, it’s time to retest! Because your old speed scores don’t matter anymore. The good news is that you’ll have new data at your fingertips to help you speed up in ways that actually matter to your prospects and potential conversions.

Let’s take a closer look at this update and explore why it should play a role in your page speed strategy in 2019.

“You can’t improve what you don’t measure.”

PageSpeed Insights is easily Google’s most popular tool for measuring web performance.

When you look at the screenshot below, you can see why. It provides an easy-to-interpret color-coded scoring system that you don’t need an engineering degree to understand—red is bad, green is good. Your page is either fast, average, or slow. The closer to a perfect 100 you can get, the better. The scores also come with recommendations of what you can do to improve. It’s almost too easy to understand.

PageSpeed Insights
PageSpeed Insights v.4 (October 2019)

Earlier versions of PageSpeed Insights had some issues with how they reported performance. Simple results could be misleading, and experts soon discovered that implementing Google’s suggested optimizations didn’t necessarily line up with a better user experience. You might’ve gotten great scores, sure, but your pages weren’t always any faster or your visitors more engaged. Don’t even get me started on your conversion rates.

As Benjamin Estes over at Moz explains, “there are smarter ways to assess and improve site speed. A perfect score doesn’t guarantee a fast site.” Many experts like Estes began turning to more reliable tools—like GTMetrix, Pingdom, or Google’s own Lighthouse—to run more accurate performance audits. And who would blame them?

The latest version of PageSpeed Insights (v.5) fixes these issues by putting the focus where it should be: on user experience. This is a huge leap forward for marketers because it means that the tool is directly relevant to conversion optimization. It can help you get faster in ways that translate into higher engagement and conversion rates.

For the full scoop, check out Google’s release notes here, but there are really two changes you should note:

1. PageSpeed Insights Now Uses Lighthouse

Lighthouse is excellent because it gives you a more accurate picture of how your landing pages perform with lab and field data. The lab data means you get results ASAP, whether you’ve seen traffic yet or not. This gives you a way to test and improve your pages before you point your ads at them.

An important note is that Lighthouse simulates a page load on a mid-tier device (Moto G4) on a mobile network—roughly equivalent to the fastest 25% of 3G and slowest 25% of 4G. So it’s a pretty solid estimate of what you’re likely to see in the wild. Here’s what it looks like:

New lab data from Lighthouse provides a much better picture of what a user experiences.

The Lighthouse engine behind PageSpeed Insights also brings more user-centric performance metrics with it, two of which are very important to your landing pages:

  • First Meaningful Paint (FMP) is the time it takes for the first valuable piece of content to load—usually a hero shot or video above the fold. It’s the “is this useful?” moment when you catch—or lose—a visitor’s attention. Even if the rest of your page loads later, it’s paramount that the first page elements appear as quickly as possible.
  • Time to Interactive (TTI) is the first moment a visitor can interact with your page. It’s the best measure of speed to determine if a visitor will happily engage with your content, or whether they’ll get annoyed and bounce because your landing page keeps choking on clunky JavaScript or poorly prioritized code.

2. PageSpeed Insights Gives You Better Opportunities and Diagnostics

You can bid adieu to the short checklist of optimizations that experts like Ben Estes called out. Google has replaced the (moderately useful) feature with new opportunities and audits that will actually help you improve your visitor experience. These include new suggestions and estimated savings for each.

Your priorities should be much clearer:

PageSpeed Insights Opportunities
Opportunities and Diagnostics in PageSpeed Insights

How your Unbounce Pages Stack Up

Faster pages earn you more traffic and better engagement. As a result, page speed has a major impact on your conversion rates and can even help you win more ad impressions for less. That’s why we’ve made page speed our priority into 2019.

To show how Unbounce stacks up in the real world, we chose to test an actual page created by one of our customers, Webistry, a digital marketing agency. Their “Tiny Homes of Maine” page is a real-world example.

Click here to expand.

It has tons of custom functionality, so it’s fairly representative of what many customers do with the Unbounce builder. (The ability to customize is often why customers choose Unbounce in the first place!) This page includes custom Javascript for smooth scrolling, a sticky header, fading header, some custom CSS, and a bunch of images of various file types.

We tested two versions of “Tiny Homes of Maine” using Google PageSpeed Insights v.5, running a minimum of three tests using the median results. The results below focus on the mobile scores:

Speed Boost

First, we tested the original Tiny Homes of Maine landing page using Unbounce’s Speed Boost, which optimizes landing page delivery to do things like leverage browser caching, prioritize visible content to load first, bundle Javascript, and so on. Speed Boost handles the technical recommendations from PageSpeed Insights that developers usually tackle behind the scenes. You can see the overall results of the test here:

Tiny Homes of Maine with Speed Boost

Speed Boost + Auto Image Optimizer

Next, we retested the Tiny Homes of Maine adding our upcoming Auto Image Optimizer into the mix. This new tool automatically optimizes your images as your page is published. You can fine-tune your settings, but we used the defaults here. Check out the mobile results:

Tiny Homes of Maine with Speed Boost + Auto Image Optimizer

The score jumped from a respectable 88 to an incredible 96 and, more meaningfully, we saw time to interactive improve from 4.4 sec to 2.7 sec. That’s 12.3 seconds faster than the average mobile web page, and 0.3 seconds faster than Google’s ideal 3 second load time.

Here we’ve shared the time to interactive speeds from both tests, for desktop and mobile, measured against the average web page:

Time to Interactive is the best measure for whether a visitor will engage or bounce. Our average mobile speed is based on Google’s mobile benchmarks, while the desktop average comes from a study by SEO Chat.

Overall, when we tested, we saw Speed Boost and Auto Image Optimizer create a dramatic difference in performance without sacrificing visual appeal or complexity. We took a compelling page that converts well and upped the ante by serving it at blazing speeds. Whether on a mobile or desktop, the page loads in a way that significantly improves the visitor’s experience.

Speed Boost is already available to all our customers, and the Auto Image Optimizer is coming very soon. This means your own landing pages can start achieving speeds like the ones above right now. Read more about our page speed initiatives.

But hold up. What about AMP? You might already know about AMP (accelerated mobile) pages, which load almost instantly—like, less than half a second instantly. Not only do they lead to crazy engagement, but they eliminate waiting on even slow network connections. This makes your content accessible to everyone, including the 70% of global users still on 3G connections—or 70% of pedestrians on their phones while they wait at a crosswalk.

While AMP can be complicated to build, Unbounce’s drag-and-drop builder lets you create AMP in the same way you create all your landing pages. If you’d like to try it out for yourself, you can sign up for AMP beta which opens in January 2019.

For the speed test above, we decided to leave AMP out of it since AMP restricts some custom functionality and the page we used would’ve required a few design changes. It wouldn’t be apples to apples. But we’re pretty pumped to show you more of it in the next while.

Page Speed & Your Bottom Line

Seconds are one thing, but dollars are another. Google recognizes the direct impact that fast load times have on your bottom line, which is why they released the Impact Calculator in February 2018. This tool sheds more light on why providing accurate measurements is so important.

Let’s revisit our Tiny Homes landing page above as an example. Imagine this landing page gets 1,000 visitors a month, at a conversion rate of 3.5% (which is just slightly higher than the average Real Estate industry landing page in our Conversion Benchmark Report). If the conversion rate from lead to sale is 5%, and each conversion is worth an average of $54,000 (which is the mid-priced home on their landing page), then their average lead value is $2700.

Tiny Homes of Maine in the Impact Calculator

When we input those numbers into the Impact Calculator and improve their mobile page speed from 4.4 seconds to 2.8 seconds, as shown in the test above, the impact to revenue for this one page could be $52,580.

Heck yes, speed matters.

And if we forecast the near-instant speeds promised by Accelerated Mobile Pages (AMP), that page could see a potential annual revenue impact of more than $179,202 USD if it were to load in 1 second.

And that’s one landing page!

If you’ve been struggling with how to improve your page loading times, this latest version of PageSpeed Insights now gives you a much more meaningful picture of how you’re doing—and how to get faster.

You may not have considered speed a strategic priority, but when seconds can equate to tens of thousands of dollars, you need to. Try the Impact Calculator yourself or contact our sales team if you’d like to see what kind of revenue impact Unbounce landing pages can get you.

Read this article: 

It’s Time to Retest Your Page Speed [Google’s latest update]

Thumbnail

Converting with Extra Copy: 5 Long-Form Landing Page Examples

We all know how effective a short, concise landing page can be. It’s quick to read and, depending on the offer up for grabs, can convince visitors to purchase or opt-in fast.

But there are benefits to building long-form pages too. For starters, longer pages can provide in-depth info visitors need to make informed decisions, helping you attract more qualified leads from the start. Moreover, your company may have offers better suited to a longer page with more convincing to do.

According to our Conversion Benchmark Report, which analyzed the behavior of more than 74 million lead-gen landing page visitors, pages with 125 words or less typically had a 15% higher conversion rate (I mean, concise converts!) But for pages between 250 and 750 words, we found conversion rates really only varied slightly in this range.

Such remains the question facing every copywriter:

“How long should my landing page be?”

Well, the answer is nuanced and comes down to the offer at hand. There are several cases where long-form landing pages can actually be better than shorter ones. For instance, if you’re:

  • describing technical product details and in-depth benefits,
  • showcasing your company’s achievements to establish credibility, or
  • persuading customers to invest in especially expensive software, services, or high-commitment offers.

Page length is less about preference, and has more to do with the complexity of the offer at hand and the stage of the buying process someone’s in. You need to cover all your bases, anticipate objections, and show that your offer is legit. A heckuva task for a limited amount of copy.

So, to inspire your next not-so-short page, we analyzed five long-form landing page examples below. Here’s our take on why each of these built-in-Unbounce pages work so well.

Example 1: American Executive Centers

A long-form landing page example from American Executive Centers
Click the image above to see the full page.

Why this works: No questions are left unanswered.

This long-form landing page immediately highlights American Executive Centers’ distinct offering in the headline, and above the fold (i.e. they’re offering virtual office services like mail handling, virtual assistants, and meeting rooms). Given the decision potential customers face here, it’s important that the brand’s presented a bulleted, quick-to-read list of what’s up for grabs at the beginning of the page.

By listing all the key features above the fold like this—readers can quickly get a sense of whether AEC will meet their core requirements. This is especially important for busy decision makers who are comparing their options. If AEC’s landing page is just one of many someone has open in their browser, for instance, it makes a strong case against competing pages where core offerings may be harder to spot.

The landing page doesn’t stop there, either. Their contact form appears above the fold in an orange rectangle that bridges between the two sections. This contrast encourages the eye to move down the page.

AEC Orange Rectangle

Below the fold, AEC shares detailed information about where they operate and emphasizes the benefits over the competition. They also list packages and pricing so customers can independently decide whether the service fits their budget.

The lesson here? Extra copy may not be required to convert a consumer on a personal purchase, but when their decision impacts an entire team or workplace, it clearly helps. For a B2B company like American Executive Centers, using a long-form landing page makes sense because it allows this brand to cater to a more intense consideration phase in the buyer’s journey.

Example 2: Mr. Rooter Plumbing

Click the image above to see the full page.

Why this works: Simple, straightforward design—and an incentive for customers.

Mr. Rooter’s landing page (developed to promote their South San Gabriel service region) is not necessarily long in terms of the number of page sections, but it’s got a lot of copy and details. Right off the bat, readers can see what Mr. Rooter offers. Adding a phone number to the header also gives customers who are urgently seeking a plumber an immediate point of contact. Hey—when the water’s gathering around your ankles, you don’t have time to read an entire landing page. Additionally, all of the cities within the South San Gabriel region are listed—so customers don’t have to do further research.

And people like a deal. By offering a $20 discount, the page gives customers an extra incentive to use Mr. Rooter over a competitor. The placement of the offer is on the left-hand side of the page, which is ideal considering that online readers’ tend to scan pages from left to right in a Z- or F-shaped pattern. The offer is also an example of basic but effective skeuomorphism, with a dotted line that immediately calls to mind coupons in printed media.

Mr. Router Coupon

The page goes on to describe the company’s areas of expertise in detail—something condensed landing pages don’t offer—and highlights why customers choose Mr. Rooter by including some benefits of their service (24/7 availability, reliable specialists, local area knowledge) as well as testimonials.

This example proves that in many industries, substance matters more than stunning design—and you don’t need a technical background to build a landing page that does the trick (shameless plug: especially not with our landing page templates).

Example 3: Chronotek

Click the image above to see the full page.

Why this works: Expert insight and in-depth product details.

We’re startin’ to see some patterns here. Just like the above long-form landing page examples, Chronotek showcases its primary features above the fold—along with a direct heading that describes their product in clear, uncomplicated terms. Having both these elements above the fold grabs the target audience’s attention as soon as they land and encourages them to keep reading.

But they don’t stop there. Since Chronotek is B2B software—and likely requires a significant investment of time and money—it’s essential their landing page paints a full picture. By listing six key ways customers benefit (e.g. simplified payroll, live reporting, in-app messaging), Chronotek outlines the value of investing IT dollars in their time-tracking software.

Though their primary messaging is relatively straightforward, farther down the page Chronotek uses short copy with videos and illustrations to connect on a more emotional level. In this case, these elements instill a sense of urgency (“Chronotek sends the alert before it’s too late.”) mingled with the assurance that they have you covered (“Rest assured and know it all!”). The copy in this section is also more ‘you’ oriented. “You” or “your” occur six times—and the copy’s peppered with emotional words, like “stress.”

Chronotek's emotion
An example of the copy paired with videos Chronotek uses throughout the page.

Though many prospects might be convinced by the features and benefits of this product alone, using a long-form landing page lets Chronotek make a more emotional appeal to anyone who has remaining objections or needs to hear certain key phrases before they’ll sign up for a free trial.

Example 4: Throne & Hauser

Click the image above to see the full page.

Why this works: Transparency and convenience builds trust.

Again, not a ton of page sections length wise on this one, but this law firm’s page does contain a fair amount of copy. That said, it also doesn’t waste any of their visitors’ time. The company’s services and location appear immediately—plus a short description of why a client should work with Throne & Hauser. They also feature the credentials visitors expect from a reputable law firm upfront. And, finally, we see two simple methods of contacting the company (via phone or form).

By including personal bios about the firm’s lawyers (photos included), the page creates a connection, which is critical in a largely relationship-driven industry. Testimonials further boost prospects’ trust in the firm by showcasing examples of happy clients.

This long-form landing page also subtly tells a story with a happy ending in its choice of photos:

Throne Hauser CTA image

The hero shot features a sad child divided between parents, while the image underlying the call-to-action at the bottom shows a parent and child happily united. Using their page this way allows Throne & Hauser to tell a story and evoke emotions.

Example 5: Schar School at George Mason University

Click the image above to see the full page.

Why this works: Credit where it’s due.

To impress prospective students, the Schar School at George Mason University has included tons of information on its long-form landing page. Readers quickly learn that the school operates in Washington, D.C. (location’s a major factor when it comes to selecting a university) and that programs combine technical skills and theory. If a student’s interested, they can easily request more information and start their application using the form. There are also opportunities to enroll in sample classes or attend an open house.

The Schar School also features achievements to separate themselves in a competitive category, where options can feel endless. The testimonials come from recent graduates who now occupy high-demand jobs in fields associated with the school’s programs:

Schar Testimonials

The page also includes degree program descriptions. For these (lengthy!) blurbs, short-form pages wouldn’t cut it, but this is the kind of specific info prospective students need to determine if a given option is right for them.

The page leads with the school’s Master’s programs, which makes up the bulk of its enrollment. And although it might make sense to create separate landing pages for each degree program, using a longer format for this landing page helps provide an overview for students who might be considering multiple programs.

And there you have it: five effective long-form landing page examples…

…across five industries no less! These companies all needed a few more words to get their point across, with detailed descriptions, testimonials, and achievements that short pages just don’t have room for. The extra copy helps the brands be empathetic to the often significant personal or financial impacts of the offers at hand.

Ultimately, the nature of your industry and product or service will help dictate landing page length. What’s important to remember is that there’s no hard and fast rule. We’re often taught that shorter is sweeter, but landing pages—like naps, daylight hours, and vacations—can sometimes stand to last a little bit longer.

Original source: 

Converting with Extra Copy: 5 Long-Form Landing Page Examples

Thumbnail

6 Examples of the Best B2B Landing Pages (and the Secrets to Steal From Them)

Best B2B Landing Pages

B2B products and services can be difficult to fully capture on a landing page—we know from experience.

Whether it’s defining your conversion goal, ordering your page sections, or writing copy that resonates, it’s not always a walk in the park. Not to mention B2B can involve so many more decision makers you may need to appeal to. Showcasing the value of something like software at scale can be trickier than explaining how your cutting-edge hoverboard might benefit just one person.

But, in our view, building a successful B2B page boils down to a few key things:

  • Creating an engaging experience that makes prospects acutely aware of the problem you solve
  • Promoting your offer clearly and simply, and
  • Cleverly leading visitors through consideration, towards conversion.

Persuasion sounds great in theory, hey, but what does this actually involve?

To help you better understand what makes an effective B2B landing page, we’ve analyzed six Unbounce-built pages doing a great job. Scroll through the examples to see what they do especially well, and how you can take their techniques to the next level.

1. PIM on Cloud

PIM on Cloud Landing Page
Image courtesy of PIM on Cloud. (Click image to see the full page.)

Best practice to steal: Where appropriate, bring prospects through several stages of the customer journey.

Sales cycles vary per industry, sure, but the process always starts with building interest and (ideally) ends with a purchase decision. Designed properly, some landing pages can take readers through each of these stages as they scroll from top to bottom. We found PIM on Cloud’s long-form landing page does this really well.

PIM on Cloud Landing Page Features

This brand builds awareness by offering a description of their service (in the first two page sections), they guide prospects through consideration with a list of features and benefits, and then drive conversions by detailing available plans alongside their calls to action (i.e. “Choose plan” or “Ask for pricing”, respectively).

Though some landing pages are designed to increase conversions at the bottom of the funnel, providing a more holistic journey—like PIM on Cloud does—allows a wider net for prospects to learn more. This page could even be a destination URL for many of PIM’s branded Google Ads because it’s so high-level.

PIM on Cloud Anchor

Of course, some visitors will also know exactly what they’re looking for from the start, so PIM on Cloud includes anchor navigation on this page for a choose-your-adventure experience. Thanks to this, more qualified prospects can jump straight to the details most relevant to them. While landing pages shouldn’t have tons of links on them (your main site navigation would be a real no-no, for example), anchor navigation is recommended if you’re trying to cover a lot of info at once. They can make longer pages like this more digestible.

Bonus: PIM on Cloud’s landing page provides readers with an FAQ section and a contact form, further opportunity for prospects to evaluate their decision—and for the brand to collect valuable leads. When you make landing pages that cover a broad offer, be sure to consider whether you might use an FAQ to ease any potential friction, and leave a way people can get in touch with you directly just in case.

2. Resource Guru

Resource Guru Landing Page
Image courtesy of Resource Guru. (Click image to see the full page.)

Best practice to steal: Help prospects visualize a complex idea.

Many B2B products and services solve complex problems. As a result, landing pages need to be designed in such a way that they make it easy for potential customers to understand features and benefits. One way to do this is to incorporate visual elements like videos, images, and even animations—all of which can help drive conversions. According to Eyeview, using a video on your landing page can increase conversions by up to 80%.

Resource Guru’s landing page is effective because it greets viewers with a large play button as soon as they land. Pressing play is intuitive and launches a high-quality explainer video. They let this video do the talking, then quickly request an action from visitors.

Taking it to the next level:

Instead of a simple play button, this landing page could have benefitted from including a video thumbnail featuring people’s faces. Visually compelling thumbnails that align with your video’s content can actually increase play rate.

Additionally, it’s always a good idea to reiterate all the core points from your video script on your landing page in text. This ensures that even in the event you have a low play rate, prospects can still learn about your offer without having to click play. Whether they left their headphones at home that day or prefer text, it’s good to have a backup plan.

3. Blink

Blink Landing Page
Image courtesy of Blink. (Click image to see the full page.)

Best practice to steal: Include the right kind of proof to build trust and credibility.

Blink’s landing page above relies heavily on testimonials and a list of select, high-profile clients, which are presented immediately below their contact form. Also, rather than diving into product features, Blink backs up their expertise by showcasing industry awards.

Taking it to the next level:

Although testimonials, logos, and other social proof are effective, it’s worth noting that Blink misses the opportunity to (immediately) explain what they actually do for customers at the start of this page.

According to Nielsen Norman Group, 57% of visitors’ time spent on a page occurs above the fold (and 74% is spent on the first two screenfuls). If your company’s offerings are at the very bottom, as they are on Blink’s landing page, visitors may click away without context. Overall, make sure your pages get into the details of what you do before explaining why you’re the best at doing it.

4. MediaValet

MediaValet Landing Page
Image courtesy of MediaValet. (Click image to see full page.)

Best practice to steal: The rule of three works great for layouts and benefit copy.

The rule of three is one of the most successful methods for memorizing content—we’ve seen it used in film, advertising, and beyond—and MediaValet’s landing page is no exception.

The digital asset management company applies the rule of three when presenting their key benefits and testimonials. This clear, concise, and easy-to-consume structure is also key to the landing page’s successful layout: it introduces the product, backs up their claims with stats, and provides an easy way for prospects to request a demo. The easier visitors can consume and retain the content on your landing page, the better equipped they are to make a decision to purchase. They’re also more likely to keep scrolling instead of being overwhelmed by too much info.

MediaValet Form

Taking it to the next level:

Headline clarity is key, and you only have the first few words of anything to convince people to keep reading. In my opinion, MediaValet could have benefited from using a variation of their sub-headline (“Organize your assets, marketing content and media in one central location with digital asset management.”) as their primary headline to make their product offer that much more obvious.

5. Vivonet Kiosk

Vivonet Kiosk Landing Page
Image courtesy of Vivonet Kiosk. (Click image to see full page.)

Best practice to steal: A floating CTA button gives you a greater chance to convert.

A landing page has one goal—to convince visitors to take action. Whatever the intended next step, it’s your job to create a clear, strategically placed call to action that lets visitors know what to do next. Using multiple CTAs can be distracting to your audience, but a consistent CTA that follows visitors throughout their experience? That’s crystal clear.

Vivonet Kiosk uses a floating CTA button that follows visitors as they scroll down the page. No matter where they’re at, the “Talk to Us About Kiosks” button remains in the bottom right-hand corner of their screen.

6. Unbounce

PPC Page

Best practice to steal: Have a conversation with your prospects.

Alright, y’got me. I’m using an Unbounce example here, but I think you’ll agree it’s pretty good. This is a landing page we created to speak about a problem we solve, and drive signups.

In the screenshot you may notice that this page actually breaks one of the rules we established above: it includes the main site navigation. Think of this as a hybrid, as well as a great example of how flexible you can be. Our page is structured with the persuasive force of a landing page (and built using our builder)—but incorporates neatly into the rest of our site, living on our domain and sharing the site’s nav. We do this fairly often when we want to build a web page especially quickly for the site that would otherwise require a ton of dev work.

Since Unbounce markets to marketers, we also wanted to overcome the hardened shell of skepticism that so many of us develop when it comes to other people’s campaigns. So this landing page uses a conversational framework to build trust. It offers a straightforward rundown of both the problem—running ads has become increasingly pricey—and the solution before it ever pitches our platform. And the inclusion of a chatbot invites you to ask questions we don’t cover, keeping the conversation going.

Of course, a landing page with an educational tone risks losing the reader’s attention—the same way a boring teacher might. In addition to a friendlier tone, we use interactive elements, animations, and social proof in the form of quotes from digital marketers. All of these elements keep things lively and provide added detail.

PPC Detail

Like the example from PIM on Cloud, we also anticipated less qualified prospects might visit the page, so we include tabs and collapsible page sections that provide more info or answer questions. If a reader happens to hit the page without a strong understanding of what we mean by “landing page,” for instance, they can click to learn the answer, without leaving. Like any good conversationalist, we listen as well as talk.

Feeling inspired? Learn how to design and build a B2B landing page in just seven simple steps.

Follow this link – 

6 Examples of the Best B2B Landing Pages (and the Secrets to Steal From Them)

Thumbnail

2019 Is the Year of Page Speed. Are You Ready?

2019 is the Year of Page Speed

Page speed matters.

We’ve been hearing it for years, though any one of us would be forgiven for letting it slide.

There are other priorities, after all. Marketers have been busy ensuring content is GDPR compliant. We’ve installed SSL certificates, made sure that our pages are mobile-responsive, and conducted conversion optimization experiments.

Some of us have had kids to raise. (And others, dogs.)

But Google has been sending some serious signals lately that suggest sluggish loading is a problem you can no longer sleep on.

In fact, if we look at Google’s actions, it’s undeniable that 2019 will be the year of page speed, the year of the lightning bolt. It’s the year when the difference between fast and slow content becomes the difference between showing up in the search results (whether paid or organic) or disappearing completely.

If you’ve been putting off improvements to your landing page performance until now, chances are that slow content is already killing your conversions. But in 2019, slow content will kill your conversions… to death.

Not convinced? Let’s explore the evidence together.

Google has been saying speed matters since forever

One of the reasons marketers aren’t taking Google’s latest messaging about page speed as seriously as they should is that the company has been asking us to speed up for at least a decade.

Way back in June of 2009, Google launched its “Let’s make the web faster” initiative, which sought to realize co-founder Larry Page’s vision of “browsing the web as fast as turning the pages of a magazine.”

Let's make the web faster
“Let’s make the web faster” video posted on June 22, 2009 (via YouTube)

As part of this initiative, Google made a number of commitments, but they stressed that better speed wasn’t something they could achieve alone. On the same day, a post called “Speed Matters” on the Google AI blog contained a similar message:

Because the cost of slower performance increases over time and persists, we encourage site designers to think twice about adding a feature that hurts performance if the benefit of the feature is unproven.

These weren’t just empty words. The publication of the “Let’s make the web faster” and “Speed Matters” posts signaled a burst of activity from Google. This included:

  • making speed a ranking factor for desktop searches (2010)
  • releasing PageSpeed tools for Firefox (2009) and Chrome (2011)
  • adding the capacity to preload the first search result to Chrome (2011)

But that was nearly ten years ago, and Google followed it with… almost nothing.

Digital marketers and web devs thought they were safe to focus on other things.

Then, in February of 2017, Google returned to the subject of speed in a big way, publishing an industry benchmark report that’s been widely shared ever since.

You may have seen some of the results:

Mobile Page Speed Benchmark
Google’s benchmark revealed that as load times get longer, the probability of bounce increases significantly (via Think with Google).

The first version of the benchmark found that the average mobile landing page was taking 22 seconds to load. This average came down to 15.3 seconds in 2018, but it’s still a significant concern.

(If you’d like a visceral reminder of why a 15-second average wait is still a major problem, hold your breath for that long.)

While the core message that “speed matters” was the same in 2009, in the report Google was now warning that “consumers are more demanding than ever before. And marketers who are able to deliver fast, frictionless experiences will reap the benefits.”

The benchmark report sounded an alarm. And the 2018 update dialed up the volume: “Today it’s critical that marketers design fast web experiences across all industry sectors.”

Google and Page Speed: A Timeline

Much like “Let’s make the web faster,” the 2017 benchmark preceded a flurry of activity from Google, this time laser-focused on mobile page speeds. Here are a few of the more significant moments that should concern you:

May 2017:
Google introduces AMP landing pages to AdWords

This update to AdWords (now Google Ads) makes it possible for advertisers to point their mobile search ads to Accelerated Mobile Pages (AMP), an ultra-light standard for web pages that is designed to load in less than a second on a mobile device. It’s the strongest indicator yet that Google wants you to get behind AMP in a big way.


June 2017 to February 2018:
Google makes its tools more insistent

In this period, performance tools like PageSpeed Insights and “Test My Site” began making more forceful claims about speed improvements. In February, Google even announced two new tools. The Mobile Speed Scorecard lets you measure your domain’s load time against up to ten of your competitors. And the Impact Calculator produces an estimate of the revenue impact you’d see by speeding up your site. (They’re done with being subtle.)


July 2018:
Google’s “Speed Update” drops

While speed has been a ranking factor in desktop search results since 2010, the “Speed Update” applies stronger standards to mobile searches. Alongside mobile-first indexing, this places renewed pressure on site creators to ensure their mobile landing page experiences are speedy and engaging.


July 2018:
Mobile Speed Score is added to Google Ads

Though Mobile Speed Score doesn’t (yet) have a direct impact on your cost-per-click (CPC), loading times already factor into your Quality Score because they determine landing page experience. By isolating mobile load times, Google Ads now makes it “easier to diagnose and improve your mobile site speed.” Hint, hint.

Google is making mobile page speed mandatory…

It’s not a drip, it’s a monsoon. Looking at the full timeline of announcements, launches, and product updates reveals that Google has been more active than in 2009—and that this initiative is ongoing. Take a look:

Google Page Speed Timeline
Want a better view of this timeline? Click above to open a larger version.

Since 2009, one of the ongoing arguments that Google has been making—through releasing tools and metrics like PageSpeed Insights, Lighthouse, “Test My Site,” the Speed Scorecard, Impact Calculator, and Mobile Speed Score—is that speed matters.

Since 2017, though, that argument has gotten much louder. And while no single action or announcement on this timeline should send you into a tizzy just yet, it’s worth remembering that Google’s gentle reminders tend to become more or less mandatory.

The search engine’s previous drips about mobile responsiveness or, say, web security both manifested in concrete changes to their browser and search engine that forced marketers to prioritize.

In 2016, for instance, you could have safely put SSL certification on your “nice-to-have” list because all Google promised was a small boost to encrypted sites in the search rankings. Nice, to have, but not critical. In 2018, Google Chrome began actively flagging non-HTTPS sites as “Not Secure.”

That’s how Google encourages change: first a carrot, then the stick.

…but what are marketers doing about it?

Unbounce wanted to know what, if anything, digital marketers are doing to meet Google’s new performance standards. So in the “Inside Unbounce” tent at this year’s Call to Action conference, we conducted an informal survey of attendees.

Participants could choose any landing page they wanted. (A majority of these participants weren’t Unbounce customers, but we were happy to measure pages created with our own builder as well.)

Together, we’d run the selected page through Google’s “Test My Site” tool and record the results.

An Inside Unbounce Attendee
An attendee uses “Test My Site” at CTAConf 2018. Unbounce wanted to know, how fast are you?

Our numbers beat the benchmark by a significant margin. That’s not shocking considering CTAConf is a digital marketing conference. The average load time was 10.27 seconds, five seconds faster than Google’s 2018 benchmark.

But it wasn’t all good news, and just how bad it got surprised us:

Only 1.6% of the 188 attendee landing pages we tested at CTAConf loaded in three seconds. Not a single one we tested loaded faster than that.

Ooof. That hurts, especially since Google says 53% of visitors bounce after three seconds.

This means even savvy marketers are not getting the opportunity to convert because a majority of prospects bounce before the content ever loads. Imagine stressing over the color of a button or the length of your headline copy only to discover most people who click on your ad will never even see the resulting landing page.

It’s no wonder, then, that Google is putting increased pressure on marketers to meet their standards in 2019. They can’t afford to be serving up a heaping spoonful of frustration with each search results. And neither can you.

Major players are already sprinting ahead

Even if Google weren’t forcing our hands, it’s hard to imagine a business that wouldn’t benefit from allocating resources to ensuring their website loads like lightning. Major web brands like Etsy and eBay have long been transparent about the importance of speed to their business, and many more companies are waking up to it.

TELUS, one of Canada’s largest telecommunication companies, committed to improving user experience across their web properties in a series of recent blog posts. According to the blog, this initiative to improve performance and speed is “aligned with what Google was really saying: Improving the customer experience is paramount.”

We reached out to Josh Arndt, Senior Technology Architect and Performance Program Lead at TELUS Digital, who explained why this move made a lot of sense:

Customers expect to be able to do what they want in a way that fits their life. While users come to our website for the content, speed – or lack of – may be the first point of friction in their digital journey. Our goal is to remove friction and make their experience effortless and rewarding. As such, performance and other web quality characteristics will always be on our roadmap.

TELUS recognizes that speed—or a lack of it—serves as the unofficial gatekeeper to their content. In this context, page speed is a natural priority, even if it’s one many of us have been collectively ignoring.

Our manifesto, or what page speed means to Unbounce

As the market leader in landing pages, Unbounce recognizes that being capable of extremely fast speeds represents a significant advantage for our clients. Turbo-charged landing pages result in more traffic and higher engagement, boosting conversions and helping PPC campaigns win increased ad impressions for less.

We’ve been happy to make it our priority into 2019. At the same time, though, we also want to remove some of the obstacles to building faster landing pages.

Technical challenges

Over the past few months, our developers have been optimizing Unbounce pages for the recommendations made by Google’s PageSpeed Insights. This bundle of technical improvements (we call it Speed Boost) automatically takes care of many of the technical details that can be a hurdle to improving performance, especially if development hours are tight or (let’s be realistic here) non-existent.

Speed versus beauty

Another sticking point when it comes to speeding up is that few marketers feel comfortable sacrificing visuals for faster load times. Image file sizes have increased to match the larger display resolutions and higher pixel density of modern mobile devices, one reason the average page size has doubled in the past three years.

With the addition of support for ultra-light SVG images and the recent integration of the free Unsplash image galleries right within the Unbounce builder, we’re helping marketers keep things looking slick without weighing down the landing page.

And we’re working toward creating even more optimization opportunities in the near future, including the Auto Image Optimizer, which automatically compresses the images on your landing pages. (You can decide how much or little compression you want.)

The result will be Cheetah speeds—no, scratch that, cheetah-with-a-rocket-strapped-to-its-back speeds—but without the need to sacrifice either visual allure or creative control.

We’ve taken the pressure off. Check out our plans and pricing for desktop and mobile landing pages that are always optimized with speed in mind. It guarantees a better user experience and less ad spend wasted on ads that don’t convert.

Unbounce + AMP Landing Pages

When it comes to improving page speeds on mobile devices, accelerated mobile pages (AMP) set the gold standard by offering load times that are typically much quicker on a 3G connection—and under a second on 4G.

AMP implementation also has a democratizing effect, which Facebook advertising expert Mari Smith points out:

If you wait too long to ensure speedy landing pages, your competitors will zoom right past you…It’s a total race right now. Specifically, with the pending issues around net neutrality, page speed could become far more important than it already is.

Considering that 70% of the world uses a 3G or slower connection—and that the repeal of net neutrality means more internet users in the US might find themselves in the slow lane—designing for older devices and slower connection speeds means connecting to more potential customers. AMP is a big plus in this regard, and that’s one reason publishers were among the first to adopt it.

But AMP can also be hard. As Unbounce’s Larissa Hildebrandt put it in a recent post, “the reason the AMP framework creates a fast page is because it is so restrictive.”

Implementing AMP typically involves learning the nuances of AMP’s specialized markup, including a restrictive version of HTML and a truncated JavaScript library. Pages are delivered the Google AMP Cache, a proxy-based CDN which helps them load even faster. And, all-in-all, to be validated requires closely following the strict design principles laid out by the AMP Project.

If all this sounds like a killer headache in the making, you’re right.

While Unbounce has been greatly interested in supporting AMP, we wanted to make sure it’s fast and easy for our customers to implement. So when Unbounce launches support for AMP landing pages in early 2019, you’ll be able to use our drag-and-drop builder to create AMP landing pages in no time.

We also didn’t want you to sacrifice creative control, so Unbounce allows the inclusion of AMP-compatible custom CSS, JavaScript, and HTML. As long as it passes validation, you can include it. Go nuts. We love how our community innovates on our platform.

Build an AMP page in Unbounce in our beta
Interested in seeing for yourself how AMP landing pages can accelerate your conversion rate? Join the waitlist for access to the private beta here. Explore how the builder makes creating AMP-ready pages quick and easy.

Speed up or disappear

No marketer can afford to ignore page speed in 2019. Mobile speeds can have a dramatic effect on paid advertising spend and your conversion rates, and Google’s actions so far show that the search engine is cracking down on the slow-to-load across all devices.

What does the future hold? I don’t pretend to have a crystal ball, but here are a few educated guesses:

  1. If mobile loading times don’t get much faster, then we can expect more pressure from Google. This could take the form of further changes to indexing or Google Ads, another round of benchmarks, or the addition of new features and tools.
  2. There’s a growing sense of urgency among marketers, and the major players are already moving to improve their loading times. Even if you’re in the small business space, these things tend to have a trickle-down effect. If you don’t work to improve your performance, chances are your competitors will.
  3. As development on AMP continues, the standard will gain new flexibility while maintaining optimal speeds. It’s already overcome early limitations, and it’s likely we’ll see adoption rates accelerate across all industries.

Since 2009, we’ve seen some remarkable developments in mobile technology, including widespread adoption of touchscreens, the rollout of 4G cellular capabilities, and voice-based search. But the web itself hasn’t always evolved to match—instead, it’s gotten slower and heavier. (Haven’t we all?)

In 2019, though, that will begin to change, for all of the reasons discussed above. The web will speed up and slim down, and those who don’t match the new paradigm will be left behind.

Thankfully, if 2019 is The Year of Page Speed, then you’ve still got opportunities to start speeding up in advance. Let us know your plans in the comments below.

Continue at source – 

2019 Is the Year of Page Speed. Are You Ready?

Thumbnail

Landing Page Essentials: A Free Video Crash Course from Unbounce and Skillshare

Ever heard the saying “Cart before the horse”? Or “You have to crawl before you can walk”? Or “You can’t put lipstick on a landing page with 27 links”?

That last one may be exclusive to landing page software employees, but the sentiment is the same. Unless the foundation of your landing page is strong, any optimization beyond that will be a waste of your time—and ad spend. Because even the slickest, fanciest landing page will leak precious conversions if it lacks certain crucial elements.

For the sake of those ad dollars, let’s go back to basics.

In collaboration with our friends (and customers!) at Skillshare, we’ve created a free video crash course on the fundamentals of a high-converting landing page. Whether you’re building your first page or just want a refresher, you’ll get a checklist to set up each of your pages for success.

The full course, Creating Dedicated Landing Pages: How to Get Better ROI for Your Marketing Spend, is hosted by Unbounce VP of Product Marketing Ryan Engley and comprised of 11 videos totalling a quick 31 minutes. Sign up for a free Skillshare account and dive right into binge mode, or keep scrolling for an overview of what every landing page you create should have.

Bonus: Skillshare is offering 2 free months and access to thousands of other marketing classes just for signing up through our course.

Who’s it for?

Anyone running marketing campaigns! But in particular, those who execute on them.

Whether you’re responsible for launching paid advertising campaigns, build and design landing pages yourself, or work with designers and copywriters to create them, this course will ensure you’ve covered every base to create a compelling and high-converting post-click experience.

In a nutshell: It’s for anyone who runs paid marketing campaigns and wants to get the most bang for their buck.

What will it teach me?

In 11 videos, Ryan will take you through the process of creating a persuasive marketing campaign, cover each step of building a successful landing page within it, and explain the “why” behind it all so you’re taught to fish instead of just being handed the fish.

A few tidbits to start

Attention Ratio

If you’re thinking, “What’s wrong with sending people to my homepage?” then Attention Ratio is a great place to start.

“Your website is a bit of a jack of all trades,” Ryan explains. “Usually it’ll have a ton of content for SEO purposes, maybe information about your team…but if you’re running a marketing campaign and you have a single call to action in mind, your website’s not going to do you any favours.”

The more links you have on your page, the more distractions there are from your campaign’s CTA. You don’t want people to explore—you want them to act. And an Attention Ratio of 1:1 is a powerful way of achieving that.

Learn more about Attention Ratio in chapter three.

Unique Selling Proposition (USP)

Somewhat self-explanatory, your Unique Selling Proposition describes the benefit you offer, how you solve for prospects’ needs, and what distinguishes you from the competition. This doesn’t all have to fit in one sentence, rather, it can reveal itself throughout the page. But if you’re going to focus on one place to do the “heavy lifting,” as Ryan calls it, this place should be your headline and subhead.

Take Skillshare’s landing page for a content marketing course by Buzzfeed’s Matt Bellassai (if his name doesn’t ring a bell, Google him, grab some popcorn, and come back to us with a few laughter-induced tears streaming down your face). Without even looking at the rest of the page, you know exactly what you’ll get out of this course and how it will help you achieve a goal.

Learn more about Unique Selling Proposition in chapter five.

Social Proof

What’s more convincing than word of mouth? Since we don’t advise stalking and hiring people’s friends to tell prospects how great you are, the next best thing is to feature testimonials on your landing page. The key here is that you’re establishing trust and credibility by having someone else back you up.

Customer quotes, case studies, and product reviews are just a few of the many ways you can inject social proof into your landing page. Think of it as a “seal of approval” woven into your story that shows prospects you deliver on the promise of your Unique Selling Proposition.

Customer testimonials serve as the proof in your pudding.

Learn more about Social Proof in chapter eight.

And now for all the bits

Watch all 11 episodes of Creating Dedicated Landing Pages: How to Get Better ROI for Your Marketing Spend to set your landing pages up for success in less time than it takes to finish your lunch break. Beyond being 100% free, it’ll save you a lot of guesswork in building landing pages that convert and precious ad spend to boot. So settle in for a mini binge watch with a sandwich on the company tab—you earned it.

View article:  

Landing Page Essentials: A Free Video Crash Course from Unbounce and Skillshare

Thumbnail

Strategies to Scale Your Local PPC Campaigns Without Killing Your ROI

Strategies to Scale Your Local PPC Campaigns Without Killing Your ROI

Over 85% of online consumers these days are engaging with brands locally, whether through local listings, local sites, or search results. So you can’t be blamed for thinking that geo-targeting and running local PPC campaigns in Google Ads make a whole lot of sense.

The only problem? If you work at a multi-location franchise or company with multiple offices, local PPC at scale can be very messy.

First of all, it eats up a lot of resources to set up and maintain. And, second, when you’re trying to appeal to prospects in many locations with different ads and landing pages, mistakes and resource costs can easily kill your Google Ads campaign profitability.

The good news, however, is that—by using smart strategies and tools—you can scale your local PPC campaigns and target several locations at once without too many headaches.

Let’s explore this process.

Scale Local PPC Campaigns with Flexible Structure

First of all, scaling can be messy without proper Google Ads campaign structure. Good structure keeps things clean—and keeps you sane in the process.

I have two rules when it comes to structure for scaling local campaigns:

  • Rule #1. Have a keyword theme for each campaign.
  • Rule #2. Break your campaigns down into geo-focused ad groups.

Rule #1. Have a keyword theme for each campaign.

Your goal in establishing keyword themes is to match your paid audience with the message that is most relevant to their search intent.

This means that each theme should represent a specific stage in the Buyer’s Journey, so you know how it fits into your overall PPC Strategy.

For instance, if you’re running campaigns for an interior design studio, your campaigns would break down into the followings stages:

  • Decision stage. Targeting people who know what they the want (ie. “kitchen remodeling”) and have already decided on it.
  • Consideration stage. Targeting people who are considering an action (“should we remodel our kitchen?”) but haven’t decided yet.
  • Awareness stage. Targeting people who may be DIY-types or people who are starting their research (“what’s involved in kitchen remodeling?”) related to the services your company offers.

Once you’ve organized your campaigns into keywords themes in this way, you’ll need to figure out the ad groups they contain.

Rule #2. Break your campaigns down into geo-focused ad groups.

Rule #2 is about creating geo-focused ad groups. That is, you should break your campaigns down into ad groups that are location specific.

Why is this important?

Not surprisingly, different types of location searches perform differently. Segmenting them helps you to see the big picture, prioritize the optimization efforts, and finally scale to suit your needs.

To explore this idea further, we analyzed a few client categories, such as construction, legal, real estate, and interior design with over $10,000 in local PPC ad spend. Our research showed that searches with location performed better than general searches.

Location Mentioned in Search Terms
Our results show better performance when location is mentioned in search terms (via SCUBE Marketing)

Knowing this, I like to segment campaigns into four types of geo-focused ad groups:

  1. Non-Location
  2. Near Me
  3. Location SKAG (single keyword ad groups)
  4. Other Locations

Doing so helps create unique ads that are most relevant to prospects for each type of ad group at scale. Here’s a bit of information on each, with examples to make things clear:

Non-Location

Non-Location ad groups represent general theme-based searches with no location modifier. Here is an example of what this ad group looks like:

Example of Non-Location (via
Example of Non-Location
Pro Tip. If search terms with locations are accidentally triggered in this ad group, use negative keywords to exclude them. You can then add the relevant keywords in the SKAG or Other Locations ad groups.

Near Me

The number of “near me” searches has been growing (as a result of increased use of mobile devices and voice search) over the past five years. This type of search represents Google’s Micro-Moments philosophy, where you have to “Be There,” “Be Useful,” and “Be Quick” in order to stay relevant to consumer behavior.

Near me search term interest in the past 5 years (via Google Trends)
Near Me search term interest in the past five years (via Google Trends)

Because of the increased importance of this type of search, you should keep “near me” in an ad group separate from the others. See the example below:

Example of Near Me SKAG
Example of Near Me

Location SKAG

You may already be familiar with single keyword ad groups (SKAG). As the name suggests, they’re ad groups dedicated to just one keyword. For local PPC campaigns, you can use Location SKAG to separate locations with enough traffic, when it makes sense to track separately.

Here’s an example:

Example of Location SKAG
Example of Location SKAG

Other Locations

Finally, Other Locations ad groups represent all locations you are targeting except the ones in Location SKAG. The benefit of this is that you won’t need to create hundreds of ad groups that generate little traffic but require a lot of management time.

This ad group is the place for location-based keywords unless (or until) they get enough traffic to split them into their own Location SKAG.

Example of Other Locations SKAG
Example of Other Locations

Remember, once locations within this category become significant, you will want to promote them to separate Location SKAG.

Pro Tip. Don’t overdo the number of keywords you use. Google has extended its exact match keyword to cover not only plurals and close variants but also word ordering and function words in exact match keywords. Simply put, this means you don’t need as many keywords, and including too many will make your life harder.

Maintaining separate ad groups helps you prioritize optimization and testing efforts so you can have an impact and stay efficient with your time.

At this point, you may be asking:

But Tom, how can you have a message match between location search and your ad headline when you have many keywords in the ad group?

The short answer is Ad Customizers…

Scale with ad customizers

Message match is all about making sure your prospects’ keywords, your ads, and your landing pages are all consistent. It can have a significant effect on your conversions.

For good message match when scaling your local PPC campaigns, your ad has to match search terms with locations. This is why locality elements such as City, State, or even the word “local” (literally) matter a lot in your local PPC ad campaigns.

For most campaigns, creating unique ads for Non-Location, Near Me, or Location SKAG is manageable. But, when you get into the “Other location” category, creating relevant ads without the dedicated ad groups can be tough.

That’s why ad customizers are your best friend when scaling local PPC campaigns:

The Big Picture Of How The Ad Customizer Works
The big picture of how the ad customizer works

Here is how Google defines ad customizers:

Ad customizers adapt your text ads to what someone is searching for, which device she’s using, where he’s located, or even the date, time of day, or day of the week. They can insert a price, the time left before a sale ends, and any other text that you define.

You need two things to make ad customizers work:

  1. A dataset with attributes to use in your ads
  2. Ads to present the attributes

Let’s start with the dataset. All you will need is a simple spreadsheet that you can upload to the Business Data section in Google Ads. The spreadsheet will contain two types of data for your ads:

  • Attributes: In other words, what you want to customize in your ad. This can be text, price, number, or date.
  • Targeting: These signal when the attribute becomes active. There are seven targeting attributes. For local campaigns, however, location of interest and physical location targeting are the most useful.
Ad Customizer Data
Ad customizer data

In the example above, we automatically include “In Chicago” in the ad text when the person searching is physically in Chicago.

Pro Tip. Remember the name of the dataset (a.k.a. the spreadsheet) because you will need to reference it in the ads. See the example below:

Spreadsheet Name
Using the name of the dataset

Once you have your data, apply it in your ads. Whether you’re creating a new ad or editing an existing one, define the dataset and attribute you want to use in it. It will look like the example below:

Ad Customizer Data
Ad customizer data

Once the conditions are met, the ad will automatically show the attribute defined in the dataset.

The final result will look like the example below, where the location name we defined (“In Chicago” in this case) will dynamically show up when the searcher is physically located in our defined location (Chicago).

Ad Customizer Data
Ad customizer data
Pro Tip. Always keep one default ad without ad customizers for cases in which the conditions are not met. Otherwise, the ad group will not serve, and you’ll miss out on potential traffic.

Scale Landing Pages for Local PPC Ads with Dynamic Text Replacement (DTR)

To create a local experience for visitors searching for local products or services, you need to emphasize location on your landing pages.

To do this, you could create hundreds of landing pages using your CMS. While this approach will get the job done, it’s convoluted and extremely slow.

Alternatively, you could custom code a template connected to a location database and automatically create hundreds of landing pages.

With both of the above options, though, you end up managing hundreds of landing pages, which will create issues.

Sarunas Budrikas, President of Angle180 agency, describes this experience:

No matter the approach, the ramp-up time for developing new landing pages can take weeks. Landing page customization usually takes us 3 to 4 hours per location. It’s not an efficient way, especially if you planning A/B testing and updates.

With efficiency in mind, how do you get the job done faster?

Fortunately, there is a third option. You can use Unbounce’s Dynamic Text Replacement to add location elements for each location variant landing page.

Here’s a real-world example. The landing page below has a unique headline for keywords representing different locations, so a visitor in Houston will see a different headline than a visitor in San Antonio.

Keyword insertion using Dynamic Text Replacement
Keyword insertion using Dynamic Text Replacement (DTR)

Fortunately, DTR is easy to implement. You need just three components to swap out this location keyword dynamically:

  • Keywords, which will affect the URL
  • A URL tracking template, which will use the triggered keyword in the URL
  • And a landing page with Dynamic Text Replacement, which will read the URL and change the content based on the keyword in the URL

First, use the keywords from the campaign structure I covered above. You will find this feature especially useful for Location SKAG and Other Location ad groups.

Second, set up a URL template with ValueTrack parameters. The tracking template must have keyword parameters in order to work. You can see an example of this below:

URL Template Example
URL template example

Finally, set the content to change when the URL triggers the keyword defined in your tracking template. Don’t forget to set the default text, in case the URL doesn’t have a keyword.

The example below displays the how Dynamic Text Replacement looks in the Unbounce Builder, which you can use to accelerate the creation of your landing pages:

Dynamic Text Replacement in Unbounce
Dynamic Text Replacement (DTR) in Unbounce
Pro Tip. If you want more detailed instructions on how to set up Dynamic Text Replacement in Unbounce, take a look at the “How To” guide to learn the ins and outs of implementing it with Google Ads Keyword Insertion.

To summarize, you can scale local PPC campaigns with minimal pain by focusing on campaign structure, ad customizers, and dynamic text insertion from ad to landing page. Investing the time to implement these strategies early on in your scaling efforts will pay off in the long run.

How are you scaling your local PPC campaigns? Have any hot tips that I missed? Let’s discuss your methods in the comments below.

Jump to original: 

Strategies to Scale Your Local PPC Campaigns Without Killing Your ROI

Thumbnail

20 Conversion Optimization Tips for Zooming Past Your Competition

20 Conversion Optimization Tips for Zooming Past Your Competition

Conversion optimization (CRO) is one of the most impactful things you can do as a marketer.

I mean, bringing traffic to a website is important (because without traffic you’re designing for an audience of crickets). But without a cursory understanding of conversion optimization—including research, data-driven hypotheses, a/b tests, and analytical capabilities—you risk making decisions for your website traffic using only gut feel.

CRO can give your marketing team ideas for what you can be doing better to convert visitors into leads or customers, and it can help you discover which experiences are truly optimal, using A/B tests.

However, as with many marketing disciplines, conversion optimization is constantly misunderstood. It’s definitely not about testing button colors, and it’s not about proving to your colleagues that you’re right.

I’ve learned a lot about how to do CRO properly over the years, and below I’ve compiled 20 conversion optimization tips to help you do it well, too.

Conversion Optimization Tip 1:
Learn how to run an A/B test properly

Running an A/B test (an online controlled experiment) is one of the core practices of conversion optimization.

Testing two or more variations of a given page to see which performs best can seem easy due to the increased simplification of testing software. However, it’s still a methodology that uses statistical inference to make a decision as to which variant is best delivered to your audience. And there are a lot of fine distinctions that can throw things off.

What is A/B Testing?

There are many nuances we could get into here—Bayesian vs. frequentist statistics, one-tailed vs. two-tailed tests, etc.—but to make things simple, here are a few testing rules that should help you breeze past most common testing mistakes:

  • Always determine a sample size in advance and wait until your experiment is over before looking at “statistical significance.” You can use one of several online sample size calculators to get yours figured out.
  • Run your experiment for a few full business cycles (usually weekly cycles). A normal experiment may run for three or four weeks before you call your result.
  • Choose an overall evaluation criterion (or north star metric) that you’ll use to determine the success of an experiment. We’ll get into this more in Tip 4.
  • Before running the experiment, clearly write your hypothesis (here’s a good article on writing a true hypothesis) and how you plan to follow up on the experiment, whether it wins or loses.
  • Make sure your data tracking is implemented correctly so you’ll be able to pull the right numbers after the experiment ends.
  • Avoid interaction effects if you’re running multiple concurrent experiments.
  • QA your test setup and watch the early numbers for any wonky technical mistakes.

I like to put all of the above fine details in an experiment document with a unique ID so that it can be reviewed later—and so the process can be improved upon with time.

An example of experiment documentation
An example of experiment documentation using a unique ID.
Tip 1: Ensure you take the time to set up the parameters of your A/B test properly before you begin. Early mistakes and careless testing can compromise the results.

Conversion Optimization Tip 2:
Learn how to analyze an A/B test

The ability to analyze your test after it has run is obviously important as well (and can be pretty nuanced depending on how detailed you want to get).

For instance, do you call a test a winner if it’s above 95% statistical significance? Well, that’s a good place to begin, but there are a few other considerations as you develop your conversion optimization chops:

  • Does your experiment have a sample ratio mismatch?
    Basically, if your test was set up so that 50% of traffic goes to the control and 50% goes to the variant, your end results should reflect this ratio. If the ratio is pretty far off, you may have had a buggy experiment. (Here’s a good calculator to help you determine this.)
  • Bring your data outside of your testing tool.
    It’s nice to see your aggregate data trends in your tool’s dashboard, and their math is a good first look, but I personally like to have access to the raw data. This way you can analyze it in Excel and really trust it. You can also import your data to Google Analytics to view the effects on key segments.

This can also open up the opportunity for further insights-driven experiments and personalization. Does one segment react overwhelmingly positive to a test you’ve run? Might be a good opportunity to implement personalization.

Checking your overall success metric first (winner, loser, inconclusive) and then moving to a more granular analysis of segments and secondary effects is common practice among CRO practitioners.

Here’s how Chris McCormick from PRWD explains the process:

Once we have a high level understanding of how the test has performed, we start to dig below the surface to understand if there are any patterns or trends occurring. Examples of this would be: the day of the week, different product sets, new vs returning users, desktop vs mobile etc.

Also, there are tons of great A/B test analysis tools out there, like this one from CXL:

AB Test Calculator
Tip 2: Analyze your data carefully by ensuring that your sample ratio is correct. Then export it to a spreadsheet where you can check your overall success metric before moving on to more granular indicators.

Conversion Optimization Tip 3:
Learn how to design your experiments

At the beginning, it’s important to consider the kind of experiment you want to run. There are a few options in terms of experimental design (at least, these are the most common ones online):

  1. A/B/n test
  2. Multivariate test
  3. Bandit test

A/B/n test

An A/B/n test is what you’re probably most used to.

It splits traffic equally among two or more variants and you determine which test won based on its effect size (assuming that other factors like sample size and test duration were sufficient).

ABCD Test Example
An A/B test with four variants: Image source

Multivariate test

In a multivariate test, on the other hand, you can test several variables on a page and hope to learn what the interaction effects are among elements.

In other words, if you were changing a headline, a feature image, and a CTA button, in a multivariate test you’d hope to learn which is the optimal combination of all of these elements and how they affect each other when grouped together.

A Multivariate Test

Generally speaking, it seems like experts run about ten a/b tests for every multivariate test. The strategy I go by is:

  • Use A/B testing to determine best layouts at a more macro-level.
  • Use MVT to polish the layouts to make sure all the elements interact with each other in the best possible way.

Bandit test

Bandits are a bit different. They are algorithms that seek to automatically update their traffic distribution based on indications of which result is best. Instead of waiting for four weeks to test something and then exposing the winner to 100% traffic, a bandit shifts its distribution in real time.

Experimental Design: Bandits

Bandits are great for campaigns where you’re looking to minimize regrets, such as short-term holiday campaigns and headline tests. They’re also good for automation at scale and targeting, specifically when you have lots of traffic and targeting rules and it’s tough to manage them all manually.

Unfortunately, while they are simpler from an experimental design perspective, they are much harder for engineers to implement technically. This is probably why they’re less common in the general marketing space, but an interesting topic nonetheless. If you want to learn more about bandits, read this article I wrote on the topic a few years ago.

Tip 3: Consider the kind of experiment you want to run. Depending on your needs, you might run an A/B/n test, a multivariate test, a bandit test, or some other form of experimental design.

Conversion Optimization Tip 4:
Choose your OEC

Returning to a point made earlier, it’s important to choose which north star metric you care about: this is your OEC (Overall Evaluation Criterion). If you don’t state this and agree upon it up front as stakeholders in an experiment, you’re welcoming the opportunity for ambiguous results and cherry-picked data.

Basically, we want to avoid the problem of HARKing: hypothesizing after results are known.

Twitter, for example, wrote on their engineering blog that they solve this by stating their overall evaluation criterion up front:

One way we guide experimenters away from cherry-picking is by requiring them to explicitly specify the metrics they expect to move during the set-up phase….An experimenter is free to explore all the other collected data and make new hypotheses, but the initial claim is set and can be easily examined.

The term OEC was popularized by Ronny Kohavi at Microsoft, and he’s written many papers that include the topic, but the sentiment is widely known by people who run lots of experiments. You need to choose which metric really matters, and which metric you’ll make decisions with.

Tip 4: In order to avoid ambiguous or compromised data, state your OEC (Overall Evaluation Criterion) before you begin and hold yourself to it. And never hypothesize after results are known.

Conversion Optimization Tip 5:
Some companies shouldn’t A/B test

You can still do optimization without A/B testing, but not every company can or should run A/B tests.

It’s a simple mathematical limitation:

Some businesses just don’t have the volume of traffic or discrete conversion events to make it worth running experiments.

Getting an adequate amount of traffic to a test ultimately helps ensure its validity, and you’ll need this as part of your sample size to ensure a test is cooked.

In addition, even if you could possibly squeeze out a valid test here and there, the marginal gains may not justify the costs when you compare it to other marketing activities in which you could engage.

That said, if you’re in this boat, you can still optimize. You can still set up adequate analytics, run user types on prototypes and new designs, watch session replays, and fix bugs.

Running experiments is a ton of fun, but not every business can or should run them (at least not until they bring some traffic and demand through the door first).

Tip 5: Determine whether your company can or even should run A/B tests. Consider both your volume of traffic and the resources you’ll need to allocate before investing the time.

Conversion Optimization Tip 6:
Landing pages help you accelerate and simplify testing

Using landing pages is correlated with greater conversions, largely because using them makes it easier to do a few things:

  • Measure discrete transitions through your funnel/customer journey.
  • Run controlled experiments (reducing confounding variables and wonky traffic mixes).
  • Test changes across templates to more easily reach a large enough sample size to get valid results.

To the first point, having a distinct landing page (i.e. something separate and easier to update than your website) gives you an easy tracking implementation, no matter what your user journey is.

For example, if you have a sidebar call to action that brings someone to a landing page, and then when they convert, they are brought to a “Thank You” page, it’s very easy to track each step of this and set up a funnel in Google Analytics to visualize the journey.

Google Analytics Funnel

Landing pages also help you scale your testing results while minimizing the resource cost of running the experiment. Ryan Farley, co-founder and head of growth at LawnStarter, puts it this way:

At LawnStarter, we have a variety of landing pages….SEO pages, Facebook landing pages, etc. We try to keep as many of the design elements such as the hero and explainer as similar as possible, so that way when we run a test, we can run it sitewide.

That is, if you find something that works on one landing page, you can apply it to several you have up and running.

Tip 6: Use landing pages to make it easier to test. Unbounce lets you build landing pages in hours—no coding required—and conduct unlimited A/B tests to maximize conversions.

Conversion Optimization Tip 7:
Build a growth model for your conversion funnel

Creating a model like this requires stepping back and asking, “how do we get customers?” From there, you can model out a funnel that best represents this journey.

Most of the time, marketers set up simple goal funnel visualization in Google Analytics to see this:

Google Analytics Funnel Visualization

This gives you a lot of leverage for future analysis and optimization.

For example, if one of the steps in your funnel is to land on a landing page, and your landing pages all have a similar format (e.g. offers.site.com), then you can see the aggregate conversion rate of that step in the funnel.

More importantly, you can run interesting analyses, such as path analysis and landing page comparison. Doing so, you can compare apples to apples with your landing pages and see which ones are underperforming:

Landing Page Comparison
The bar graph on the right allows you to quickly see how landing pages are performing compared to the site average.

I talk more about the process of finding underperforming landing pages in my piece on content optimization if you want to learn step-by-step how to do that.

Tip 7: Model out a funnel that represents the customer journey so that you can more easily target underperforming landing pages and run instructive analyses focused on growth.

Conversion Optimization Tip 8:
Pick low hanging fruit in the beginning

This is mostly advice from personal experience, so it’s anecdotal: when you first start working on a project or in an optimization role, pick off the low hanging fruit. By that, I mean over-index on the “ease” side of things and get some points on the board.

It may be more impactful to set up and run complex experiments that require many resources, but you’ll never pull the political influence necessary to set these up without some confidence in your abilities to get results as well as in the CRO process in general.

To inspire trust and to be able to command more resources and confidence, look for the easiest possible implementations and fixes before moving onto the complicated or risky stuff.

And fix bugs and clearly broken things first! Persuasive copywriting is pretty useless if your site takes days to load or pages are broken on certain browsers.

Tip 8: Score some easy wins by targeting low hanging fruit before you move on to more complex optimization tasks. Early wins give you the clout to drive bigger experiments later on.

Conversion Optimization Tip 9:
Where possible, reduce friction

Most conversion optimization falls under two categories (this is simplified, but mostly true):

  • Increasing motivation
  • Decreasing friction

Friction occurs when visitors become distracted, when they can’t accomplish a task, or simply when a task is arduous to accomplish. Generally speaking, the more “nice to have” your product is, the more friction matters to the conversion. This is reflected in BJ Fogg’s behavior model:

BJ FOGGs Behaviour Model

In other words, if you need to get a driver’s license, you’ll put up with pure hell at the DMV to get it, but you’ll drop out of the funnel at the most innocent error message if you’re only trying to buy something silly on drunkmall.com.

A few things that cut down on friction:

  • Make your site faster.
  • Trim needless form fields.
  • Cut down the amount of steps in your checkout or signup flow.

For an example on the last one, I like how Wordable designed their signup flow. You start out on the homepage:

Wordable

Click “Try It Free” and get a Google OAuth screen:

Wordable 0auth

Give permissions:

Wordable permissions

And voila! You’re in:

Wordable Dashboard

You can decrease friction by reducing feelings of uncertainty as well. Most of the time, this is done with copywriting or reassuring design elements.

An example is with HubSpot’s form builder. We emphasize that it’s “effortless” and that there is “no technical expertise required” to set it up:

Hubspot Form Builder

(And here’s a little reminder that HubSpot integrates beautifully with Unbounce, so you’ll be able to automatically populate your account with lead info collected on your Unbounce landing pages.)

Tip 9: Cut down on anything that makes it harder for users to convert. This includes making sure your site is fast and trimming any forms or steps that aren’t necessary for checkout or signup.

Conversion Optimization Tip 10:
Help increase motivation

The second side of the conversion equation, as I mentioned, is motivation.

An excellent way to increase the motivation of a visitor is simply to make the process of conversion…fun. Most tasks online don’t need to be arduous or frustrating, we’ve just made them that way due to apathy and error.

Take, for example, your standard form or survey. Pretty boring, right?

Well, today, enough technological solutions exist to implement interactive or conversational forms and surveys.

One such solution is Survey Anyplace. I asked their founder and CEO, Stefan Debois, about how their product helps motivate people to convert, and here’s what he said:

An effective and original way to increase conversion is to use an interactive quiz on your website. Compared to a static form, people are more likely to engage in a quiz, because they get back something useful. An example is Eneco, a Dutch Utility company: in just 6 weeks, they converted more than 1000 website visitors with a single quiz.

Full companies have been built on the premise that the typical form is boring and could be made more fun and pleasant to complete (e.g. TypeForm). Just think, “how can I compel more people to move through this process?”

Other ways to do this that are quite commonplace involve invoking certain psychological triggers to compel forward momentum:

  • Implement social proof on your landing pages.
  • Use urgency to compel users to act more quickly.
  • Build out testimonials with well-known users to showcase authority.

There are many more ways to use psychological triggers to motivate conversions. Check out Robert Cialdini’s classic book, Influence, to learn more. Also, check out The Wheel of Persuasion for inspiration on persuasive triggers.

Tip 10: Make your conversion process fun in order to compel your visitors to keep moving forward. Increased interactivity, social proof, urgency, and testimonials that showcase authority can all help you here too.

Conversion Optimization Tip 11:
Clarity > Persuasion

While persuasion and motivation are really important, often the best way to convert visitors is to ensure they understand what you’re selling.

Stated differently, clarity trumps persuasion.

Use a five-second test to find out how clear your messaging is.

Conversion Optimization Tip 12:
Consider the “Pre-Click” Experience

People forget the pre-click experience. What does a user do before they hit your landing pages? What ad did they click? What did they search in Google to get to your blog post?

Knowing this stuff can help you create strong message match between your pre-click experience and your landing page.

Sergiu Iacob, SEO Manager at Bannersnack, explains their process for factoring in keywords:

When it comes to organic traffic, we establish the user intent by analyzing all the keywords a specific landing page ranks for. After we determine what the end result should look like, we adjust both our landing page and our in app user journey. The same process is used in the optimization of landing pages for search campaigns.

I’ve recommended the same thing before when it comes to capturing email leads. If you can’t figure out why people aren’t converting, figure out what keywords are bringing them to your site.

Usually, this results in a sort of passive “voice of customer” mining, where you can message match the keywords you’re ranking for with the offer on that page.

It makes it much easier to predict what messages your visitors will respond to. And it is, in fact, one of the cheapest forms of user research you can conduct.

AHRefs Keywords
Using Ahrefs to determine what keywords brought traffic to a page.
Tip 12: Don’t forget the pre-click experience. What do your users do before they hit your landing page? Make sure you have a strong message match between your ads (or emails) and the pages they link to.

Conversion Optimization Tip 13:
Build a repeatable CRO process

Despite some popular blog posts, conversion optimization isn’t about a series of “conversion tactics” or “growth hacks.” It’s about a process and a mindset.

Here’s how Peep Laja, founder of CXL, put it:

The quickest way to figure out whether someone is an amateur or a pro is this: amateurs focus on tactics (make the button bigger, write a better headline, give out coupons etc) while pros have a process they follow.

And, ideally, the CRO process is a never-ending one:

CRO Process

Conversion Optimization Tip 14:
Invest in education for your team

CRO people have to know a lot about a lot:

  • Statistics
  • UX design
  • User research
  • Front end technology
  • Copywriting

No one comes out the gate as a 10 out of 10 in all of those areas (most never end up there either). You, as an optimizer, need to be continuously learning and growing. If you’re a manager, you need to make sure your team is continuously learning and growing.

Conversion Optimization Tip 15:
Share insights

The fastest way to scale and leverage experimentation is to share your insights and learnings among the organization.

This becomes more and more valuable the larger your company grows. It also becomes harder and harder the more you grow.

Essentially, by sharing you can avoid reinventing the wheel, you can bring new teammates up to speed faster, and you can scale and spread winning insights to teams who then shorten their time to testing. Invest in some sort of insights management system, no matter how basic.

Full products have been built around this, such as GrowthHackers’ North Star and Effective Experiments.

Effective Experiments
Tip 15: Share what you learn within your organization. The bigger your company grows, the more important information sharing becomes—but the more difficult it will become as well.

Conversion Optimization Tip 16:
Keep your cognitive biases in check

As the great Richard Feynman once said, “The first principle is that you must not fool yourself and you are the easiest person to fool.”

We’re all afflicted by cognitive biases, ranging from confirmation bias to the availability heuristic. Some of these can really impact our testing programs, specifically confirmation bias (and its close cousin, the Texas Sharpshooter Fallacy) where you only seek out pieces of data that confirm your previous beliefs and throw out those that go against them.

Experimenter Bias

It may be worthwhile (and entertaining) simply to run down Wikipedia’s giant list of cognitive biases and gauge where you may currently be running blind or biases.

Tip 16: Be cognizant of your own cognitive biases. If you’re not careful, they can influence the outcome of your experiments and cause you to miss (or misinterpret) key insights in your data.

Conversion Optimization Tip 17:
Evangelize CRO to your greater org

Having a dedicated CRO team is great. Evangelizing the work you’re doing to the rest of the organization? Even better.

Evangelize your CRO
Spread the word about the importance of CRO within your org.

When an entire organization buys into the value of data-informed decision making and experimentation, magical things can happen. Ideas burst forth, and innovation becomes easy. Annoying roadblocks are deconstructed. HiPPO-driven decision making is deprioritized behind proper experiments.

Things you can do to evangelize CRO and experimentation:

  • Write down your learnings each week on a company wiki.
  • Send out a newsletter with live experiments and experiment results each week to interested parties.
  • Recruit an executive sponsor with lots of internal influence.
  • Sing your praises when you get big wins. Sing it loud.
  • Make testing fun, and make it easier for others to join in and pitch ideas.
  • Make it easier for people outside of the CRO team to sponsor tests.
  • Say the word “hypothesis” a lot (who knows, it might work).

This is all a kind of art; there are no universal methods for spreading the good gospel of CRO. But it’s important that you know it’s probably going to be something of an uphill battle, depending on how big your company is and what the culture has traditionally been like.

Tip 17: Spread the gospel of CRO across your organization in order to ensure others buy into the value of data-driven decision making and experimentation.

Conversion Optimization Tip 18:
Be skeptical with CRO case studies

This isn’t so much a conversion optimization tip as it is life advice: be skeptical, especially when marketing is involved.

I say this as a marketer. Marketers exaggerate stuff. Some marketers omit important details that derail a narrative. Sometimes, they don’t understand p values, or how to set up a proper test (maybe they haven’t read Tip 1 in this article).

In short, especially in content marketing, marketers are incentivized to publish sensational case studies regardless of their statistical merit.

All of that results in a pretty grim standard for the current CRO case study.

Don’t get me wrong, some case studies are excellent, and you can learn a lot from them. Digital Marketer lays out a few rules for detecting quality case studies:

  • Did they publish total visitors?
  • Did they share the lift percentage correctly?
  • Did they share the raw conversions? (Does the lack of raw conversions hurt my case study?)
  • Did they identify the primary conversion metric?
  • Did they publish the confidence rate? Is it >90%?
  • Did they share the test procedure?
  • Did they only use data to justify the conclusion?
  • Did they share the test timeline and date?

Without context or knowledge of the underlying data, a case study might be a whole lot of nonsense. And if you want a good cathartic rant on bad case studies, then Andrew Anderson’s essay is a must-read.

According to a study...
Tip 18: Approach existing material on CRO with a skeptical mindset. Marketers are often incentivized to publish case studies with sensational results, regardless of the quality of the data that supports them.

Conversion Optimization Tip 19:
Calculate the cost of additional research vs. just running it

Matt Gershoff, CEO of Conductrics, is one of the smartest people I know regarding statistics, experimentation, machine learning, and general decision theory. He has stated some version of the following on a few occasions:

  • Marketing is about decision-making under uncertainty.
  • It’s about assessing how much uncertainty is reduced with additional data.
  • It must consider, “What is the value in that reduction of uncertainty?”
  • And it must consider, “Is that value greater than the cost of the data/time/opportunity costs?”

Yes, conversion research is good. No, you shouldn’t run blind and just test random things.

But at the end of the day, we need to calculate how much additional value a reduction in uncertainty via additional research gives us.

If you can run a cheap A/B test that takes almost no time to set up? And it doesn’t interfere with any other tests or present an opportunity cost? Ship it. Because why not?

But if you’re changing an element of your checkout funnel that could prove to be disastrous to your bottom line, well, you probably want to mitigate any possible downside. Bring out the heavy guns—user testing, prototyping, focus groups, whatever—because this is a case where you want to reduce as much uncertainty as possible.

Tip 19: Balance the value of doing more research with the costs (including opportunity costs) associated with it. Sometimes running a quick and dirty A/B test will be sufficient for your needs.

Conversion Optimization Tip 20:
CRO never ends

You can’t just run a few tests and call it quits.

The big wins from the early days of working on a relatively unoptimized site may taper off, but CRO never ends. Times change. Competitors and technologies come and go. Your traffic mix changes. Hopefully, your business changes as well.

As such, even the best test results are perishable, given enough time. So plan to stick it out for the long run and keep experimenting and growing.

Think Kaizen.

Kaizen

Conclusion

There you go, 20 conversion optimization tips. That’s not all there is to know; this is a never-ending journey, just like the process of growth and optimization itself. But these tips should get you started and moving in the right direction.

This article:

20 Conversion Optimization Tips for Zooming Past Your Competition

Thumbnail

A Guide To Embracing Challenges And Excelling At Your UX Design Internship




A Guide To Embracing Challenges And Excelling At Your UX Design Internship

Erica Chen



This is the story about my user design internship. I’m not saying that your internship is going to be anything like mine. In fact, if there’s one thing I can say to shape your expectations, it would be this: be ready to put them all aside. Above all else, remember to give yourself space and time to learn. I share my story as a reminder of how much I struggled and how well everything went despite my difficulties so that I’ll never stop trying and you won’t either.

It all started in May 2018, when I stepped off the plane in Granada, Spain, with a luggage at my side, laptop on my back, and some very rusty Spanish in my head. It was my first time in Europe and I would be here for the next three months doing an internship in UX design at Badger Maps. I was still pretty green in UX, having been learning about it for a barely a year at this point but I felt ready and eager to gain experience in a professional setting.

Follow along as I learned how to apply technical knowledge to complete the practical design tasks assigned to me:

  • Create a design system for our iOS app using Sketch;
  • Design a new feature that would display errors occurring in data imports;
  • Learn the basics HTML, CSS, and Flexbox to implement my design;
  • Create animations with Adobe Illustrator and After Effects.

This article is intended for beginners like me. If you are new to UX design looking to explore the field — read on to learn if a UX design internship is the right thing for you! For me, the work I ended up completing went well beyond my expectations. I learned how to a design system, how to compromise design with user needs, the challenges of implementing a new design, and how to create some “moments of delight.” Every day at the internship presented something new and unpredictable. At the conclusion of my internship, I realized I had created something real, something tangible, and it was like everything I had struggled with suddenly fell into place.

Recommended reading: How To Land A First-Rate Graphic Design Internship

Chapter 1: Legos

My first task was to create a design system for our existing iOS app. I had created design systems in the past for my own projects and applications, but I had never done them retrospectively and never for a design that wasn’t my own. To complete the assignment, I needed to reverse engineer the mockups in Sketch; I would first need to update and optimize the file in order to create the design system.


Screenshot of organizing a design file in the program Sketch.


Working with organizing the Sketch file to create a design system. (Large preview)

It was also at this opportune moment when I learned the Sketch program on my computer had been outdated for about a year and a half. I didn’t know about any of the symbols, overrides and other features in the newer versions. Lesson learned: keep your software updated.


Footer symbols and overrides in the program Sketch.


Creating footers and working with overrides in Sketch. (Large preview)

Before worrying about the symbols page, I went through the mockups artboard by artboard, making sure they were updated and true to the current released version of the application. Once that was done, I began creating symbols and overrides for different elements. I started with the header and footer and moved on from there.

As a rule of thumb, if an element showed up in more than one page, I would make it a symbol. I added different icons to the design system as I went, building up the library. However, it quickly became clear that the design system was evolving and changing faster than I could try to organize it. Halfway through, I stopped trying to keep the symbols organized, opting instead to go back and reorganize them once I had finished recreating each page. When I stopped going back and forth between mockups and symbols and worrying about the organization for both, I could work more efficiently.

It was easy to come to appreciate the overrides and symbols in Sketch. The features made the program much more powerful than what I was used to and increased the workability of the file for future designs. The task of creating the design system itself challenged me to dive deep into the program as well as understand all the details of the design of our application. I began to notice small inconsistencies in spacing, icon size, or font sizes that I was able to correct as I worked.


A description of what the image shows for alt text


A caption to be shown below the image. (Large preview)

The final step was to go back into the symbols page and organize everything. I weeded through all the symbols, deleted those not in use and any replicas. Despite being a little tedious, this was a very valuable step in the process. Going through the symbols after working through the document gave me a chance to reevaluate how I had created the symbols for each page. Grouping them together forced me to consider how they were related throughout the app.

By going through this thought process, I realized how challenging it was to create a naming system. I needed to create a system broad enough to encompass enough elements, specific enough to avoid being vague, and that could easily be understood by another designer. It took me a few tries before I landed upon a workable system that I was happy with. Ultimately, I organized elements according to where they were used in the application, grouping pieces like lists together. It worked well for an application like Badger that had distinct designs for different features in the app. The final product was a more organized file that would be a lot easier to work with for any future design iterations.


New design with larger headers, inspired by native apple apps.


Modernizing the design with new header designs. (Large preview)

As a capstone to this project, I experimented with modernizing the design. I redesigned the headers throughout the app, drawing on native apple apps for inspiration. Happily, the team was excited about it as well and are considering implementing the changes in future updates to the app.

Overall, working a Sketch file to such detail was an unexpectedly helpful experience. I left with a much greater fundamental understanding of things like font size, color, and spacing by virtue of redoing every page. The exercise of copying existing design required a minute attention to detail that was very satisfying. It was like putting together a Lego model: I had all the pieces and knew what the end product needed to look like. I just needed to organize everything and put them together to create the finished product. This is one of the reasons why I enjoy doing UX design. It’s about the problem solving and piecing together a puzzle to create something that everyone can appreciate.


Final design for a new feature for the badger maps web application.


Dashboard design for the Badger web application. (Large preview)

Chapter 2: The Design

The next part of my internship allowed me to get into the weeds with some design work. The task: to design a new import page for the Badger web application.

The team was working on redesigning the badger to CRM integration to create a system that allowed users to view any data syncs and manage their accounts themselves. The current connection involves a lot of hands-on work from badger CSAs and AEs to set up and maintain. By providing an interface for users to directly interact with the data imports, we wanted to improve the user experience for our CRM integration.


Current design for the import process.


Existing process: Users currently integrating Badger with their Salesforce accounts can’t manage the flow of information between the two. They can’t view any errors in data being imported to Badger or easily see the status of their import. To the right is the existing errors view for users importing via spreadsheets. We want to improve this user experience and make it accessible to Salesforce-integrated users as well. (Large preview)

My goal was to design a page that would display errors occurring in any data imports that also communicated to users how and where to make the necessary changes to their data. If there were more errors associated with a single import or users would like to view all errors at once, they should be able to download an excel file of all that information.

Objectives

  1. Create an import page that informs the user on the status of an import in process;
  2. Provide a historical record of account syncs between Badger and the CRM with detailed errors associated with each import;
  3. Provide links to the CRM for each account that has an import error in Badger;
  4. Allow users to download an excel file of all outstanding errors.

User Stories

Badger customer with CRM account:
As a customer with a CRM, I want to be able to connect my CRM to my badger and visualize all data syncs so that I’m aware of all errors in the process and can make changes as necessary.

Badger:
As a badger, I want users to be able to manage and view the status of their CRM integration so that I can save time and manual work helping and troubleshooting users syncing their badger to their CRM accounts.

Before I really delved into the design, we needed to go through some thinking to decide what information to show and how:

  1. Bulk versus continuous imports
    Depending on the type of user, there are two ways to import data to Badger. If done through spreadsheets, the imports would be batched and we would be able to visualize the imports in groups. Users integrated with their CRMs, however, would need to have their Badger data updated constantly as they made changes within their CRM. The design needed to be able to handle both use cases.
  2. Import records
    Because this was a new feature, we weren’t absolutely sure of the user behavior. Thus, deciding how to organize the information was challenging. Should we allow users to go for an infinity scroll in a list of their history? How would they search for a specific import? Should they be able to? Should we show the activity day-by-day or month by month?

Ultimately, we were only able to make a best guess for each of these issues — knowing that we could make appropriate adjustments in the future once users began using the feature. After thinking these issues out, I moved into wireframing. I had the opportunity to design something completely different and this was both liberating and challenging. The final design was a culmination of individual elements from various designs that were created along the way.

Design Process

The hardest part of this process was learning to start over. I eventually learned that forcing something into my design for solely aesthetic purposes was not ideal. Understanding this and letting my ideas go was key to arriving at a better design. I needed to learn how to go start over again and again to explore different ideas.


Three design explorations.


First few iterations: Experimenting with the placement of the header, buttons, and list design. Feedback at this point and for the next few days was consistently as it should be: ‘let’s see what else we can do.’ But the advantages to running like a headless chicken was that I occasionally stumbled upon some corn kernels of gold that I used in the final design. (Large preview)


A blue themed design exploration.


One design exploration that stretched a little too far from the badger application. After this, I circled back a little but the final design really benefited from exploring such different ideas. (Large preview)

Challenges

1. Using white space

Right off the bat, I needed to explore what information we wanted to show on the page. There were many details we could include — and definitely the room to do it.


A dashboard design showing a lot of excess information.


Initially, I was very intimidated at the prospect of having a lot of white space and a minimalistic design so tried really hard to come up with filler information, 75% of which our users wouldn’t really need. Then I crammed it all into my design, permitting minimal breathing room. A very good attitude for a city planner in San Francisco; not so much for creating user centric design. (Large preview)

All the unnecessary information added way too much cognitive load and took away from what the user was actually concerned about. Instead of trying to get rid of all the white space, I needed to work with it. With this in mind, I eventually chucked out all the irrelevant information to show only what we expect our users to be most concerned about: the errors associated with data imports.

This was the final version:


Final design featuring a streamlined table design with activity organized by month.


Imports organized according to day and month. This was a more logical organization for our purposes, especially because synchronizations between the CRM and Badger were continuous, not just on demand. (Large preview)

2. Navigation

The next challenge was deciding between a sidebar versus a header for displaying information. The advantages to the sidebar was that the information would be consistently visible as the user scrolled. But we also had to ensure that the information contained in the sidebar was logically related to what was going on in the rest of the page.

The header offered the advantage of a clean, single column design. The downside was that it took up a lot of vertical real estate depending on how much information was contained in the header. It also visually prioritized the contents of the header over what was below it for the user.


Design exploration with a top navigation.


Iteration exploring the top navigation. Cons: users would scroll through the list of imports to view errors and have to scroll back up to see the summary. The contents and location of the two cells to the right was also confusing. It didn’t make sense for the two cells to scroll with the rest of the page because they were a summary of all information to its left. But it would make for a confusing user experience if they didn’t scroll. Overall, the organization of the information on the page was misaligned with the design. (Large preview)

Once I worked out what information to display where, the sidebar navigation became the more logical decision. We expect users to be primarily concerned with the errors associated with their imports and with a large header, too much of that information would fall below the fold. The sidebar could then be a container for an import and activity summary that would be visible as the user scrolled.

Sidebar design: After I decided on having a sidebar, it came down to deciding what information to include and how to display it.


Five different sidebar design explorations.


Different sidebar design explorations. The design became increasingly simple as I narrowed in on the information the users wanted to see. (Large preview)

I struggled to create a design that was visually interesting because there was little information to show. For this reason, I once again found myself adding in unnecessary elements to fill up the space although I wanted to prioritize the user. I experimented with different content and color combinations, trying to find the compromise between design and usability. The more I worked with it, the more I was able to parse down the design to the bare bones. It became easier to differentiate useful information from fillers. The final product is a streamlined design with just a few summary statistics. It also offers great flexibility to include more information in the future.


Final design for a new feature for the badger maps web application.


Final design: Subtext beneath the buttons removed and the accounts created/accounts updated information is placed in its own container and shifted down to add visual interest. (Large preview)

Import process: The import progress page was created after the design for the import page was finalized. The biggest design challenge here was deciding how to display the in-progress import sync. I tried different solutions from pop-ups and overlays but ultimately settled with showing the progress in the sidebar. This way, users can still resolve any errors and see the historical record of their account data while an import is in progress. To prevent any interruptions to the import, the ‘Sync data’ and ‘Back to Badger’ buttons are disabled so users can’t leave the page.


Final design with the sync data and back to badger buttons disabled.


Sync data and Back to Badger buttons disabled to prevent users from interrupting the sync and going back to the application. (Large preview)

With the designs done, I moved onto HTML and CSS.


Screenshot of the sketch program and visual studio code with the code for the design.


Beginning to code my design. (Large preview)

Chapter 3: HTML/CSS

This project was my first experience with any type of coding. Although I had tried to learn HTML and CSS before, I had never reached any level of proficiency. And what better way to start than with a mockup of one’s own design?

Understanding the logic of organizing an HTML document reminded me of organizing the Sketch document with symbols and overrides. However, the similarities ended there. Coding felt like a very alien thing that I was consistently trying to wrap my head around. As my mentor would say, “You’re flexing very different muscles in programming than you are in design.” With the final product in hand now, I’m fully convinced that learning to code is the coolest thing I’ve learned to do since being potty trained.

The first challenge, after setting up a document and understanding the basics, was working with Flexbox. The design I had created involved two columns side by side. The right portion was meant to scroll while the left remained static. Flexbox seemed like a clean solution for this purpose, assuming I could get it to work.

Implementing Flexbox consisted of a lot of trial and error and blind copying of code while I scrambled through various websites, reading tutorials and inspecting code. With guidance from my mentor through this whole process, we eventually got it to work. I will never forget the moment when I finally understood that by using flex-direction: column I would get all of the elements into a single column, and flex-direction: row helped placed them in one row.

It makes so much sense now, although my initial understanding of it was the exact opposite (I thought flex-direction: column would put elements in columns next to each other). Surprisingly, I didn’t even come to this realization until after the code was working. I was reviewing my code and realized I didn’t understand it at all. What tipped me off? In my CSS, I had coded flex-direction: row into the class I named column. This scenario was pretty indicative of how the rest of my first coding experience went. My mental model was rarely aligned with the logic of the code, and they often clashed and went separate ways. When this happened, I had to go back, find my misconceptions, and correct the code.

After setting up Flexbox, I needed to figure out how to get the left column to stay fixed while the right portion scrolled. Turns out this couldn’t be achieved with a single line of code as I had hoped. But working through this helped me understand the parent-child relationship that aided me immensely with the rest of the process.


Table of imports design showing the timeline and calendar icons


Vertical timeline with calendar icons. (Large preview)

Coding the vertical timeline and the dial was also a process. The timeline was simpler than I had originally anticipated. I was able to create a thin rectangle, set an inner shadow and a gradient filling to it, and assign it to the width of each activity log.

The dial was tricky. I tried implementing it with pure CSS with very little success. There were a few times I considered changing the design for something simpler (like a progress bar) but I’m quite happy I stuck with it.


Image showing the original and final dial designs.


Original and final dial designs. (Large preview)

A major struggle was getting outside progress dial to overlap the background circle along the border. This was where I changed the design a little bit — instead of having the unloaded portion of the progress dial cut out, it overlaps all around. It was a compromise between my design and code that I was initially unwilling to make. As it turns out, however, I was satisfied with the final result and once I realized this, I was happy to make that compromise. The final dial was implemented via JavaScript.

There was a moment in my coding process where I threw every line of code I’d ever written into every class to try to make it work. To make up for this lack of hindsight, I needed to spend quite a while going through and inspecting all the elements to remove useless code. I felt like a landlord kicking out the tenants who weren’t paying rent. It was most definitely a lesson learned in maintaining a level of housekeeping and being judicious and thoughtful with code.

The majority of the experience felt like blind traversing and retrospective learning. However, nothing was more satisfying than seeing the finished product. Going through the process made me interact with my work in a way I had never done before and gave me insight into how design is implemented. In all of my expectations for the internship, I never anticipated being able to code and create one of my own designs. Even after being told I would be able to do so on my first day, I didn’t believe it until after seeing this page completed.

Chapter 4: Working With Baby Badgers

As part of the process integrating Badger users with their CRM accounts, we needed our users to sign into their CRM — requiring us to redirect them out of badger to the native CRM website. To prevent a sudden, jarring switch from one website to another, I needed to design intermediate loading pages.


Original design for the redirection page with the badger maps logo and “See ya later!” message.


One of the first mockups of a sample static redirection page. It was simple and fulfilled its purpose but did little else. (Large preview)

I started out with your run-of-the-mill static redirection page. They were simple and definitely fulfilled their purpose, but we weren’t quite happy with them.

The challenge was to create something simple and interesting that informed the user they were leaving our website in just a few seconds it was visible. The design would need to introduce itself, explain why it was there, and leave before anyone got tired of looking at it. It was essentially an exercise in speed dating. With that in mind, I decided to try animations — specifically that of a cheeky little badger, inspired by the existing logo.


Image showing 7 iterations of the badger design and how it changed.


The evolution of “baby badger”. (Large preview)

Using the badger logo as a starting reference point, I created different badger characters in Adobe Illustrator. The original logo felt a little too severe for a loading animation, so I opted for something a little cuter. I kept the red chest and facial features from the original logo for consistency and worked away at creating a body and head around these elements. The head and stripes took a while to massage into shapes that I was happy with. The body took the form a little easier, but it took a little longer to find the right proportion between the size of the head and the body. Once I nailed that down, I was ready to move onto animating.


Stop animation frames animating the baby badger.


My attempt at stop animation. (Large preview)

My first instinct was to try a stop-motion animation. I figured it was going to be great — a lá Wallace and Gromit. But after the first attempt and then the second, and all the ensuing ones, it became clear that watching that show as a child had not fully equipped me with the skills required to do a stop-motion animation.

I just wasn’t able to achieve the smoothness I wanted, and there were small inconsistencies that felt too jarring for a very short loading animation. Animation typically runs at 23 frames per second, and my badger animation only had about 15 frames per second. I considered adding more frames, but upon suggestion from my mentor, decided to try character animation instead.

This was the first time I had animated anything that was more than 5 moving parts and there was definitely a learning curve to understanding how to animate a two-dimensional character in a visually satisfying way. I needed to animate the individual elements to move by themselves independent of the whole in order to make the motion believable. As I worked on the animation, the layers I imported became increasingly granular. The head went from being one layer to five as I learned the behavior of the program and how to make the badger move.

I anchored each limb of the body and set each body part as a child to the parent layer of the body. I set the anchor points accordingly at the top of the thighs and shoulders to make sure they moved appropriately and then, using rotations and easing, simulated the movement of the body parts. The head was a tad bit tricky and required some vertical movement independent of the body. To make the jump seem more realistic, I wanted the head to hang in space a little before being pushed up by the rest of the body, and to come down just slightly after the rest of him. I also adjusted the angle I tried to make him seems as if he were leading with his nose, pointing up during the jump, and straightforward while he ran.

The overly anthropomorphic feet were abandoned from the original designs. They were one of the last changes made to baby badger. I hadn’t considered how odd human toes looked like on a badger.

The animation featured on the page redirecting the user back to badger displayed the baby badger running back to badger with a knapsack full of information from the CRM.

Animation of baby badger running back to the badger application.

And finally: the confused badger. This was done for the last page I needed to create: an error page notifying the user of unexpected complications in the integration process. And what better way to do that then a sympathetic, confused badger?


Image showing four iterations of the baby badger face.


Design exploration of the baby badger face. (Large preview)

The tricky part here was combining the side profile of the existing cartoon badger and the logo to create a front-facing head shape. Before beginning this project, I had never once seen a real live badger. Needless to say, Badger has found its way into my google image searches this month. I was surprised to see how flat the head of a badger actually is. In my first few designs, I tried to mimic this but wasn’t satisfied with the result. I worked with the shape some more, adjusting the placement of the nose, the stripes, and the ears to achieve the final result:

Swirly eyes inspired by the possum from the movie Fantastic Mister Fox.

This animation process has forced me to take my preexisting knowledge to a higher level. I needed to push myself beyond what I knew rather than limiting myself with what I thought I could do. I originally started with the stop-motion animation because I didn’t trust myself to do character animation. By giving myself the chance to try something new and different, I was able to achieve something that exceeded my own expectations.


Four cartoon-style designs based off the baby badger animation.


Designs expanded from the original baby badger to be printed and used around the office and on marketing material. (Large preview)

Conclusion

The three months I spent at my internship were incredibly gratifying. Every single day was about learning and trying something new. There were challenges to everything I did — even with tasks I was more familiar with such as design. Every time I created something, I was very insecure and apprehensive about how it would be received. There was a lot of self-doubt and lots of discarded ideas.

For that reason, it was incredible to be part of a team and to have a mentor to lead me in the right direction. Being told to try something else was often the only encouragement I needed to try something else and achieve something bigger and better. I like to picture myself as a rodent in a whack-a-mole game, being hit on the head over and over but always popping up again and again. Now the struggles and challenges have come to an end, I only want to do it all over again.

I appreciate what I’ve learned and how I was pushed to go beyond what I thought I could do. It’s crazy to see how far I’ve come in a few months. My understanding of being a UX designer has grown immensely, from figuring out the features, to hammering out the design, and then writing front-end code to implement it. This internship has taught me how much more I have to learn and has motivated me to keep working. I’ve come to understand that what I can do should never be limited by what I know how to do.


badger mascot

Smashing Editorial
(mb, ra, yk, il)


From:

A Guide To Embracing Challenges And Excelling At Your UX Design Internship

Thumbnail

Building A PWA Using Angular 6




Building A PWA Using Angular 6

Ahmed Bouchefra



In this tutorial, we’ll be using the latest Angular 6 to build a PWA by implementing the core tenets that make a PWA. We’ll start by creating a front-end web application that consumes a JSON API. For this matter, we’ll be using the Angular HttpClient module to send HTTP requests to a statically JSON API generated from the Simplified JavaScript Jargon GitHub repository. We’ll also use Material Design for building the UI via the Angular Material package.

Next, we’ll use the “Audits” panel (Lighthouse) from Chrome DevTools to analyze our web application against the core tenets of PWAs. Finally, we’ll explain and add the PWA features to our web application according to the “Progressive Web App” section in the Lighthouse report.

Before we start implementing our PWA, let’s first introduce PWAs and Lighthouse.

Recommended reading: Native And PWA: Choices, Not Challengers!

What’s A PWA?

A Progressive Web App or PWA is a web application that has a set of capabilities (similar to native apps) which provide an app-like experience to users. PWAs need to meet a set of essential requirements that we’ll see next. PWAs are similar to native apps but are deployed and accessible from web servers via URLs, so we don’t need to go through app stores.

A PWA needs to be:

  • Progressive
    Work for every user, regardless of browser choice, because they are built with progressive enhancement as a core tenet.
  • Responsive
    Fit any form factor, desktop, mobile, tablet, or whatever is next.
  • Connectivity independent
    Enhanced with service workers to work offline or on low-quality networks.
  • App-like
    Use the app-shell model to provide app-style navigation and interactions.
  • Fresh
    Always up-to-date thanks to the service worker update process.
  • Safe
    Served via HTTPS to prevent snooping and ensure content has not been tampered with.
  • Discoverable
    Are identifiable as “applications” thanks to W3C manifests and service worker registration scope allowing search engines to find them.
  • Re-engageable
    Make re-engagement easy through features like push notifications.
  • Installable
    Allow users to “keep” apps they find most useful on their home screen without the hassle of an app store.
  • Linkable
    Easily share via URL and not require complex installation.

Introducing Lighthouse

Lighthouse is an open-source auditing tool created by Google which can be used to audit websites and applications for accessibility performance, SEO, best practices and PWA features.

You can access Lighthouse from the Audit tab in Chrome DevTools as a module in Node.js or as a CLI tool. You can use Lighthouse by providing an URL and then running the audits which will provide you with a report containing the auditing results which are basically suggestions on how you can improve your web application.

Installing Angular CLI v6 And Generating A Project

In this section, we’ll install the latest version of Angular CLI then we’ll use it to create a new Angular 6 project.

Angular CLI requires Node.js >= 8.9+ so first make sure you have the required version installed by running the following command:

$ node -v

Node.js version


Checking Node version. (Large preview)

In case you don’t have Node.js installed, you can simply head on to the official Node download page and grab the Node binaries for your system.

Now, you can go ahead and install the latest version of Angular CLI by running:

$ npm install -g @angular/cli 

Note: Depending on your npm configuration, you may need to add _sudo_ to install packages globally.

You can generate your Angular 6 project by running the following command in your terminal:

$ ng new pwademo

This will create a project with a structure that looks like:


Angular project structure


Angular project structure. (Large preview)

Most work that’s done will be inside the src/ folder that contains the source code of the application.

Creating The Angular Application

After generating a project, we’ll build a web application that consumes a JSON API and displays the items on the home page. We’ll use the HttpClient service for sending HTTP requests and Angular Material for building the UI.

Adding Angular Material

Thanks to Angular CLI v6 and the new ng add command, adding Angular Material to your project is only one command away. You just need to run the following command from your terminal:

$ cd pwademo
$ ng add @angular/material

Adding Angular Material


Adding Angular Material. (Large preview)

You can see from the screenshot that the command installs the required package from npm and update a bunch of files for setting up Angular Material in your project which previously needed manual updates.

Setting Up HttpClient And Consuming The JSON API

Now, let’s setup the Angular project to use HttpClient for sending HTTP requests. First, you need to import the HttpClientModule module in the main application module in the src/app/app.module.ts file:

/*...*/
import  HttpClientModule  from  '@angular/common/http';
@NgModule(
declarations: [
AppComponent
],
imports: [
/*...*/
HttpClientModule
],
providers: [],
bootstrap: [AppComponent]
)
export  class  AppModule  

That’s it. We can now inject and use HttpClient in any component or service that belongs to the main module.

For demo purposes, we’ll consume a statically generated JSON API from the Simplified JavaScript Jargon GitHub repository. If you are consuming any other resource, make sure you have CORS enabled so the browser doesn’t disallow reading the remote resource due to the Same Origin Policy.

Let’s create a service that interfaces with the API. Inside your project folder, run:

$ ng g service api

This will create a service called ApiService in the src/app/api.service.ts file.

Now open the src/app/api.service.ts file and update it to reflect the following changes:

import  Injectable  from  '@angular/core';
import  HttpClient  from  '@angular/common/http';
import  Observable  from  'rxjs';

export  interface  Item
name:  string;
description:  string;
url:  string;
html:  string;
markdown:  string;


@Injectable(
providedIn:  'root'
)

export  class  ApiService 
private  dataURL:  string  =  "https://www.techiediaries.com/api/data.json";
constructor(private  httpClient:  HttpClient) 
fetch():  Observable<Item[]>
return <Observable<Item[]>this.httpClient.get(this.dataURL);

}

We first imported the HttpClient and Observable classes then injected the HttpClient in the constructor as httpClient and added a fetch() method which calls the get() method of HttpClient (for sending an HTTP GET request to our JSON endpoint) and returns an Observable that we can subscribe to later.

We also declared an Item interface which represents a single item of the returned JSON data.

Next import this service from the application component. Open the src/app/app.component.ts file and add:

import  Component, OnInit  from  '@angular/core';
import  ApiService  from  './api.service';
import  Item  from  './api.service';

@Component(
selector:  'app-root',
templateUrl:  './app.component.html',
styleUrls: ['./app.component.css']
)
export  class  AppComponent  implements  OnInit
title  =  'pwademo';
items:  Array<Item>;
constructor(private  apiService:  ApiService)

ngOnInit()
this.fetchData();

fetchData()
this.apiService.fetch().subscribe((data:  Array<Item>)=>
console.log(data);
this.items  =  data;
, (err)=>
console.log(err);
);
}
}

We import the ApiService that we created before and we inject it as apiService, we also import the Item class which represents a single item of our JSON data and we declare the items variable of type Array<Item> which will hold the fetched items.

Next, we add a fetchData() method which calls our fetch() method that we defined in the ApiService which returns an Observable. We simply subscribe to this observable in order to send a GET request to our JSON endpoint and get the response data that we finally assign to the items array.

We call the fetchData() method in the ngOnInit() life-cycle event so it will be called once the AppComponent component is initialized.

Adding The Application UI

Our application UI will consist of a navigation bar and the skeleton of the page which will be created with Angular Material.

Before using an Angular Material component, you’ll need to import its module. Each Material component belongs to its own module.

Open the src/app/app.module.ts file and add the following imports:

/*...*/
import  MatToolbarModule  from  '@angular/material/toolbar';
import  MatCardModule  from  '@angular/material/card';
import  MatButtonModule  from  '@angular/material/button';

@NgModule(
declarations: [
AppComponent
],
imports: [
/*...*/
MatToolbarModule,
MatCardModule,
MatButtonModule
],
providers: [],
bootstrap: [AppComponent]
)
export  class  AppModule  

We import modules for toolbar, card and button components and we add them to the imports array of the AppModule.

Next, open the src/app/app.component.html file, delete what’s in there and add:

<mat-toolbar  color="primary">
<mat-toolbar-row>
<span>JS-jargon</span>
</mat-toolbar-row>
</mat-toolbar>
<main>
<mat-card *ngFor="let item of items">
<mat-card-header>
<mat-card-title>item.name}</mat-card-title>
</mat-card-header>
<mat-card-content>
item.description}
</mat-card-content>
<mat-card-actions>
<a  mat-raised-button  href="item.url}"  color="primary">More</a>
</mat-card-actions>
</mat-card>
</main>

We use Material components to create the UI. The <mat-toolbar> component is used to create a Material toolbar and the <mat-card> component is used to create a Material card etc.

We iterate over the items array which gets populated by the fetchData() method when the component is initialized, and display items as Material cards. Each card contains the name, description and a link for more information (The link is styled as a Material button using the mat-raised-button directive).

This is a screenshot of the application:


Demo Application


Demo Application. (Large preview)

Building The Application For Production

Typically, when checking your application for PWA features you should first build it for production because most PWA features are not added in development. For example, you don’t want to have service workers and caching enabled in development since you will periodically need to update the files.

Let’s build the application for production using the following command:

$ ng build --prod

The production build will be available from the dist/pwademo folder. We can use a tool like http-server to serve it.

First, install http-server using the following command:

$ npm i -g http-server

You can then run it using the following command:

$ cd dist/pwademo
$ http-server -o

The -o option will automatically open the default browser in your system and navigate to the http://127.0.0.1:8080/ address where our web application is available.

Analyzing The Application Using Lighthouse

Let’s now analyze our application using Lighthouse. First, launch Chrome and visit our application address http://127.0.0.1:8080/.

Next, open Developer Tools or press Ctrl + Shift + I and click on the Audit panel.


Perform an audit


Perform an audit. (Large preview)

You preferably need to set the Emulation to Mobile instead of Desktop to emulate a mobile environment. Next, click on Perform an audit… blue button. You’ll have a dialog opened in which you need to choose the types of the audits you want to perform against your web application. Un-check all types but Progressive Web App and click the Run audit button.


Progressive Web App Audits


Progressive Web App Audits. (Large preview)

Wait for the Lighthouse to generate the report. This is a screenshot of the result at this stage:


Initial PWA Report


Initial Report. (Large preview)

Lighthouse performs a series of checks which validate the aspects of a Progressive Web App specified by the PWA Checklist.
We get an initial score of 36100 that’s because we have some audits passed.

Our application has 7 failed audits mainly related to Service Workers, Progressive Enhancement, HTTPS and Web App Manifest which are the core aspects of a PWA.

Registering A Service Worker

The first two failed audits (“Does not register a service worker” and “Does not respond with a 200 when offline”) are related to Service Workers and caching. So what’s a service worker?

A service worker is a feature that’s available on modern browsers which can be used as a network proxy that lets your application intercept network requests to cache assets and data. This could be used for implementing PWA features such as offline support and Push notifications etc.

To pass these audits we simply need to register a service worker and use it to cache files locally. When offline, the SW should return the locally cached version of the file. We’ll see a bit later how to add that with one CLI command.

Recommended reading: Making A Service Worker: A Case Study

Progressive Enhancement

The third failed audit (“Does not provide fallback content when JavaScript is not available”) is related to Progressive Enhancement which is an essential aspect of a PWA and It simply refers to the capability of PWAs to run on different browsers but provide advanced features if they’re available. One simple example of PE is the use of the <noscript> HTML tag that informs users of the need to enable JavaScript to run the application in case It’s not enabled:

<noscript>
Please enable JavaScript to run this application.
</noscript>

HTTPS

The fourth failed audit (“Does not redirect HTTP traffic to HTTPS”) is related to HTTPS which is also a core aspect of PWAs (service workers can be only served from secure origins, except for localhost). The “Uses HTTPS” audit itself is considered as passed by Lighthouse since we’re auditing localhost but once you use an actual host you need a SSL certificate. You can get a free SSL certificate from different services such as Let’s Encrypt, Cloudflare, Firebase or Netlify etc.

The Web App Manifest

The three failed audits (“User will not be prompted to Install the Web App”, “Is not configured for a custom Splash Screen” and “Address bar does not match brand colors”) are related to a missing Web App Manifest which is a file in JSON format that provides the name, description, icons and other information required by a PWA. It lets users install the web app on the home screen just like native apps without going through an app store.

You need to provide a web app manifest and reference it from the index.html file using a <link> tag with rel property set to manifest. We’ll see next how we can do that automatically with one CLI command.

Implementing PWA Features

Angular CLI v6 allows you to quickly add PWA features to an existing Angular application. You can turn your application into a PWA by simply running the following command in your terminal from the root of the project:

$ ng add @angular/pwa

The command automatically adds PWA features to our Angular application, such as:

  • A manifest.json file,
  • Different sizes of icons in the src/assets/icons folder,
  • The ngsw-worker.js service worker.

Open the dist/ folder which contains the production build. You’ll find various files but let’s concentrate on the files related to PWA features that we mentioned above:

A manifest.json file was added with the following content:


    "name": "pwademo",
    "short_name": "pwademo",
    "theme_color": "#1976d2",
    "background_color": "#fafafa",
    "display": "standalone",
    "scope": "/",
    "start_url": "/",
    "icons": [
        
        "src": "assets/icons/icon-72x72.png",
        "sizes": "72x72",
        "type": "image/png"
    ,
    
        "src": "assets/icons/icon-96x96.png",
        "sizes": "96x96",
        "type": "image/png"
    ,
    
        "src": "assets/icons/icon-128x128.png",
        "sizes": "128x128",
        "type": "image/png"
    ,
    
        "src": "assets/icons/icon-144x144.png",
        "sizes": "144x144",
        "type": "image/png"
    ,
    
        "src": "assets/icons/icon-152x152.png",
        "sizes": "152x152",
        "type": "image/png"
    ,
    
        "src": "assets/icons/icon-192x192.png",
        "sizes": "192x192",
        "type": "image/png"
    ,
    
        "src": "assets/icons/icon-384x384.png",
        "sizes": "384x384",
        "type": "image/png"
    ,
    
        "src": "assets/icons/icon-512x512.png",
        "sizes": "512x512",
        "type": "image/png"
    
    ]
}

As you can see, the added manifest.json file has all the information required by a PWA such as the name, description and start_url etc.


Angular project structure


Angular project structure. (Large preview)

The manifest.json file, links to icons with different sizes, that were also added automatically in the assets/icons folder. You will, of course, need to change those icons with your own once you are ready to build the final version of your PWA.


Angular project structure


Angular project structure. (Large preview)

In the index.html file, the manifest.json file is referenced using:

<link  rel="manifest"  href="manifest.json">

The ngsw-worker.js file, was also automatically added, which contains the service worker. The code to install this service worker is automatically inserted in the src/app/app.module.ts file:

...
import  ServiceWorkerModule  from  '@angular/service-worker';

@NgModule(
declarations: [
AppComponent
],

imports: [
...
ServiceWorkerModule.register('/ngsw-worker.js',  enabled:  environment.production )
],

The @angular/service-worker is installed by the ng add command and added as a dependency to pwademo/package.json:

"dependencies": 
...
"@angular/service-worker": "^6.1.0"

The service worker build support is also enabled in the CLI. In the angular.json file a "serviceWorker": true configuration option is added.

In the index.html file a meta tag for theme-color with a value of #1976d2 is added (It also corresponds to the theme_color value in the manifest.json file):

<meta  name="theme-color"  content="#1976d2">

The theme color tells the browser what color to tint UI elements such as the address bar.

Adding the theme color to both the index.html and manifest.json files fixes the Address Bar Matches Brand Colors audit.

The Service Worker Configuration File

Another file src/ngsw-config.json is added to the project but It’s not a required file for PWAs. It’s a configuration file which allows you to specify which files and data URLs the Angular service worker should cache and how it should update the cached files and data. You can find all details about this file from the official docs.

Note: As of this writing, with the latest 6.1.3 previous ng add @angular/pwa command will fail with this error: Path “/ngsw-config.json” already exists so for now the solution is to downgrade @angular/cli and @angular/pwa to version 6.0.8.

Simply run the following commands in your project:

$ npm i @angular/cli@6.0.8
$ ng i @angular/pwa@6.0.8
$ ng add @angular/pwa

Now let’s re-run the audits against our local PWA hosted locally. This is the new PWA score:


Initial PWA Report


PWA Report. (Large preview)

The Angular CLI doesn’t automatically add the JavaScript fallback code we mentioned in the Progressive Enhancement section so open the src/index.html file and add it:

<noscript>
Please enable JavaScript to run this application.
</noscript>

Next, rebuild your application and re-run the audits. This is the result now:


Initial PWA Report


PWA Report. (Large preview)

We have only one failed audit which is related to HTTPS redirect. We need to host the application and configure HTTP to HTTPS redirect.

Let’s now run the audits against a hosted and secured version of our PWA.


PWA Final Report


PWA Final Report. (Large preview)

We get a score of 100100 which means we’ve successfully implemented all core tenets of PWAs.

You can get the final code of this demo PWA from this GitHub repository.

Conclusion

In this tutorial, we’ve built a simple Angular application and have turned it into a PWA using Angular CLI. We used Google’s Lighthouse to audit our application for PWA features and explained various core tenets of PWAs such as Service Workers for adding offline support and push notifications. The Web Manifest file for enabling add-to-home-screen and splash screen features, Progressive Enhancement as well as HTTPS .

You may also need to manually check for other items highlighted (under the “Additional items to manually check” section) but not automatically checked by Lighthouse. These checks are required by the baseline PWA Checklist by Google. They do not affect the PWA score but it’s important that you verify them manually. For example, you need to make sure your site works cross-browser and that each page has a URL which is important for the purpose of shareability on social media.

Since PWAs are also about other aspects such as better perceived performance and accessibility, you can also use Lighthouse for auditing your PWA (or any general website) for these aspects and improve it as needed.

Smashing Editorial
(rb, ra, yk, il)


View this article:  

Building A PWA Using Angular 6