Tag Archives: action

How To Make A WordPress Plugin Extensible

Have you ever used a plugin and wished it did something a bit differently? Perhaps you needed something unique that was beyond the scope of the settings page of the plugin.

I have personally encountered this, and I’m betting you have, too. If you’re a WordPress plugin developer, most likely some of your users have also encountered this while using your plugin.

Here’s a typical scenario: You’ve finally found that plugin that does everything you need — except for one tiny important thing. There is no setting or option to enable that tiny thing, so you browse the documentation and find that you can’t do anything about it. You request the feature in the WordPress plugin’s support forum — but no dice. In the end, you uninstall it and continue your search.

Imagine if you were the developer of this plugin. What would you do if a user asked for some particular functionality?

The ideal thing would be to implement it. But if the feature was for a very special use case, then adding it would be impractical. It wouldn’t be good to have a plugin setting that only 0.1% of your users would have a use for.

You’d only want to implement features that affect the majority of your users. In reality, 80% of users use 20% of the features (the 80/20 rule). So, make sure that any new feature is highly requested, and that 80% of your users would benefit from it, before implementing it. If you created a setting for every feature that is requested, then your plugin would become complicated and bloated — and nobody wants that.

Your best bet is to make the plugin extensible, code-wise, so that other people can enhance or modify it for their own needs.

In this article, you’ll learn about why making your plugin extensible is a good idea. I’ll also share a few tips of how I’ve learned to do this.

What Makes A Plugin Extensible?

In a nutshell, an extensible plugin means that it adheres to the “O” part of the SOLID principles of object-oriented programming — namely, the open/closed principle.

If you’re unfamiliar with the open/closed principle, it basically means that other people shouldn’t have to edit your code in order to modify something.

Applying this principle to a WordPress plugin, it would mean that a plugin is extensible if it has provisions in it that enable other people to modify its behavior. It’s just like how WordPress allows people to “hook” into different areas of WordPress, but at the level of the plugin.

A Typical Example Of A Plugin

Let’s see how we can create an extensible plugin, starting with a sample plugin that isn’t.

Suppose we have a plugin that generates a sidebar widget that displays the titles of the three latest posts. At the heart of the plugin is a function that simply wraps the titles of those three posts in list tags:

function get_some_post_titles() 
  $args = array(
      'posts_per_page' => 3,

  $posts = get_posts( $args );

  $output = '
    '; foreach ( $posts as $post ) $output .= '
  • ' . $post->post_title . '
  • '; $output .= '
'; return $output; }

While this code works and gets the job done, it isn’t quite extensible.

Why? Because the function is set in its own ways, there’s no way to change its behavior without modifying the code directly.

What if a user wanted to display more than three posts, or perhaps include links with the posts’ titles? There’s no way to do that with the code above. The user is stuck with how the plugin works and can nothing to change it.

Including A Hundred Settings Isn’t The Answer

There are a number of ways to enhance the plugin above to allow users to customize it.

One such way would be to add a lot of options in the settings, but even that might not satisfy all of the possibilities users would want from the plugin.

What if the user wanted to do any of the following (scenarios we’ll revisit later):

  • display WooCommerce products or posts from a particular category;
  • display the items in a carousel provided by another plugin, instead of as a simple list;
  • perform a custom database query, and then use those query’s posts in the list.

If we added a hundred settings to our widget, then we would be able to cover the use cases above. But what if one of these scenarios changes, and now the user wants to display only WooCommerce products that are currently in stock? The widget would need even more settings to accommodate this. Pretty soon, we’d have a gazillion settings.

Also, a plugin with a huge list of settings isn’t exactly user-friendly. Steer away from this route if possible.

So, how would we go about solving this problem? We’d make the plugin extensible.

Adding Our Own Hooks To Make It Extensible

By studying the plugin’s code above, we see a few operations that the main function performs:

  • It gets posts using get_posts.
  • It generates a list of post titles.
  • It returns the generated list.

If other people were to modify this plugin’s behavior, their work would mostly likely involve these three operations. To make our plugin extensible, we would have to add hooks around these to open them up for other developers.

In general, these are good areas to add hooks to a plugin:

  • around and within the major processes,
  • when building output HTML,
  • for altering post or database queries,
  • before returning values from a function.

A Typical Example Of An Extensible Plugin

Taking these rules of thumb, we can add the following filters to make our plugin extensible:

  • add myplugin_get_posts_args for modifying the arguments of get_posts,
  • add myplugin_get_posts for overriding the results of get_posts,
  • add myplugin_list_item for customizing the generation of a list entry,
  • add myplugin_get_some_post_titles for overriding the returned generated list.

Here’s the code again with all of the hooks added in:

function get_some_post_titles() 
  $args = array(
      'posts_per_page' => 3,

  // Let other people modify the arguments.
  $posts = get_posts( apply_filters( 'myplugin_get_posts_args', $args ) );

  // Let other people modify the post array, which will be used for display.
  $posts = apply_filters( 'myplugin_get_posts', $posts, $args );

  $output = '
    '; foreach ( $posts as $post ) // Let other people modify the list entry. $output .= '
  • ' . apply_filters( 'myplugin_list_item', $post->post_title, $post ) . '
  • '; $output .= '
'; // Let other people modify our output list. return apply_filters( 'myplugin_get_some_post_titles', $output, $args ); }

You can also get the code above in the GitHub archive.

I’m adding a lot of hooks here, which might seem impractical because the sample code is quite simple and small, but it illustrates my point: By adding just four hooks, other developers can now customize the plugin’s behavior in all sorts of ways.

Namespacing And Context For Hooks

Before proceeding, note two important things about the hooks we’ve implemented:

  • We’re namespacing the hooks with myplugin_.
    This ensures that the hook’s name doesn’t conflict with some other plugin’s hook. This is just good practice, because if another hook with the same name is called, it could lead to unwanted effects.
  • We’re also passing a reference to $args in all of the hooks for context.
    I do this so that if others use this filter to change something in the flow of the code, they can use that $args parameter as a reference to get an idea of why the hook was called, so that they can perform their adjustments accordingly.

The Effects Of Our Hooks

Remember the unique scenarios I talked about earlier? Let’s revisit those and see how our hooks have made them possible:

  • If the user wants to display WooCommerce products or posts from a particular category, then either they can use the filter myplugin_get_posts_args to add their own arguments for when the plugin queries posts, or they can use myplugin_get_posts to completely override the posts with their own list.
  • If the user wants to display the items in a carousel provided by another plugin, instead of as a simple list, then they can override the entire output of the function with myplugin_get_some_post_titles, and instead output a carousel from there.
  • If the user wants to perform a custom database query and then use that query’s posts in the list, then, similar to the first scenario, they can use myplugin_get_posts to use their own database query and change the post array.

Much better!

A Quick Example Of How To Use Our Filters

Developers can use add_filter to hook into our filters above (or use add_action for actions).

Taking our first scenario above, a developer can just do the following to display WooCommerce products using the myplugin_get_posts_args filter that we created:

add_filter( 'myplugin_get_posts_args', 'show_only_woocommerce_products' );
function show_only_woocommerce_products( $args ) 
   $args['post_type'] = 'product';
   return $args;

We Can Also Use Action Hooks

Aside from using apply_filters, we can also use do_action to make our code extensible. The difference between the two is that the first allows others to change a variable, while the latter allows others to execute additional functionality in various parts of our code.

When using actions, we’re essentially exposing the plugin’s flow to other developers and letting them perform other things in tandem.

It might not be useful in our example (because we are only displaying a shortcode), but it would be helpful in others. For example, given an extensible backup plugin, we could create a plugin that also uploads the backup file to a third-party service such as Dropbox.

“Great! But Why Should I Care About Making My Plugin Extensible?”

Well, if you’re still not sold on the idea, here are a few thoughts on why allowing other people to modify your plugin’s behavior is a good idea.

It Opens Up the Plugin to More Customization Possibilities

Everyone has different needs. And there’s a big chance your plugin won’t satisfy all of them, nor can you anticipate them. Opening up your plugin to allow for modifications to key areas of your plugin’s behavior can do wonders.

It Allows People to Introduce Modifications Without Touching the Plugin’s Code

Other developers won’t be forced to change your plugin’s files directly. This is a huge benefit because directly modifying a plugin’s file is generally bad practice. If the plugin gets updated, then all of your modifications will be wiped.

If we add our own hooks for other people to use, then the plugin’s modifications can be put in an external location — say, in another plugin. Done this way, the original plugin won’t be touched at all, and it can be freely updated without breaking anything, and all of the modifications in the other plugin would remain intact.


Extensible plugins are really awesome and give us room for a lot of customization possibilities. If you make your plugin extensible, your users and other developers will love you for it.

Take a look at plugins such as WooCommerce, Easy Digital Downloads and ACF. These plugins are extensible, and you can easily tell because numerous other plugins in WordPress’ plugins directory add functionality to them. They also provide a wide array of action and filter hooks that modify various aspects of the plugins. The rules of thumb I’ve enumerated above have come up in my study of them.

Here are a few takeaways to make your plugin extensible:

  • Follow the open/closed principle. Other people shouldn’t have to edit your code in order to modify something.
  • To make your plugin extensible, add hooks in these places:
    • around and within major processes,
    • when building the output HTML,
    • for altering post or database queries,
    • before returning values from a function.
  • Namespace your hooks’ names with the name of your plugin to prevent naming conflicts.
  • Try passing other variables that are related to the hook, so that other people get some context of what’s happening in the hook.
  • Don’t forget to document your plugin’s hooks, so that other people can learn of them.

Further Reading

Here are some resources if you want to learn more about extending plugins:

Smashing Editorial
(mc, ra, al, yk, il)

Original post:  

How To Make A WordPress Plugin Extensible

“Maybe Later” – A New Interaction Model for Ecommerce Entrance Popups

I’d guess that over half of the e-commerce stores I visit use entrance popups to advertise their current deal. Most often it’s a discount.

What is an Entrance Popup and What’s Wrong With Them?

They are as they sound. A popup that appears as soon as you arrive on the site. They’re definitely the most interruptive of all popups because you’ve not even had a chance to look around.

I get why they are used though because they work really well at one thing – letting you know that an offer exists, and what it is. And given high levels of competition for online dollars, it makes sense why they would be so prolific.

The intrusion isn’t the only point of frustration. There’s also the scenario where you arrive on a site, see an offer appear, you find it interesting and potentially very valuable (who doesn’t want 50% off?), but you want to do some actual looking around – the shopping part – before thinking about the offer. And when you’re forced to close the popup in order to continue, it’s frustrating because you want the offer! You just don’t want it right now.

So, given the fact that they are so common, and they’re not going anywhere anytime soon, and they create these points of frustration, I’ve been working on developing a few alternative ways to solve the same problem.

The one I want to share with you today is called “Maybe Later”.

“Maybe Later” is a Solution to Increase Engagement and Reduce Frustration

As you saw in the header image, instead of the now classic YES/NO popup – the one that gets abused by shady marketers (Technology isn’t the Problem, We Are.) – “Maybe Later” includes a third option called, you guessed it!

The middle option gives some control back to the shopper.

It’s more than just a third button, here’s how it works (I’ll refer to the sketch opposite):

  1. The popup appears when you enter the site. You can choose “No” to get rid of it, “Yes” to take advantage of it, or “Maybe Later” to register your interest but get it out of your way.
  2. When you click “Maybe Later” a cookie is set to log your interest.
  3. Now while you are browsing the rest of the site, a Sticky Bar – targeted at the cookie that was set – appears at the bottom (or top) of the page, with a more subtle reminder of the offer, so that you know it there and ready if you decide to take advantage of it.
  4. If you decide against the offer, you can click “No thanks” on the Sticky Bar, the cookie is deleted, and the offer is hidden for good.

The core purpose of this idea is to put the control back with the shopper while creating an effective method for the retailer to engage with you, with your permission.

Follow our Product Awareness Month journey >> click here to launch a popup with a subscribe form (it uses our on-click trigger feature).

Visual Hierarchy on Popup Buttons

When you have more than a single button, it’s important to establish visual design cues to indicate how the hierarchical dominance plays out. For you as a marketer, the most important of the three buttons is YES, MAYBE LATER is second, and NO is the least.

You can create a better user experience for your visitors by using the correct visual hierarchy and affordance when it comes to button design. In the image below, there is a progression of visual dominance from left to right (which is the correct direction – in Western society). Left is considered a backward step (in online interaction design terms), and right is a progression to the goal.

From left to right we see:

  • The NO button: is designed as a ghost button which has the least affordance and weight of the three.
  • The MAYBE LATER button: gains some solidity by increasing the opacity
  • The YES button: has a fully opaque design represented by the primary call to action colour of the theme.

You can achieve a similar level of dominance by making the secondary action a link instead of a button, which is a great visual hierarchy design technique. What I don’t like is when people do this, but they make the “No thanks” link really tiny. If you’re going to provide an option, do it with a little dignity and make it easy to see and click.

See the “Maybe Later” Popup-to-Sticky-Bar Model in Action

Alrighty, demo time! I have a few instructions for you to follow to see it in action. I didn’t load the popup on this page as it’s supposed to be an entrance popup and I needed to set the scene first. But I’ll use some trickery to make it happen for you.

Follow these instructions and you’ll see “Maybe Later” in action:

Please note: this is desktop only. Reason being is that Google dislikes entrance popups on mobile. Sticky Bars are the Google-friendly way to present promos on mobile, so they work, but the combo isn’t appropriate.

  1. Visit this page (opens in new window).
  2. Click the “Maybe Later” button and the popup will close.
  3. Refresh that page and you’ll see a Sticky Bar with the same offer appear at the bottom.
  4. Come back to this page.
  5. Refresh this page and you’ll see the Sticky Bar here too.
  6. Click “No thanks” to get rid of it when you’ve had enough :D

Here’s the entrance Popup you will see:

Maybe Later - A New  interaction model for ecommerce entrance popups

And the Sticky Bar you will see following that:

How to Use “Maybe Later” on Your Website

If you’d like to give it a try, follow the instructions below in your Unbounce account. (You should sign up for Unbounce if you haven’t already: you get Landing Pages, Popups, and Sticky Bars all in the same builder).

You can also see what Popups and Sticky Bars look like on your website by entering your URL on our new Live Preview Tool.

“Maybe Later” Setup Instructions

Caveat: This is not an official Unbounce feature, and as such is not technically supported. But it is damn cool. And if enough people scream really hard, maybe I’ll be able to persuade the product team to add it to the list. And please talk to a developer before trying this in a production environment.

Step 1: Create a Popup in Unbounce

Step 2: Add “Maybe Later” Script to the Popup

In the “Javascripts” window located in the bottom-left.

Add the following script “Before the body end tag”, replacing “lp-pom-button-50” with the id of your “Maybe Later” button, and unbounce.com with your own domain.

document.getElementById("lp-pom-button-50").onclick = function() 
parent.postMessage(JSON.stringify('later'), 'https://unbounce.com');

Step 3: Set URL Targeting on Popup

Set up the URL targeting for where you want the popup to appear. I chose the post you’re reading right now (with a ?demo extension so it would only fire when I sent you to that URL).

Step 4: Set Cookie Targeting on Popup

Set up the cookie targeting to “Not show” when the “Maybe Later” cookie is present. The cookie is set when the button is clicked. (You’ll see how in step 9).

Step 5: Create a Sticky Bar in Unbounce

Step 6: Add “Maybe Later” Script to the Sticky Bar

Add the following script “Before the body end tag”, replacing “lp-pom-button-45” with the id of your “No Thanks” button, and unbounce.com with your own domain.

document.getElementById("lp-pom-button-45").onclick = function() 
parent.postMessage(JSON.stringify('laterForget'), 'https://unbounce.com');

Step 7: Set URL Targeting on Sticky Bar

Set up the URL targeting for where you want the Sticky Bar to appear. This might be every page on your e-commerce site, or in my case just this post and another for testing.

Step 8: Set Cookie Targeting on Sticky Bar

Set the Trigger to “Arrival”, Frequency to “Every Visit”, and Cookie Targeting to show when the cookie we’re using is set. (You’ll see how it’s set in the next step).

Step 9: Add “Maybe Later” Code to Your Website

This is some code that allows the Popup and Sticky Bar to “talk” to its host page and set/delete the cookie.

// On receiving message from the popup set a cookie
window.onload = function() 
function receiveMessage(e) 
var eventData = JSON.parse(e.data);
// Check for the later message
if (eventData === 'later') 
document.cookie = "mlshowSticky=true; expires=Thu, 11 May 2019 12:00:00 UTC; path=/";

if (eventData === 'laterForget') 
document.cookie = "mlshowSticky=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

// Listen for the message from the host page
window.addEventListener('message', receiveMessage);

Step 10: Enjoy Being Awesome

That’s all, folks!

What Do You Think?

I’d love to know what you think about this idea in the comments, so please jump in with your thoughts and ideas.

Later (maybe),

p.s. Don’t forget to see what Popups and Sticky Bars look like on your website with the new Live Preview Tool

View original: 

“Maybe Later” – A New Interaction Model for Ecommerce Entrance Popups

The Rise Of The State Machines

It’s 2018 already, and countless front-end developers are still leading a battle against complexity and immobility. Month after month, they’ve searched for the holy grail: a bug-free application architecture that will help them deliver quickly and with high quality. I am one of those developers, and I’ve found something interesting that might help.
We have taken a good step forward with tools such as React and Redux. However, they’re not enough on their own in large-scale applications.

View the original here – 

The Rise Of The State Machines

How to Improve Your PPC Reporting (And Your Landing Page Strategy, Too)

Once upon a time, “Pay-Per-Click (PPC)” referred to a digital marketing practice where companies were charged each time somebody clicked on their search engine ads.

But with the rise of social, display and programmatic platforms, PPC marketing has expanded to involve more than search engines alone. These days, PPC specialists run paid campaigns across a variety of channels, and while the territory has changed, the reporting tactics haven’t.

Why your PPC reports aren’t awesome

You’re not alone if you find that the following things are holding you back from the advanced PPC reporting of your dreams.

1. The same words are used for different things

Most PPC specialists still end up pulling the same reports about the same quantitative metrics from Google Analytics. The problem is that different platforms (Facebook Audience Insights, Google AdWords Dimensions tab, Google Analytics, Bing Reporting) speak different languages.

Each platform’s PPC attribution models are different, their user data tracking is different, even some of their definitions are different.

Just look at how we measure “clicks.” On Adwords or Bing, a “click” means someone clicked from an ad through to your website. Meanwhile on Facebook, a “click” could mean clicking from an ad through to your Facebook page, your website, or just reacting to the ad itself.

Cbc GIFs - Find & Share on GIPHY

With different platforms and tools telling you different things, it’s pretty easy to make inaccurate conclusions about your PPC performance.

2. Your reports rely purely on baseline metrics

Tactics and terminology aside, these quantitative metrics don’t paint the full qualitative picture. Seeing that your click-through rates have increased doesn’t necessarily explain why.

If you saw that the cost of bread went down one day, you wouldn’t blindly assume that production of wheat got cheaper overnight. You would look into the expiry date, the shelf date and examine the product to try to understand the story behind the numbers.

So what do your metrics actually mean, and how can they help you drive more qualified traffic to your site? We’re here to help you generate insights from your PPC reports and show you how PPC performance can impact your landing page strategy.

How to Build PPC Reports that Actually Are Awesome

You want your PPC reports to provide takeaways that you can use to optimize your campaigns. There are a few measures you can take, together or on their own, to better understand your campaign performance.

Determine a baseline and track conversions by channel

Surprise, surprise! A conversion is one more metric that differs by channel. This is partly because each platform has a different attribution model, and partly because users have different intentions and behaviours per platform.

For example, cost-per-clicks (CPCs) tend to be cheaper on Bing because there is less competition and a higher conversion rate due to an older demographic:

bing keywords example

On the other hand, it’s easier to max out impression share and budget on Bing because there is less overall search volume compared to Google:

Google keyword example

Similarly, a user landing on your website through a non-branded keyword is less likely to convert than someone clicking through a branded keyword. It can be even harder to identify intent through social platforms, as users scrolling through feeds may come across your ad and engage out of interest but not be ready to convert.

Establishing platform-specific KPIs is an essential step to ensure you know what success looks like on every channel.

Qualify your visitors and monitor by segment

Given that each individual user’s intention varies by platform, it’s important to target your ads where they will be best received.

Instead of assuming every interaction is equal, use your platform insights to identify key audience groups and segment for target personas.

Monitor how your paid traffic fluctuates overall and by target audiences:

  • How do your audiences convert differently across various platforms?
  • How do you measure success differently between your branded and non-branded search campaigns?
  • How are you targeting different user segments through social campaigns?

A great way to identify whether you’re attracting relevant traffic is by keeping a close eye on your Search Query Report in AdWords and Bing. This report allows you to see exactly what people typed into the search engine when your ad appeared, so that you can adjust your keywords accordingly.

Track absolutely everything

Are you noticing an abnormal bounce rate or reduced number of sessions week over week through a specific source or medium? Setting up event tracking through Google Tag Manager can help you better understand on-site behavior and create custom metrics.

Your primary conversion may be an e-commerce purchase, but that doesn’t mean newsletter sign ups aren’t valuable. Tracking micro-conversions can give you a clearer idea of how people are engaging with your site and where there might be gaps in information.

At our Call to Action conference, Dana DiTomaso advocated for Google Data Studio as a great way to combine all your data into custom reports and dashboards.

If you’re doing cross-channel online advertising (which you no doubt are), it’s important to be able to see all your metrics visualized in one place. It makes it easier to draw analyses and gather insights to then share with colleagues or clients.

PPC Reporting + Landing Pages = Even More Awesome

Of course, it’s not enough to just put your conversions and KPIs into a beautiful report — it’s what you do with your PPC insights that matters.

Let’s say you spent years learning how to make smart investments. You met with stockbrokers, studied the market and opened a brokerage account. Would you expect money to just start rolling in? Of course not — because you actually have to invest to see results.

Similarly, in order to make the most of your PPC insights, you have to act on them.

Begin by applying insights from your PPC metrics into your landing pages. You want to customize your landing pages to meet the needs of your key audiences so you can give users exactly what they’re looking for.

To this end, Dynamic Text Replacement (DTR) can be used to sync up search queries to the landing page.

In this example of a landing page for a music school, the instrument type is swapped out depending on which ad is clicked.

Say a website sells furniture. If one user searches for “modern leather sofas” and another for “comfortable leather couches,” the ad copy for each result should reflect the search language.

The ads could then take users to the same landing page, but DTR would generate different titles or subheading text accordingly to match these original search terms. Everything else on the page may be the same, but both users would feel like they found exactly what they were looking for. This keeps landing pages hyper-relevant (and high-converting), and saves hours of redundant work.

Want to preview how you can use DTR to ensure relevance from ad to landing page? Try it out.

Google cares about the relevance of landing pages to ads, and has recently introduced more in-depth Quality Score metrics within the AdWords interface.

This makes it easier to see exactly what is affecting your Quality Score and which area you should improve on, whether it be ad relevance, landing page experience or expected CTR.

By syncing up your ads and landing pages, you can provide a frictionless experience to users and increase conversions.

Strong landing pages can also improve PPC performance as they increase Quality Score and landing page relevance, which lowers your CPC and increases ad ranking. This way, the users receive information that is highly relevant to what they are searching for.

Now to put a now on it

When all is said and done, landing pages should be A/B tested so you know which on-page factors lead to higher conversion rates. That way, your next PPC campaign can be informed by your landing page results, and your future landing pages can be informed by your PPC campaign performance. If that’s not a beautiful full circle, then we don’t know what is.


How to Improve Your PPC Reporting (And Your Landing Page Strategy, Too)

If You’re Not Using a Facebook Messenger Sequence, You’re Throwing Away Leads. This is How to Get Started.

Do you ever think about how much money you might be wasting on Facebook? I’ve done it. And I’ve hated myself for it. It happens. You pour time and money into an ad campaign only for it to fall flat on its face. Often, that’s not your fault – it can be difficult to stand out on a site that has billions of users. At the same time, Facebook is an undeniable marketing juggernaut. Its reach is unlike any other site, and it’d be silly not to use it. So there’s an important question: How do you leverage the platform…

The post If You’re Not Using a Facebook Messenger Sequence, You’re Throwing Away Leads. This is How to Get Started. appeared first on The Daily Egg.


If You’re Not Using a Facebook Messenger Sequence, You’re Throwing Away Leads. This is How to Get Started.

‘Get past personas’, and other takeaways from CTA Conf 17

Reading Time: 7 minutes

This week, I spent two jam-packed days at Unbounce’s fourth-ever Call To Action Conference. The one-track event featured some of today’s most influential digital marketing speakers like Mitch Joel, Kindra Hall, and Rand Fishkin.

WiderFunnel team at CTA Conf 17
The WiderFunnel team and I having a ball at the CTA Conf afterparty.

Session topics ranged from integrity in marketing, to performance marketing success, to the marriage of SEO and conversion optimization. But most shared a common theme: Don’t forget about the real person behind that click.

Knowledge bombs were dropped, important conversations were had, and actionable insights were shared. So, in today’s post, I’m going to share some of my most important takeaways from CTA Conf.

If you attended the conference, please share your favorite takeaways in the comments below!

1. Don’t be trendy, be data-driven

Featured Speaker: Oli Gardner

Unbounce Co-Founder, Oli Gardner, kicked things off on the first day.

Fun fact: Due to technical difficulties, Oli ended up acting out his entire opening video sequence (and most of the subsequent videos in his presentation). He handled the hiccup like a pro, of course, and launched into a great session on data-driven design.

One of the strongest points that Oli made was that digital marketing trends self-perpetuate, regardless of whether or not they are helpful to a user.

I know we, as data-driven marketers, ‘know’ this fact. We complain about ‘best practices’, and buzzwords, and yet we still get totally caught up in trends.

Remember when explainer videos became the end-all, be-all for homepages?

WiderFunnel CTA Conf Recap Oli Gardner
Oli pointing out the flaws in an old Unbounce explainer video at CTA Conf.

What happened? Hundreds of blog posts were written about explainer videos, and hundreds of explainer videos were produced to talk about how great explainer videos are. And then, every homepage on the internet featured an explainer video.

But…were all of those explainer videos really what customers needed? In some cases, but certainly not in all.

Instead, Oli spoke about the need to “mend trends”, and make design decisions based on data, rather than the most popular trend at the time.

We hold the same view at WiderFunnel. You can A/B test explainer video after explainer video. But to create truly impactful experiences, you have to go back to the research phase.

Use the data you have to drill into what you think are you most important business problems. And test hypotheses that attempt to solve for those problems.

2. Choose people, not personas

I’m not a big fan of personas. I’ve never kicked it with a persona.

– Wil Reynolds

But, without personas, how do I write the right copy for my customers at the right time?!

Don’t panic.

Focus on motivation instead

Featured Speaker: Joel Klettke

Conversion copywriter extraordinaire, Joel Klettke, spoke about how to read your customer’s mind. He emphasized the need to get past user personas and keywords, and focus on customer motivation instead.

Joel Klettke at CTA Conf
Joel Klettke on stage at CTA Conf.

We get stuck behind our screens, and start writing about ‘synergies’ and features that our customers really don’t care about.

– Joel Klettke

He outlined a framework for getting your customers to tell you about their pain points, anxieties, desired outcomes, and priorities, in their own words:

  1. Ask
  2. Record
  3. Analyze
  4. Feed
  5. Measure

Note: I didn’t dig too deeply into the framework, here. But Joel put together a resource for CTA Conf attendees, and graciously gave me the green light to share it. Check it out here!

Jobs To Be Done vs. Personas

Featured Speaker: Claire Suellentrop

On Day 2, Claire Suellentrop built on this idea of the dated persona.

She explained that marketers collect many data points about our prospects, like…

  • Gender, age, location
  • Title, company, industry
  • Married, no kids, one puppy

…but asked whether or not all of that data actually helps us determine why a real human being just bought a new backpack from Everlane.

As an alternative, she suggested the Jobs To Be Done framework. JTBD refers to your customer’s struggle to make progress on something. When your customer overcomes that struggle, the job is done, and they have made progress.

The framework looks a little something like this:

“When ____________ (event that triggers the struggle), help me ______ (struggle / job) so I can __________ (better life / done).”

To identify your customers’ struggle, Claire suggests actually asking your customers. She outlined several sample questions:

  • “Take me back to life before [product]. What was it like?”
  • “What happened that compelled you to start looking for something different?”
  • “What happened when you tried [product] that made you confident it was right for you?”
  • “What can you do now that you couldn’t do before?”

3. Tell the story, don’t just allude to it

Featured Speaker: Kindra Hall

One of my favorite speakers on Day 1 of CTA Conf was Kindra Hall. (Not surprising, as she is the storytelling expert).

Kindra dug into strategic storytelling in marketing. According to her, you should use a story every time you need to communicate value in your marketing.

Kindra Hall at CTA Conf
Kindra Hall sets out to define storytelling in marketing.

Storytelling is powerful because real life humans are attracted to great stories. (And marketers talk to people after all).

Stories, according to Kindra, stick with us and make us do stuff because storytelling is a co-creative process.

“As I am telling you my story, you are creating your own in your mind. I am giving you my words, but you are meeting me half way, and we are creating a shared memory,” Kindra explained.

The most powerful moment in her talk came when she challenged the audience with the biggest storytelling mistake:

Too often, we allude to the story, but don’t actually tell it.

– Kindra Hall

She showed two example videos to illustrate her point. In the first, a company founder almost told her compelling story about losing both of her parents, but glossed over the details. The result was a pretty video, with pretty music that almost created feeling.

In the second video, the founder told her full story, explaining how losing her parents shaped her company and product. The difference in emotional impact was kind of incredible.

And making your customers feel is a huge part of making your customers act. Because we — consumers, people, humans — don’t buy products or services…we buy feelings.

4. Pay attention to people signals

For goodness’ sake, solve the searcher’s problem

Featured Speaker: Wil Reynolds

Founder of Seer Interactive, Wil Reynolds, danced his way onto the stage, and delivered a really strong talk on SEO, conversion optimization, and the importance of people signals.

Wil Reynolds at CTA Conf
Wil remembers when he f*ed up, and forgot about the HUMAN element.

He didn’t mince words, explaining that marketers too often put conversions before customers. We ask “how do I get?” when we should be asking, “how do I help my customer get what they need?”

When you do an amazing job on search, you get to help people who are lost solve their problems.

– Wil Reynolds

Wil painted a picture of how we, as marketers, are letting our own wants override solving our customers’ problems. In the world of search, Wil pointed out that Google rewards pages that solve the searchers’ query. So solve the searchers’ query!

Much like we allude to stories, but often don’t tell them, we talk about listening to our customers, but often don’t really listen.

Instead of showing them product comparisons when they search “best CRM platform”, we pay to show them a landing page that claims “My product is the best! Get in my funnel!”

This isn’t just an issue in search or performance. In conversion optimization, there is an emphasis on velocity over user research. There is pressure to test more, and test faster.

But, we must take the time to do the research. To get as close to our customers’ problem, and tailor our marketing experience to their needs.

Win at SEO and CRO with a long-term vision

Featured Speaker: Rand Fishkin

Building on Wil’s session on Day 1, SEO wizard, Rand Fishkin, gave the audience actionable tips around how to optimize for searcher intent.

Rand pointed to conversion optimization.

At its core, conversion optimization is about getting into your customers’ minds, and testing changes to get closer to the best possible customer experience. To give your customer what they need, you must soothe their pain points, and provide a solution.

You can apply this same concept to SEO: If you 1) gain a deep understanding of what searchers are seeking, and 2) determine why some searchers come away unsatisfied, you can optimize for searcher task accomplishment.

Rand Fishkin at CTA Conf
Rand demonstrates how establishing trust leads to ROI.

Unfortunately, Rand pointed out, there is still a conflict between SEO and CRO, because conversion rate and searcher satisfaction are sometimes in direct opposition.

For example, let’s say you want to get more blog subscriptions, so you add a pop-up to your blog post. This may lead to a higher conversion rate on the page, but lower searcher satisfaction. Some readers might bounce, which may lead to lower organic traffic.

But, Rand ended on a high note:

You can win with long-term thinking. By always asking, ‘are we building a brand that’s helping people succeed?’

– Rand Fishkin

5. Don’t fear disruption. Own it.

Featured Speaker: Mitch Joel

One of the final speakers on Day 1 was marketing thought-leader, Mitch Joel, who shook things up a bit. Mitch spoke about what it means to be disruptive (and how to not fear disruption).

Mitch Joel at CTA Conf
“For a seed to achieve its greatest expression, it must come completely undone.”

When I ask C-Suite marketers to define disruption, the definition is never consistent. In fact, I often don’t get a definition of disruption, I get a definition of destruction.

– Mitch Joel

He asked, if disruption is the big bad wolf, who are the heroes in this marketing story?

Well, like the three little pigs, Mitch discussed three ways to be disruptive rather than be disrupted:

  1. Transformation: Business transformation is not your products or services, etc. It’s inside out. And it starts with technology. You need to be using the same tech, same form of communication that your customers are using.
  2. Innovative marketing: Innovation is not re-allocation of resources. It isn’t investing more in Google Adwords versus another channel. Real innovation is about making and creating new products and experiences that we can use to market with.
  3. Micro-transactions: Marketers and businesses get caught up in the macro transaction, in the purchase. But we live in a world of micro-transactions. This is the customer journey, and it is extremely important to understand.

Mitch Joel emphasized the fact that if you can apply these ‘three little pigs’ to your business model, you will be in a great place, though he recognized that it’s not always easy.

But nothing great is ever easy.

6. Be bold enough to be wrong

Featured Speaker: Michael Aagaard

Senior Conversion Optimizer at Unbounce, Michael Aagaard, closed out the two-day conference. His message was a simple but powerful warning against the trap of confirmation bias.

We, as humans, are not interested in information, but confirmation.

– Michael Aagaard

Confirmation bias refers to our tendency to search for and recall information in ways that confirm our existing beliefs, hypotheses, and expectations. And it is a threat to data-driven marketing.

Michael Aagaard at CTA Conf
Michael takes us back to ye olde London to make a point about the enduring power of confirmation bias.

When you A/B test, you are searching for objectivity. You are trying to figure out which variation your users prefer, outside of your own opinions and beliefs about what works best.

But it’s rarely that simple, even if you are a pro.

Michael showed us a landing page that he analyzed for a client, featuring a stock photo hero image. He said he had railed against the photo, and shown the client examples of the hundreds of other stock photos featuring the same model.

But, when he tested the landing page, he found that the original version, featuring the ‘terrible’ stock photo, was the clear winner.

“Maybe,” he said, “users don’t spend hours scouring the internet for stock photo sinners like I do.”

He urged the audience to be bold enough to be wrong, to challenge our hypotheses, and get out of the marketing bubble when we are trying to solve problems.

If we don’t get out of the marketing bubble, we end up making assumptions, and designing experiences for ourselves.

– Michael Aagaard

Go hang out with your customer success teams and sales teams; get outsider input on your ‘great’ ideas. Go find your own natural skeptic, and challenge your hypotheses.

Were you at CTA Conf 17? What were your most important takeaways? Who were your favorite speakers, and why? Let us know in the comments!

The post ‘Get past personas’, and other takeaways from CTA Conf 17 appeared first on WiderFunnel Conversion Optimization.

More – 

‘Get past personas’, and other takeaways from CTA Conf 17

6 Reasons Your Mobile Ranking on Google Sucks

drinking straws

2017 will forever be known as the year Google adopted a mobile-first strategy. Some people will think of that way, at least. Probably not too many, actually, but that doesn’t lessen the significance of the shift. Your mobile web strategy is now, simply, your web strategy. Why is this so important? By late 2016, more than half of all Google searches were conducted from mobile devices, and over 77% of web searches are through Google. So when the company announced this year it would prioritize mobile sites over desktop to determine relevance and ranking, it was kind of a big…

The post 6 Reasons Your Mobile Ranking on Google Sucks appeared first on The Daily Egg.

See original: 

6 Reasons Your Mobile Ranking on Google Sucks

We Want to Put You on a Plane to Call to Action Conference [CONTEST]

Image via Shutterstock.

If you’re an active social networker, you already know that travel photos and social media go together like… aerial shots of brunch and social media.

So when we decided to throw a social media contest together for our upcoming Call to Action Conference, it seemed only fitting to make it travel themed. Not just because we like taking 10-second mental vacations by staring at pretty pictures of pretty places. But because Unbounce has done a little travelling itself.

After expanding to the German, Brazilian and Spanish markets over the past year, we opened an official Berlin office in January. Four walls, front door, ever-flowing kaffee and all. We’re thrilled that this year’s conference is the first we’ll host as a truly international company — and we want to celebrate by putting you on a plane with a free ticket to Call to Action Conference 2017.

The details

What we want to know is:

What’s your favourite place in the world?

Tweet and/or Instagram a photo of wherever that may be (be it from your iPhoto gallery or Google Images, we can’t tell and we don’t care) with the caption:

“Fly me to #CTAConf @unbounce and make me love Vancouver as much as I love [insert location]”!

The winner will be announced at noon PST on Friday, June 3rd and receive a $1,000 flight voucher as well as a free ticket to Call to Action Conference, worth $999.

Click below for more contest details if you want them. And if you’re thinking, “What is CTAConf and why do I want a ticket to it?” then see what all the hoopla’s about.

Originally posted here – 

We Want to Put You on a Plane to Call to Action Conference [CONTEST]

How To Build Your Own Action For Google Home Using API.AI

For the holidays, the owner of (and my boss at) thirteen23 gave each employee a Google Home device. If you don’t already know, Google Home is a voice-activated speaker powered by Google Assistant and is a competing product to Amazon’s line of Alexa products. I already have the Amazon Echo, and as Director of Technology at thirteen23, I love tinkering with software for new products. For the Amazon Echo, you can create what are called “skills”, which allow you to build custom interactions when speaking to the device.

Link – 

How To Build Your Own Action For Google Home Using API.AI

"There Aren’t Enough Qualified Women Speakers" and Other Garbage Excuses for Why Your Marketing Event Isn’t Gender Diverse

Blog images by Alejandra Porta.

I’ve attended enough tech and marketing events to make a few generalizations:

  1. Women are hugely underrepresented; whether it’s a panel or a conference speaker lineup, chances are it’s overrun with white men.
  2. Sexism is prevalent, and it spans from subtle (think underrepresentation, pinkwashed girls’ lounges) to overt (think harassment, non-consensual advances).

There are exceptions (there always are), but this is the general rule, and it’s a huge stain on the industry you and I are both a part of.

Now I want to make it clear, I’m not here to chastise anyone. As a used-to-be conference organizer, I’m guilty of it too.

When I ran Unbounce’s first-ever Call to Action Conference (CTAConf) four years ago, I invited four women to speak, two of which spoke on a panel. The other seven were — you guessed it — white males.

My reason was an all-too familiar one: “There aren’t enough qualified female speakers.”

This is garbage. It’s unacceptable. And it’s not a reason at all — it’s an excuse. What it really came down to was, I wasn’t trying hard enough.

I wasn’t asking my network for recommendations. I wasn’t doing enough research. I wasn’t making the extra effort required to widen the pool of speakers. I wasn’t committed to gender diversity.

Fast forward to today and my perspective has completely changed. Not only because it’s important to me on a personal level, but also because it makes business sense.

See, when you pull from the same pool of speakers as other folks in your industry, everything starts to look like white bread — bland and borderline junkfood. Your conference looks like that other conference that happened a few months ago. And the content? Yep, it’s the same, too.

When you use the same speakers, your lineup looks like white bread—bland and borderline junkfood.
Click To Tweet

By digging a little deeper and expanding your search a little wider, you can discover fresh up-and-coming talent with new perspectives, new things to teach. And you show female attendees that their voice and their professional development matter.

And did I mention you sell tickets and attract more female attendees?

Moz, which hosts its own conference (MozCon), reported that as the percent of female speakers increased so did the percent of female attendees. What else can I say but duh?

I see a lot of progress being made around improving gender diversity in marketing and tech. People are asking questions, they’re holding companies accountable, they’re having those tough conversations, which is a great start.

But what are people actually doing about it?

This post will dig into specific steps you can take to improve gender diversity at your next event. They’re the result of an honest-to-goodness desire to do the right thing and our own cringe-worthy fumbles (more on that later).

It’s my hope that these tips and tactics will help to alleviate any hesitation you or your organization might have about taking the leap.

Commit to gender parity

At Unbounce, we’ve been having conversations around gender diversity for months, so when Unbounce CEO Rick Perrault challenged us to commit to gender parity at CTAConf 2017, the response was a resounding YES, YES, YES.

Making progress one Slack convo at a time.

It’s as simple as this. And yet it’s a bit more nuanced as well.

The truth is, achieving gender parity did take a bit more time and a bit more effort. But the result is a more dynamic lineup of speakers and an opportunity to tap into an audience that otherwise might’ve passed on your event.

Forget ROI — talk about RO why not?!

Commit to gender parity at your #marketing event—the result is a more dynamic lineup of speakers.
Click To Tweet

So how did we do it? How did we stack our lineup with talented male and female speakers? (And more importantly, how can you?)

  1. Leverage your social network and ask for recommendations via Facebook, LinkedIn and Twitter (like Unbounce Co-Founder Oli Gardner did for the Unbounce Road Trip in 2015).
  1. Pull from existing comprehensive lists such as this list of 1,000+ tech speakers who aren’t men and this one featuring 100 influential women marketers.
  2. Trade past speaker lists and ratings with your network of event organizers. I sent personal emails to every event organizer I knew asking them for their past speaker lineups and ratings, and in exchange I shared our list and ratings. This tactic is one is my faves, and it’s how we scored a ton of speaker leads for CTAConf.
  3. Email past presenters and speakers and ask them for recommendations. It’s how we found Claire Suellentrop, who’s speaking about creating high-converting campaigns using Jobs To Be Done at this year’s conference.

Sponsor the women at your own company

I honestly believe that everyone has something to teach. EVERYONE. Regardless of gender, regardless of age, regardless of job title, everyone is an expert in something.

It’s this belief that gave me the courage to raise my own hand and ask to speak at last year’s CTAConf.

But I wasn’t a quote unquote speaker. I guess you could have called me a speaker in residence. I spoke at a few small-time events here and there, but I am not famous like Seth Godin. I don’t travel the world speaking at industry events or conferences.

I was caught in a classic Catch-22: I couldn’t become a speaker without experience, but I couldn’t get experience because I wasn’t a speaker.

But rather than focusing on what I didn’t have, our speaker selection committee focused on what I did have: enthusiasm and a whole lotta event marketing experience to boot.

Once the committee deliberated, I spent two hours whiteboarding my talk with Oli. He and Unbounce Senior Conversion Optimizer Michael Aagaard also reviewed my slide deck multiple times, providing constructive feedback.

Their expertise helped fill the gaps in my resume, so that when I stood up on that stage I felt prepared and supported.

And guess what? It went really well.

So this year we reserved one CTAConf speaker slot for employees, and we sent a callout asking for applicants. The response blew my mind: Four applicants, all women. And though the choice was a tough one, I’m pleased to say Alexa Hubley — Customer Communications Specialist and first-time conference speaker — will be on stage at CTAConf 2017 with her talk “Master Customer Marketing By Watching Romantic Comedies.”

So what can you do to improve gender diversity at your upcoming event? You can start in your very own backyard. Encourage high-performing women at your company to speak at events, and offer them mentorship and support to get them up on stage.

And if you’re a man who’s been asked to speak at an event, consider if there’s a woman you know who is equally qualified to speak on the subject. If there is, offer up your slot. In fact, Oli already did this, when he recommended me to speak at CIMC 2017.

For every man asked to speak at an event, there’s a qualified woman who hasn’t been. Find her.
Click To Tweet

Create a code of conduct

A clear code of conduct helps create a safe environment for your staff and your event attendees by setting expectations for what is and what is not acceptable behavior.

From a diversity perspective, a code of conduct is an especially helpful tool for making women feel at ease, because there are strict policies in place to deter discrimination and harassment.

Creating a code of conduct out of thin air might seem intimidating, so I suggest pulling inspiration from existing codes and adding your own personal flavor.

When we created our code of conduct, we looked to other companies we admired, specifically Moz and Atlassian.

Wistia has written an exceptional post about how and why they created their code of conduct for WistiaFest, including how they made it visible. Humble folks that they are, they highlighted where they could have improved (so you can learn from their mistakes!).

You’ll notice three core principles outlined in all these codes:

  1. Be nice/respectful/kind/inclusive
  2. Be professional
  3. Look out for others
Wistia’s “Golden Rules.” Image via Wistia.

Including these three core principles and your company’s core values is a great place to start.

And remember, there are no rules when it comes to creating a code of conduct, except one… you have to be prepared to enforce it.

Enforce your code of conduct

A code of conduct is like insurance; you hope you never have to use it, but in those unfortunate circumstances, you’ll be glad you have something to back you up.

At this year’s conference, we’re making our code of conduct front and center with printed posters hung around the venue.

You’ll also find the code on the CTAConf website as well as in our conference app. And we’ve made it simple to report a violation by including a direct phone number to our event marketing coordinator in our code of conduct.

While I can’t go into the specifics of every reported incident, I can tell you we’ve enforced our code multiple times, with attendees and speakers.

Yes, speakers.

Remember when I mentioned cringe-worthy fumbles? Well read on, readers.

See, live events are a tricky beast. You have this very passionate person up on stage who’s pumped up and maybe a little nervous. You have no idea what’s going to come out of their mouth. You hope it won’t be anything offensive, but you really have no idea.

You do, however, have control over their content, specifically their slide deck. This is something we learned the hard way:

Props to Annette for calling us out. It wasn’t our slide, but as event hosts, the content that gets projected for all our guests to see is our responsibility. Period.

So what did we start doing to make sure this never happened again? We leaned on our code of conduct:

  1. We send all our presenters the code of conduct beforehand via email
  2. We include the code of conduct in our Speaker Field Guide, which contains everything a speaker needs to know, such as contact information, travel and accommodation info and slide deck specs
  3. (This one’s a biggie.) We review and sign off on everyone’s slide decks, slide by slide, to ensure there’s no offensive or discriminating content
  4. We don’t invite back speakers who’ve broken our code of conduct

And next year, we’ll take a page out of Moz’s book by including our code of conduct right in our speaker and sponsor contract.

So does all of this “extra stuff” add to our workload? You bet it does. But it’s something we account for now. And the payoff is invaluable.

We’ve still got growing to do

You may have noticed this post is focused on how to create a gender diverse event and not a diverse event. The truth is, we know we can #dobetter at elevating folks who aren’t typically asked to speak at events — not just white women, but people of color, non-binary folks and members of the LGBTQ community.

We know we have more growing to do and we’re committed to it, just as we were committed to achieving gender parity at this year’s conference.

I think we’ve come a long way as a company, and I think I’ve come a long way as a champion for women. The excuse I gave as a conference host nearly four years ago — that there weren’t enough qualified women speakers — is no longer an excuse.

We’re welcoming 10 exceptional men and 10 extraordinary women to the CTAConf stage in June, and I couldn’t be more excited.

Hope to see you there :)

Taken from:

"There Aren’t Enough Qualified Women Speakers" and Other Garbage Excuses for Why Your Marketing Event Isn’t Gender Diverse