Webinar: Turn Your Website Visitors to Buying Customers Using Email

With the dawn of the new school year, it must be about time for the annual death toll of email marketing. Between social media and mobile marketing, some people will tell you that email no longer gets a look in. … Continue reading

With the dawn of the new school year, it must be about time for the annual death toll of email marketing. Between social media and mobile marketing, some people will tell you that email no longer gets a look in. The average inbox gets hundreds more emails every month than it did just a few years ago, making it more and more difficult to get heard over all that noise.

Rubbish!

Not only is the ROI on email marketing still excellent, for the savvy internet marketer, the increased noise actually makes it easier to rise to the surface with relevant, valuable content.

But have you thought about how you’re going to get that wonderful content of yours in front of your ideal customer’s eyes? With the increase in noise, it has become even more vital to carefully target your website visitors so that your opt-in offer is presented at just the right time. Regular Padiact users will know that when it comes to highly targeted offers, we love to help!

PadiAct & INinbox Webinar

padiact-ininbox-webinarAnd today it gets one step better… we’ve teamed up with email provider, INInbox.com, to bring you an exclusive webinar. We’ll share with you exactly how Padiact and INinbox can work together to supercharge your website traffic from ‘meh’ to ‘magic’.

If you’ve been wondering what it really takes to build a successful business with email marketing this is one webinar you won’t want to miss. We’ll also be digging into our best lessons from collecting over 5 million leads for our customers, as well as giving you specific steps you can take to achieve maximum success from the integration between Padiact and your email provider.

The date and time to add to your calendar is Tuesday September 9th at 11am EST.

There are limited spaces available for this webinar so click here to register instantly.

register-for-free

Using Offline and Online data to drive Google Analytics Remarketing

The Google Analytics platform has been changing from a web analytics tool to a user-centric digital measurement tool (we’ve been calling it Universal Analytics). This evolution includes a number of changes to the system and completely new features. But what can you do when you put all of these pieces together? I wanted to write […]

Using Offline and Online data to drive Google Analytics Remarketing is a post from: Analytics Talk by Justin Cutroni

The post Using Offline and Online data to drive Google Analytics Remarketing appeared first on Analytics Talk.

The Google Analytics platform has been changing from a web analytics tool to a user-centric digital measurement tool (we’ve been calling it Universal Analytics). This evolution includes a number of changes to the system and completely new features. But what can you do when you put all of these pieces together?

I wanted to write a quick post about how a business could use the entire platform to better market to users on the web based on non-website activities. We’ll explore how to use offline and online data to create remarketing lists in Google Analytics.

Before I start a hat-tip to my buddy Dan Stone – a product manager at Google Analytics who often talks about this type of usage.

Influencing Display Advertising using Email Behavior

Businesses interact with users via many different channels – search, display, social, email, etc. And they’re always looking to better understand how one channel impacts another channel. That’s why we have attribution modeling.

But sometime we want to take direct action, or even automated action, in a channel based on user behavior in a separate channel.

For example, I may want to change my search or display strategy for users on my email list. Perhaps I want them to see different display ads because I have a better relationship with them.

Here’s an example.

With Analytics we can collect data from email marketing tools, send it to Google Analytics and then use that information to change display campaigns.

We can send data from email marketing tools, to Google Analytics, then use the data to drive Remarketing.

We can send data from email marketing tools, to Google Analytics, then use the data to drive Remarketing.

The Implementation

With some of the new features in Google Analytics it is very possible to change a user’s display advertising experience based on behavior in other digital environments.

The first thing we need to do is bind the data in Google Analytics to the data in our own systems. This might be the data in a CRM or some other customer system. We’re going to use an old-school method that I describe in the post integrating Google Analytics with a CRM.

Here’s a summary…

When a user visits your site (or your app) Google Analytics sets a unique, anonymous identifier. This identifier is called the Client ID or cid for short.

What we need to do is extract the client ID value from the Google Analytics cookies and pass it to your CRM system. Once it’s in your systems you should be able to join your internal customer IDs with the GA ID. I should note – this is not some task you finish in an afternoon. You need some nerd help and it could take a while.

You can extract the GA identifier from the tracking cookie and send it to your own system.

You can extract the GA identifier from the tracking cookie and send it to your own system.

Make sure you check out these two posts for more information:
Integrating Google Analytics with a CRM
Understanding Cross Device Measurement and the User-ID

Now that we have the two data sets joined we can do something really cool – we can send user-specific data to Google Analytics from other systems. This means that when we send out an email, or some other user-specific actions happens in our system, we can send that behavioral data to Google Analytics. How?

To send data to GA from other systems we use the measurement protocol. This technology let’s us send data to Google Analytics from any system that can connect to the internet. It defines how to send data to GA. We’ll use the measurement protocol to send data about email activities.

When we send an email to a user we will also send a measurement protocol hit to Google Analytics.

When an email is sent from your system, you can send a hit to Google Analytics using the measurement protocol.

When an email is sent from your system, you can send a hit to Google Analytics using the measurement protocol.

Specifically, we’ll send an event piece of data. The event will indicate that an email was sent to this user and the type of email:

www.google-analytics.com/collect?v=1&tid=UA-XX-Y&cid [UniqueID]&t=event&ec=Email&ea=Send&el=BackToSchool2014

If we want to be really fancy then we can also send a second hit to Google Analytics when the user receives the email and another hit when the user opens the email. For example, if the user opens the email then we can trigger a pixel within the email that sends a hit to Google Analytics.

www.google-analytics.com/collect?v=1&tid=UA-XX-Y&cid=[UniqueID]&t=event&ec=Email&ea=Open&el=BackToSchool2014

I need to stress, you need to write a bunch of code that generates these hits. The implementation will really depend on your systems.

The data in the above hits indicates that this email was part of the BackToSchool2014 campaign (look for the event data ec for Event Category, el for Event Label, ea for Event Actions. If we looked in Google Analytics the data would look something like this:

Offline email actions can be captured with the measurement protocol as events.

Offline email actions can be captured with the measurement protocol as events.

All of these hits include a specific parameter named cid. This is the Client ID for the particular recipient of the email that I discussed earlier. When Google Analytics processes these hits they will be merged with the dame user data from the website – because they have the same cid value.

OK, now we have user data coming from two separate systems and Goole Analytics is merging it together.

Here’s where the fun comes in.

Because all of this data is in one place, we can segment users in Analytics based on behavior, then use that list of users for remarketing.

You can join the Google Analytics ID, called CID, with your own ID. But then you can collect off-site actions in GA and tie them to other GA data.

after all of our work, we’re using the GA data measuring sent emails to create a remarketing list.

For those that have not use Remarketing, this is one of my favorite features in Google Analytics. Remarketing let’s you segment user on your website then send that list of users to Google AdWords (or DoubleClick if you use Analytics Premium) for use as a remarketing list.

The remarketing segment would look like this:

Segmenting users that received and opened an email.

Segmenting users that received and opened an email.

This segment is all users that opened the back-to-school email. I could also add a condition that the user received the email, but that’s not really necessary.

Now we can use this list of users in AdWords. How? I may want to use the same creative for their ads. Or perhaps I offer them the same deal that was in the email.

This technique is not just for email – you can use the measurement protocol to send data from any system. That means behavioral information from other digital experiences can be used to drive remarketing lists.

Hopefully this example gives you some idea of how multiple Google Analytics features can be used together to drive real business results.

Using Offline and Online data to drive Google Analytics Remarketing is a post from: Analytics Talk by Justin Cutroni

The post Using Offline and Online data to drive Google Analytics Remarketing appeared first on Analytics Talk.

The Essential Guide To Error Tracking Using Google Analytics

Oft overlooked, error tracking is one of the most valuable ways to use Google Analytics. This essential guide covers how to use Google Analytics to track:

(click a link to jump ahead)

Using:

  • Google Tag Manager
  • Universal Analytics
  • Classic Google Analytics

404 Errors

Tracking 404s is great for:

  • Finding broken links (internal and external)
  • Proactively catching broken functionality
  • Tidying up older site architecture

Use Events to capture the previous page of the visit and the complete location of where the 404 occured. These are available at document.referrer and document.location.href, respectively. These two pieces of information can let you track down exactly where the offending link happens to be; capture these instead of relying on the ‘Page’ or ‘Full Referrer’ dimension in Google Analytics. Those values can easily be altered by filters, campaign parameters, or by other features built into Google Analytics.

FOR GOOGLE TAG MANAGER:

If you’re using Google Tag Manager, checking the title element for the default ‘404’ text is a sturdy test to fire a tracking event. Something like {{title}} equals '404 Page' or {{title}} contains '404 Page', as recommended by Samantha Barnes in her excellent guide to capturing 404 metrics with Google Tag Manager. You can also reference other tags that are on the page – be creative and find a standard value to watch for.

If that’s not possible, you’ll need to get your developers to populate the dataLayer with an event that you can watch for in Tag Manager, like:

var dataLayer = dataLayer||[];
dataLayer.push({'event':'404 Error'});

Then, you add a rule that watches for the 404 Error event, like so:

Then you create a Google Analytics Event tag and populate the Event Action and Event Label with the full URL of the page and the referrer.

As a best practice, I recommend that you try and decouple the mechanism that fires the event into Google Analytics from the actual event. Doing this means you can use a single ‘generic event’ tag to handle the processing of all of your events, and instead just push data into the dataLayer for the event tag to reference. For example:

In the above, each macro simply returns a corresponding dataLayer variable for an event value. It watches for ‘event’:’eventFired’ in the dataLayer. To generate a 404 event, all that needs to happen is the following be pushed into the dataLayer:

var referrer = document.referrer;
if (referrer === '') {
  referrer = 'No Referrer';
}
dataLayer.push({
  'event': 'eventFired',
  'eventCategory': '404 Error',
  'eventAction': document.location.href,
  'eventLabel': referrer,
  'eventValue': 0,
  'eventNonInteraction': true
});

This pattern makes adding future events a snap – all you have to do is push the ‘eventFired’ event into the dataLayer with the corresponding data; no need to create a whole new Google Analytics event tag.

If you’re not using Google Tag Manager, you’ll have to manually fire these events into Google Analytics. You can either include the following code as part of the 404 page template, or add it wrapped in a test into the header of each page on your site, e.g.:

if (document.title === 'Oops! You've found a 404 Page') {
  // Appropriate event tracking code from below goes here
}

FOR UNIVERSAL ANALYTICS:

var referrer = document.referrer;
if (referrer === '') {
  referrer = 'No Referrer';
}
ga('send', 'event', '404 Error', document.location.href, referrer, 0, {'nonInteraction': true});

FOR CLASSIC GOOGLE ANALYTICS:

var referrer = document.referrer;
if (referrer === '') {
  referrer = 'No Referrer';
}
_gaq.push(['_trackEvent','404 Pages', document.location.href, referrer, 0, true]);

JavaScript Errors

JavaScript errors are errors that the browser throws while executing the code that you’ve delivered to it. There are many common causes for JavaScript errors – browser compatibility, coding mistakes, and namespace collisions, to name a few. Tracking JavaScript errors can help you ensure a consistent user experience across browsers, catch bugs that were missed during development, and gauge the impact an error is truly having on users so that a fix can be appropriately prioritized.

FOR GOOGLE TAG MANAGER:

It’s your lucky day. Google Tag Manager offers a JavaScript Error Listener right out of the box. Just select ‘JavaScript Error Listener’ from the ‘Event Listeners’; I recommend you add this to every page.

Then, you’ll need to add another tag that listens for ‘gtm.pageError’ and uses the associated values to populate an Event for Analytics. I recommend reusing the pattern above for events, like this:

dataLayer.push({
  'event':'eventFired',
  'eventCategory': 'JS Errors',
  'eventAction': {{gtm.errorMessage}},
  'eventLabel': URL: {{href}} | File: {{gtm.errorUrl}} | Line: {{gtm.errorLineNumber}},
  'eventValue': 0,
  'eventNonInteraction': true
});

Otherwise, you’ll have to create another tag specifically for turning errors into events, like this:

I make the Event Action the gtm.errorMessage value and the Event Label URL: {{href}} | File: {{gtm.errorUrl}} | Line: {{gtm.errorLineNumber}}. This makes an for an easy-to-read format that can be drilled into for deeper context.

FOR UNIVERSAL ANALYTICS & CLASSIC ANALYTICS:

To track errors in the browser, you’ll need to bind an event listener to the window.onerror event that will generate a hit to send to Google Analytics. Doing this in a 100% backwards-compatible, error-free way can be super tricky, but here’s a copy-and-paste-friendly snippet you could utilize that should work with most browsers and Google Analytics configurations. Feel free to copy and modify to your tastes:

if (typeof window.onerror === 'object' && window.onerror === null) {  // Checks if this seat is taken/exists
  window.onerror = function(message, file, lineNumber) {
    if (typeof ga === 'object') {  // Detects Universal Analytics
      ga('send','event','JS Error', message, 'URL: ' + document.location.href + '| File: ' + file + '| Line: ' + lineNumber, 0, {'nonInteraction': true});
    } else if (typeof _gaq === 'object') {  // Detects Classic Analytics
      _gaq.push(['_trackEvent','JS Error', message, 'URL: ' + document.location.href + '| File: ' + file + '| Line: ' + lineNumber, 0, true]);
    }
  }
}

Server-side Errors

Sending application error data into Google Analytics directly from your server let’s you connect backend performance with front-end behavior. It can also contextualize seemingly unconnected issues across your site.

FOR GOOGLE TAG MANAGER:

Although technically not server-side, you could expose some error information into the dataLayer and then pass it into Google Analytics. On your server, this might look something like:

var dataLayer = dataLayer||[];
<?php
foreach ( $err in $errors ) { ?>
  dataLayer.push({
    'event': 'eventFired',
    'eventCategory': 'Server Error',
    'eventAction': '<?php echo $err->errno . $err->errstr ?>',
    'eventLabel': 'URL: ' + {{href}} + '| File: <?php echo $err->errfile ?> | Line: <?php echo $err->errline ?>';
  });
<?php } ?>

And on the client, you’d see:

<script>
  var dataLayer = dataLayer||[];
  dataLayer.push({
    'event': 'eventFired',
    'eventCategory': 'Server Error',
    'eventAction': 'Fatal error: Undefined class constant "MYSQL_ATTR_USE_BUFFERED_QUERY"'
    'eventLabel': 'URL: http://example.com/test/ | File: /local/www/example.com/includes/database/mysql/database.inc | Line: 43',
    'eventValue': 0,
    'eventNonInteraction': true
  });
</script>

Sidenote:

You’ll notice me using the syntax var dataLayer = dataLayer||[]; and then using dataLayer.push({}) in order to populate the dataLayer in my code; I recommend this as best practice to avoid accidentally overwriting needed information in the dataLayer. Basically, this is read by the browser as ‘The dataLayer is equal to itself, or it’s an empty array’. If the dataLayer doesn’t exists, the next section of the ‘OR’ (||) statement is evaluated, namely ‘dataLayer is an empty array’. In this way, if it exists, it will preserve itself, and if it doesn’t, it will create a new array named dataLayer for us to use.

Not instantiating dataLayer in this way can lead to problems if your code gets messy. For example, if you’re loading the dataLayer at the top of the page, then server errors inside the <content> of the page, this could happen:

<!-- Other HTML -->
<script>
  var dataLayer = [{'PageType':'Local'}, {'timestamp': 2849200492}];
  console.log(dataLayer); // Logs '[ { "PageType": "Local" }, {'timestamp': 2849200492} ]'
</script>
<!-- Other HTML -->
<script>
  var dataLayer = [{'event': 'Server Error'}];
  console.log(dataLayer); // Logs '[ { "event": "Server Error" } ]'
</script>

Should you need to reference either the PageType or timestamp values later, they would return undefined. Using dataLayer = dataLayer||[]; and then dataLayer.push() instead of just instantiating the dataLayer prevents this from happening.

FOR UNIVERSAL ANALYTICS:

The Universal Analytics Measurement Protocol provides a relatively painless way to send hits to Google Analytics directly from your server. All it takes is a POST request, which can be pretty simple to put together. Here’s a quick and dirty example using NodeJS:

var http = require('http');

function fireMeasurementProtocolEvent(category, action, label, value, nonInteraction, cid) {

  var ni = !nonInteraction ? '1' : '0';

  var eventData = "?v=1&tid=UA-XXXXXXX-XX&t=event&cid=" + cid + "&ec=" + category + "&ea=" + action + "&el=" + label + "&ev=" + value + "&ni=" + ni;

  var payload = {

    'hostname': 'www.google-analytics.com',
    'path': '/collect' + eventData,
    'method': 'POST'

  };

  var req = http.request(payload);
  req.end();

};

FOR CLASSIC GOOGLE ANALYTICS:

The truly intrepid can manufacturer fake __utm.gif requests – all you need to do is generate a GET request to http://www.google-analytics.com/__utm.gif with the correct parameters appended to the request. Here’s a great reference from Google on how to do just that.

Modal & Dialog Errors

Finally, a great ‘error’ type that I like to catch is any kind of modal or error dialog presented to a user. Even mundane error messages can reveal more sinister patterns lurking underneath. Tracking and analyzing common site messages is essential for good site hygiene.

FOR GOOGLE TAG MANAGER:

Either create an event tag and a macro to grab the text of the modal, or using the generic tracking event outlined above:

var modal = document.getElementById('modal-message');
dataLayer.push({
  'event': 'eventFired',
  'eventCategory': 'Error Modal',
  'eventAction': modal.textContent,
  'eventLabel': '',
  'eventValue':0,
  'eventNonInteraction': true
});

FOR UNIVERSAL ANALYTICS:

var modal = document.getElementById('modal-message');
ga('send', 'event', 'Error Modal', modal.textContent, '', 0, {'nonInteraction': true});

FOR CLASSIC GOOGLE ANALYTICS:

var modal = document.getElementById('modal-message');
_gaq.push(['_trackEvent','Error Modal', modal.textContent, '', 0, true]);

Have any error-collecting techniques of your own that I missed? Tweet them to me at @notdanwilkerson.

Oft overlooked, error tracking is one of the most valuable ways to use Google Analytics. This essential guide covers how to use Google Analytics to track:

(click a link to jump ahead)

Using:

  • Google Tag Manager
  • Universal Analytics
  • Classic Google Analytics

404 Errors

Tracking 404s is great for:

  • Finding broken links (internal and external)
  • Proactively catching broken functionality
  • Tidying up older site architecture

Use Events to capture the previous page of the visit and the complete location of where the 404 occured. These are available at document.referrer and document.location.href, respectively. These two pieces of information can let you track down exactly where the offending link happens to be; capture these instead of relying on the 'Page' or 'Full Referrer' dimension in Google Analytics. Those values can easily be altered by filters, campaign parameters, or by other features built into Google Analytics.

FOR GOOGLE TAG MANAGER:

If you're using Google Tag Manager, checking the title element for the default '404' text is a sturdy test to fire a tracking event. Something like {{title}} equals '404 Page' or {{title}} contains '404 Page', as recommended by Samantha Barnes in her excellent guide to capturing 404 metrics with Google Tag Manager. You can also reference other tags that are on the page - be creative and find a standard value to watch for.

If that's not possible, you'll need to get your developers to populate the dataLayer with an event that you can watch for in Tag Manager, like:

var dataLayer = dataLayer||[];
dataLayer.push({'event':'404 Error'});

Then, you add a rule that watches for the 404 Error event, like so:

Then you create a Google Analytics Event tag and populate the Event Action and Event Label with the full URL of the page and the referrer.

As a best practice, I recommend that you try and decouple the mechanism that fires the event into Google Analytics from the actual event. Doing this means you can use a single 'generic event' tag to handle the processing of all of your events, and instead just push data into the dataLayer for the event tag to reference. For example:

In the above, each macro simply returns a corresponding dataLayer variable for an event value. It watches for 'event':'eventFired' in the dataLayer. To generate a 404 event, all that needs to happen is the following be pushed into the dataLayer:

var referrer = document.referrer;
if (referrer === '') {
  referrer = 'No Referrer';
}
dataLayer.push({
  'event': 'eventFired',
  'eventCategory': '404 Error',
  'eventAction': document.location.href,
  'eventLabel': referrer,
  'eventValue': 0,
  'eventNonInteraction': true
});

This pattern makes adding future events a snap - all you have to do is push the 'eventFired' event into the dataLayer with the corresponding data; no need to create a whole new Google Analytics event tag.

If you're not using Google Tag Manager, you'll have to manually fire these events into Google Analytics. You can either include the following code as part of the 404 page template, or add it wrapped in a test into the header of each page on your site, e.g.:

if (document.title === 'Oops! You've found a 404 Page') {
  // Appropriate event tracking code from below goes here
}

FOR UNIVERSAL ANALYTICS:

var referrer = document.referrer;
if (referrer === '') {
  referrer = 'No Referrer';
}
ga('send', 'event', '404 Error', document.location.href, referrer, 0, {'nonInteraction': true});

FOR CLASSIC GOOGLE ANALYTICS:

var referrer = document.referrer;
if (referrer === '') {
  referrer = 'No Referrer';
}
_gaq.push(['_trackEvent','404 Pages', document.location.href, referrer, 0, true]);

JavaScript Errors

JavaScript errors are errors that the browser throws while executing the code that you've delivered to it. There are many common causes for JavaScript errors - browser compatibility, coding mistakes, and namespace collisions, to name a few. Tracking JavaScript errors can help you ensure a consistent user experience across browsers, catch bugs that were missed during development, and gauge the impact an error is truly having on users so that a fix can be appropriately prioritized.

FOR GOOGLE TAG MANAGER:

It's your lucky day. Google Tag Manager offers a JavaScript Error Listener right out of the box. Just select 'JavaScript Error Listener' from the 'Event Listeners'; I recommend you add this to every page.

Then, you'll need to add another tag that listens for 'gtm.pageError' and uses the associated values to populate an Event for Analytics. I recommend reusing the pattern above for events, like this:

dataLayer.push({
  'event':'eventFired',
  'eventCategory': 'JS Errors',
  'eventAction': {{gtm.errorMessage}},
  'eventLabel': URL: {{href}} | File: {{gtm.errorUrl}} | Line: {{gtm.errorLineNumber}},
  'eventValue': 0,
  'eventNonInteraction': true
});

Otherwise, you'll have to create another tag specifically for turning errors into events, like this:

I make the Event Action the gtm.errorMessage value and the Event Label URL: {{href}} | File: {{gtm.errorUrl}} | Line: {{gtm.errorLineNumber}}. This makes an for an easy-to-read format that can be drilled into for deeper context.

FOR UNIVERSAL ANALYTICS & CLASSIC ANALYTICS:

To track errors in the browser, you'll need to bind an event listener to the window.onerror event that will generate a hit to send to Google Analytics. Doing this in a 100% backwards-compatible, error-free way can be super tricky, but here's a copy-and-paste-friendly snippet you could utilize that should work with most browsers and Google Analytics configurations. Feel free to copy and modify to your tastes:

if (typeof window.onerror === 'object' && window.onerror === null) {  // Checks if this seat is taken/exists
  window.onerror = function(message, file, lineNumber) {
    if (typeof ga === 'object') {  // Detects Universal Analytics
      ga('send','event','JS Error', message, 'URL: ' + document.location.href + '| File: ' + file + '| Line: ' + lineNumber, 0, {'nonInteraction': true});
    } else if (typeof _gaq === 'object') {  // Detects Classic Analytics
      _gaq.push(['_trackEvent','JS Error', message, 'URL: ' + document.location.href + '| File: ' + file + '| Line: ' + lineNumber, 0, true]);
    }
  }
}

Server-side Errors

Sending application error data into Google Analytics directly from your server let's you connect backend performance with front-end behavior. It can also contextualize seemingly unconnected issues across your site.

FOR GOOGLE TAG MANAGER:

Although technically not server-side, you could expose some error information into the dataLayer and then pass it into Google Analytics. On your server, this might look something like:

var dataLayer = dataLayer||[];
<?php
foreach ( $err in $errors ) { ?>
  dataLayer.push({
    'event': 'eventFired',
    'eventCategory': 'Server Error',
    'eventAction': '<?php echo $err->errno . $err->errstr ?>',
    'eventLabel': 'URL: ' + {{href}} + '| File: <?php echo $err->errfile ?> | Line: <?php echo $err->errline ?>';
  });
<?php } ?>

And on the client, you'd see:

<script>
  var dataLayer = dataLayer||[];
  dataLayer.push({
    'event': 'eventFired',
    'eventCategory': 'Server Error',
    'eventAction': 'Fatal error: Undefined class constant "MYSQL_ATTR_USE_BUFFERED_QUERY"'
    'eventLabel': 'URL: http://example.com/test/ | File: /local/www/example.com/includes/database/mysql/database.inc | Line: 43',
    'eventValue': 0,
    'eventNonInteraction': true
  });
</script>

Sidenote:

You'll notice me using the syntax var dataLayer = dataLayer||[]; and then using dataLayer.push({}) in order to populate the dataLayer in my code; I recommend this as best practice to avoid accidentally overwriting needed information in the dataLayer. Basically, this is read by the browser as 'The dataLayer is equal to itself, or it's an empty array'. If the dataLayer doesn't exists, the next section of the 'OR' (||) statement is evaluated, namely 'dataLayer is an empty array'. In this way, if it exists, it will preserve itself, and if it doesn't, it will create a new array named dataLayer for us to use.

Not instantiating dataLayer in this way can lead to problems if your code gets messy. For example, if you're loading the dataLayer at the top of the page, then server errors inside the <content> of the page, this could happen:

<!-- Other HTML -->
<script>
  var dataLayer = [{'PageType':'Local'}, {'timestamp': 2849200492}];
  console.log(dataLayer); // Logs '[ { "PageType": "Local" }, {'timestamp': 2849200492} ]'
</script>
<!-- Other HTML -->
<script>
  var dataLayer = [{'event': 'Server Error'}];
  console.log(dataLayer); // Logs '[ { "event": "Server Error" } ]'
</script>

Should you need to reference either the PageType or timestamp values later, they would return undefined. Using dataLayer = dataLayer||[]; and then dataLayer.push() instead of just instantiating the dataLayer prevents this from happening.

FOR UNIVERSAL ANALYTICS:

The Universal Analytics Measurement Protocol provides a relatively painless way to send hits to Google Analytics directly from your server. All it takes is a POST request, which can be pretty simple to put together. Here's a quick and dirty example using NodeJS:

var http = require('http');

function fireMeasurementProtocolEvent(category, action, label, value, nonInteraction, cid) {

  var ni = !nonInteraction ? '1' : '0';

  var eventData = "?v=1&tid=UA-XXXXXXX-XX&t=event&cid=" + cid + "&ec=" + category + "&ea=" + action + "&el=" + label + "&ev=" + value + "&ni=" + ni;

  var payload = {

    'hostname': 'www.google-analytics.com',
    'path': '/collect' + eventData,
    'method': 'POST'

  };

  var req = http.request(payload);
  req.end();

};

FOR CLASSIC GOOGLE ANALYTICS:

The truly intrepid can manufacturer fake __utm.gif requests - all you need to do is generate a GET request to http://www.google-analytics.com/__utm.gif with the correct parameters appended to the request. Here's a great reference from Google on how to do just that.

Modal & Dialog Errors

Finally, a great 'error' type that I like to catch is any kind of modal or error dialog presented to a user. Even mundane error messages can reveal more sinister patterns lurking underneath. Tracking and analyzing common site messages is essential for good site hygiene.

FOR GOOGLE TAG MANAGER:

Either create an event tag and a macro to grab the text of the modal, or using the generic tracking event outlined above:

var modal = document.getElementById('modal-message');
dataLayer.push({
  'event': 'eventFired',
  'eventCategory': 'Error Modal',
  'eventAction': modal.textContent,
  'eventLabel': '',
  'eventValue':0,
  'eventNonInteraction': true
});

FOR UNIVERSAL ANALYTICS:

var modal = document.getElementById('modal-message');
ga('send', 'event', 'Error Modal', modal.textContent, '', 0, {'nonInteraction': true});

FOR CLASSIC GOOGLE ANALYTICS:

var modal = document.getElementById('modal-message');
_gaq.push(['_trackEvent','Error Modal', modal.textContent, '', 0, true]);

Have any error-collecting techniques of your own that I missed? Tweet them to me at @notdanwilkerson.

How to Handle Existing Subscribers in Your Email Leads Collecting Strategies

When an existing subscriber subscribes to your email lists again, what does it mean to you: a new conversion or just another duplicate email address? Your answer depends on the email marketing strategy you’ve chosen for your business. But no … Continue reading

When an existing subscriber subscribes to your email lists again, what does it mean to you: a new conversion or just another duplicate email address? Your answer depends on the email marketing strategy you’ve chosen for your business. But no matter what, you’ll want to make sure you don’t miss out on valid new subscribers and neither get too annoying to current ones.

One of the first questions we often get from new clients here at PadiAct is:

How can I avoid inviting an existing subscriber to subscribe?

There are multiple ways of approaching this concern, depending on some details regarding the existing subscriber, specific to your strategy.

Allow me to walk you through the 3 of the most common scenarios we’ve seen here at PadiAct and in return I’ll share with you the recommended targeting rules recipes you can use for best results.

“Visitors subscribe once and they get all my future newsletters.”

General invitations to subscribe that sound like “Subscribe to blog updates” or “Why not stay in touch” imply that once the users subscribe, they’ll automatically be included in all future newsletters the website might send out, be them new content, promotions or other type of messages. You probably have only one list where all your subscribers go to.

You will want to make sure that visitors coming from any sort of email marketing campaign are not invited to subscribe twice. Here is the targeting rule you should select from the “Exclude rules” list available per each of your campaigns:

exclude existing subscribers targeting rule screenshot

“Exclude existing subscribers” targeting rule

Using this rule, that was recently released, you make sure that visitors to your website that have subscribed through any other PadiAct campaign or have already interacted with your email newsletters are not to be bothered with the invitation to subscribe again.

“Visitors must subscribe to each new email campaign I run.”

Invitations like “Leave your email address to be contacted by a sales representative” are pretty specific to their message. It would be unwise to start sending to this sort of subscribers general newsletters that they did not really subscribe to. You can however invite the very same subscribers to subscribe to your general newsletters through other PadiAct campaigns.

In this case, if existing subscribers to a list (to be contacted by a sales representative) get to see other targeting campaigns you run and even subscribe to them, you can happily count your conversions pouring in. No worries if the same user sees more than one invitation to subscribe.

It’s worth mentioning that by default, a PadiAct campaign is never displayed to a user who has already subscribed to it – so no extra settings needed from you!

“Subscribers to campaign X should really not see invitation from campaign Y”

Already gave them a 25% off discount yesterday and don’t want them to get a cumulative  35% off coupon  today? Excluding visitors coming from a certain marketing campaign is easy. Select from the “Exclude rules” list available from your campaign page the rule named “Target based on marketing campaigns” and fill it in with the campaign details you wish to exclude:

exclude-marketing-campaigns

What this rule does is make sure existing subscribers to your marketing campaign (made with or without PadiAct) don’t see the invitation to subscribe to this the current campaign.  You can exclude as many marketing campaigns as possible, as long as you have their UTM parameters set in Google Analytics.

However, if you want to exclude people that have interacted just with another PadiAct campaign (no matter if they subscribed or not or if they have already received an email newsletter after subscribing), you can use one of the more advanced targeting rules, called “Exclude Visitors that interact with any of the following 1st Party Cookies“, as follows:exclude-1st-party-cookies-other-campaigns

Make sure to remove the “XXXX” from the cookie name if you want to exclude people who have seen any of the other PadiAct campaigns.

To exclude just people that have interacted with specific other PadiAct campaigns, you need to replace the “XXXX” with the campaign ID, that you can find on the campaign page:

campaign-ID

How do you treat your existing subscribers? Does your strategy fit in the above examples? Have another targeting scenario and need a tip on the right targeting rules to use? Just comment below, I’ll be glad to hear from you.

Heartbleed Bug Vulnerability Detection and Correction

For those who may not know, I write most of my posts over at one of my newer sites The Ecommerce Expert now. Most of my activity has moved there so be sure to head on over and subscribe to get the latest updates. With that said, I thought it would be i…

For those who may not know, I write most of my posts over at one of my newer sites The Ecommerce Expert now. Most of my activity has moved there so be sure to head on over and subscribe to get the latest updates. With that said, I thought it would be important to post […]

Heartbleed Bug Vulnerability Detection and Correction is an article taken from: Ecommerce Optimization & Marketing protected under copyright law. Reproduction in any form without consent is strictly prohibited.

If you want to find out how to increase your website conversion, increase sales, and win more customers you should visit the original Ecommerce Optimization site.

The post Heartbleed Bug Vulnerability Detection and Correction appeared first on Ecommerce Optimization & Marketing.

Understanding Cross Device Measurement and the User-ID

One of the fundamental new features of Universal Analytics is user-centric measurement. This includes measurement across multiple devices – computers, smart phones, tablets, kiosks, etc. But this change introduces a number of new challenges for analysts and marketers. In order to do cross device measurement you need to understand some of the challenges and limitation. […]

Understanding Cross Device Measurement and the User-ID is a post from: Analytics Talk by Justin Cutroni

The post Understanding Cross Device Measurement and the User-ID appeared first on Analytics Talk.

One of the fundamental new features of Universal Analytics is user-centric measurement. This includes measurement across multiple devices – computers, smart phones, tablets, kiosks, etc.

The User-ID feature let's you measure the user journey across multiple devices - and even in stores.

But this change introduces a number of new challenges for analysts and marketers. In order to do cross device measurement you need to understand some of the challenges and limitation. Let’s begin our exploration of cross device data with a discussion about how it works.

How Cross Device Measurement Works

You’ll recall that most analytics tools set an anonymous identifier to measure users. On websites the JavaScript code creates the identifier and stores it in a cookie. On mobile apps the SDK creates the identifier and stores it in a database on the device. (We call this default ID the Client-ID).

We actually discussed this concept in our Google Analytics Platform Principles course. Skip to 21 seconds for details – but the whole video is helpful :)

The User-ID feature lets you override this default behavior. So rather than letting the tracking code create the a Client-ID, YOU can create and use your own identifier. How do you do that?

Well, your business needs to have some way of identifying users. Don’t worry, most businesses do. A CRM system or customer database usually has a User-ID that you can use.

The important thing is that you can create the technology that moves the ID from your database into your website, app or other digital experience where your users interact with your content.

The User-ID value must originate from your systems. It must eventually appear in the tracking code on your site or in your app. The User-ID will then be sent to Google Analytics  with each data hit.

The User-ID value must originate from your systems. It must eventually appear in the tracking code on your site or in your app. The User-ID will then be sent to Google Analytics with each data hit.

In the above diagram the company would need to create code that pulls the User-ID from the database, then passes it through the web servers, and finally places it in the Google Analytics Tracking code that appears on the website.

I know – that seems like a lot of work! But a good tech person can make this happen.

After you add all the necessary code, and set up the User-ID feature in Google Analytics, then the actual id value that you supply is sent to Google Analytics with each hit (see my post on hits, sessions and users to learn about all the different hit types in Google Analytics.)

Then, as Google Analytics processes the data, it groups hits with the same User-ID together. It does not matter if the hits come from a website, mobile app or some other device.

Hits from the same user can be grouped together as long as each hit has the same User-ID.

Hits from the same user can be grouped together as long as each hit has the same User-ID.

In the above image there would be three unique users – one user with a User-ID=1, one user with a User-ID=2 and one user with a User-ID=5. Again – it doesn’t matter where the hits come from (mobile, web, kiosk, etc.).

But what about instances when the User-ID is not present? For example, what if the user is not logged in and we can not retrieve the User-ID? Good question.

In this case, Google Analytics will go back to its default behavior and generate it’s own User-ID (again, this is called a Client-ID, because the ID is specific to the client or device). Obviously this ID can not be used to measure across devices as it will only exist on the device where it is set.

But now we have a scenario where a user might have two different User-ID numbers for a single user? Isn’t this going to have an impact on the data? Aren’t we trying to avoid that? This sucks!

Well – it’s not that simple. Let’s talk about something called Session Unification.

Session Unification

The above scenario is very common. You will not always be able to set the User-ID in Google Analytics – even for known users. The result is some hits and sessions will have a User-ID value, and some with an automatically generated User-ID value.

It's not always possible to send your own User-ID to Google Analytics.

It’s not always possible to send your own User-ID to Google Analytics.

Google Analytics has a feature called Session Unification. When activated, it will unify, or group, hits with the manually set User-ID and hits with an auto-generated User-ID together. This means that Google Analytics can associate some hits that were received prior to setting the User-ID.

Here’s the definition of Session Unification from the Google Analytics Help center (I think it’s pretty good!):

Session unification allows hits collected before the User-ID is assigned to be associated with the ID, as long as those hits happen within the same session in which a specific ID value is assigned for the first time.

This means that Google Analytics will only associate hits collected in the same session AND it must be in the first session where the User-ID is set.

This functionality is sometimes called “stitching” – and it differs from one tool to another.

Google Analytics will not go back in time and stitch every single session from a given user together. I can hear the groans now – and the comparisons to other tools. I hope to write about session unification in a later post. But I think a lot of people that are going to complain about this are missing the point. It’s not “can we stitch data together” it’s “should we stitch data together?”. Rant over.

So how does Session Unification impact the data? Well, to understand that we need to talk about another topic the User-ID View and reports.

The User-ID View

We all know the basic hierarchy of a Google Analytics account. Within your account you can create a number of properties. Under a property you can create a number of views – which were formerly called profiles.

Now you can designate certain views as User-ID views. This means that the view will be filtered and the only data in this view is data that contains hits where you set the User-ID value.

Only a Google Analytics view with User-ID enabled will display information about cross-device users.

Only a Google Analytics view with User-ID enabled will display information about cross-device users.

Obviously this view will have less data than a standard view where the User-ID is not enabled. But the idea is that this view will be able to provide deeper insights into how users who are logged in – a VERY valuable segment of your users – interact with your business across multiple devices.

To view all of the data, hits with and without a User-ID, you would use a standard view.

Let’s also consider the scenario from above – when a manually set User-ID is present in some sessions, but not others. The result is that the data from sessions without your User-ID will not be in the User-ID view.

Only hits that contain a manually set User-ID will be included in a User-ID view.

Only hits that contain a manually set User-ID will be included in a User-ID view.

There are also some other significant differences between views that do, and do not, have User-ID feature enabled.

1. Certain metrics are calculated differently. Obviously if a User-ID view contains different data, then certain metrics will be calculated differently.

For example, the number of Users is calculated based on the number of unique User-ID values. This will provide a fairly accurate view of the number of users. It will probably be less than the number of users in a standard view because that that view will also include users where you do not set a User-ID.

2. Cross device reports. This is the HUGE benefit of a User-ID view. These reports provide some awesome insights into how users access your content from multiple devices. More info about the reports below.

3. Limited date range. When working with a User-ID view you can only change the date range to the past 90 days. This is consistent with the standard 90-day user look-back window in other features, like Multi-Channel Funnels and user segments.

Implementing Cross Device Measurement

Implementing the User-ID feature can be involved, depending on your specific infrastructure. Here’s a brief overview of the process.

1. First, you need to “turn on” the user ID feature for a given property.

2. Second, you need to add the actual user ID value to the data collection. For website, this means you need to modify the JavaScript tracking code. For mobile apps you need to change the SDK.

3. Third, create a User-ID view. This is a special data view that includes new reports.

Let’s get into a bit more detail.

1. Enable User-ID Feature

This is really important to read and understand the terms. For example, it’s important to note that you can not use personally identifiable information as the User-ID. This includes an email address, name, etc.

To use the User-ID feature you must read the User-ID policy and agree to the terms.

To use the User-ID feature you must read the User-ID policy and agree to the terms.

You also really need to take a look at your own privacy policy and make sure it complies with the following:

You will give your end users proper notice about the implementations and features of Google Analytics you use (e.g. notice about what data you will collect via Google Analytics, and whether this data can be connected to other data you have about the end user). You will either get consent from your end users, or provide them with the opportunity to opt-out from the implementations and features you use.

2. Implement User-ID in your Tracking Code

Now for the coding! Go get your nerds and Red Bull! Just kidding.

As I mentioned above, the User-ID value must come from you. You must generate the ID from one of your systems. Once you do that you must place it inside the tracking code. The hard part is writing the code that moves the User-ID from your systems and puts it in {{ USER_ID }} in the code snippets below..

Let’s look at some of the most common code formats.

Adding the User-ID to website tracking

Adding a User-ID to the JavaScript code is fairly easy – it’s a single line.

ga('create', 'UA-XXXX-Y', 'auto');
ga('set', '&uid', {{ USER_ID }});
ga('send', 'pageview');

Remember, the User-ID needs to be set before any hits are sent to Google Analytics. So make sure you call the set command before a pageview, event, transaction, etc. is sent.

It’s also recommended that you include the set method on ALL of the pages, not just one page.

See the developer docs for more about JavaScript information.

Adding the User-ID to the Android SDK

t.set("&uid", {{ USER_ID }});

See the developer docs for more Android information.

Adding the User-ID to the iOS SDK

[tracker set:@"&uid" value:{{ USER_ID }}];

See the developer docs for more iOS information.

For both the Android code and the iOS code, you only need to set the User-ID once. Once it is set once the User-ID will be sent with all subsequent hits. But try to set it before any hit is sent to Google Analytics.

Adding the User-ID to the Measurement Protocol

Adding the User-ID to a measurement protocol hit is actually really easy. All you need to do is add the uid parameter in each hit. So a hit might look something like this:

http://www.google-analytics.com/collect?v=1&_v=j16&a=164718749&t=pageview&_s=1&dl=http%3A%2F%2Fcutroni.com%2F&ul=en-us&uid=hsjfy4782jduyth6k4

Adding the User-ID via Google Tag Manager

A quick note that you can also set the User-ID with Google Tag Manager. You’ll find the setting in the ‘More Settings > Fields to set’. You’ll also need to create a macro to pull the actual User-ID value from a cookie or the data layer.

You can set the User-ID value with Google Tag Manager.

You can set the User-ID value with Google Tag Manager.

In addition to adding the User-ID to your data collection code, you must also choose if you want to use Session Unification. See above for more information on session unification.

The second step in setting up the User-ID is to add the actual identifier to the tracking code for your site or app.

The second step in setting up the User-ID is to add the actual identifier to the tracking code for your site or app AND configuring the session unification setting.

Now it’s time to add a User-ID view.

3. Create a User ID View

As mentioned above, a User-ID view is a filtered view of your data. It only includes hits in which you have set the User-ID value. This view also contains reports that show cross device usage and other user-centric metrics.

Please note, this view is in ADDITION to the other views that you have for a property. This means that you will need to configure things like goals, filters custom reports, dashboards, etc. on this new view.

You must create a new User-ID view to see the Google Analytics cross device reports.

You must create a new User-ID view to see the Google Analytics cross device reports.

That’s really it. I don’t want to oversimplify the implementation. But most of the work is really creating the code that pulls your User-ID from your systems and then places it in the correct tracking code.

Data and Reports

We finally made it, let’s look at some data and figure out how we can use this.

Remember, in all of these reports we’re trying to understand the behavior of our users. And we’re not just looking at the behavior of everyone – we’re looking at the behavior of those users that have self identified. This is really important as this group is naturally very valuable.

User-ID Coverage

Let’s start by understanding what percentage of our users are actually logged in.

Remember, you’ll have two different profiles with data. One profile will just be all of the data, the other will be a User-ID profile that only contains information about logged in users.

The Coverage Report identifies the data that has a User-ID associate with it vs. the data that does not have a User-ID.

The User-ID Coverage report shows what percentage of your sessions have a User-ID associated with them.

The User-ID Coverage report shows what percentage of your sessions have a User-ID associated with them.

Remember, you’re probably not going to get 100% User-ID coverage – unless your online experience requires authentication. But this depends on your specific business and your specific implementation.

You can use this data to get a better understanding of how big your data pool is – will you be making decisions on 1% of sessions or 50%?

Device Overlap

Ok this is where we start to get into the really interesting data. Here’s a visualization that shows the device overlap. That means the percentage of users that use various combinations of devices.

Device overlap shows the number of users and the value of users based on combinations of devices.

Device overlap shows the number of users and the value of users based on combinations of devices.

Rather than just looking at how many people use certain combinations of devices, let’s look at the associated revenue from those combinations. Notice that you can change the display using the selector at the top of the chart?

The Device overlap report also includes detailed information about how combinations of devices drive value.

The Device overlap report also includes detailed information about how combinations of devices drive value.

So what’s the actionability here?

Do people who use a certain combination of devices behave differently than others? Are people who use tablet and desktop more valuable than those that use tablet and phone? If so – how do we encourage more of that behavior? Is it via marketing? Changes to the platform?

And don’t forget, you need to add a LOT of context to this data. You need to keep in mind your marketing initiatives along with the user experience that you offer your users on each device.

Device Pathing

Now let’s move on to device pathing. This report shows the device used for a sequence of sessions.

Device Pathing shows the user sequence of devices.

Device Pathing shows the user sequence of devices.

You can look at a specific path prior to, or after, a user action. The action could be a goal conversion, a pageview, a transaction or an event.

You can view the device path prior to, or after, specific user actions.

You can view the device path prior to, or after, specific user actions.

What’s the actionability here? Let’s look at a use-case.

If you have a SaaS business you may offer your users a free trial. In this case the user would create an account for the trial and then use your service. At the end of the trial they would need to upgrade to a real account.

The first thing you could do is look at the user’s device behavior after creating their free trial account. Did they perform any specific tasks on a specific device? Was one device more popular than another? If so maybe you can simplify the workflow on that device.

You could also look at the device path at the end of their trial, when they upgraded to a paying account. Did they perform the upgrade on a certain device? Or, more importantly, was the conversion rate higher on on a certain type of device? If so, you might want to simplify or optimize the process on that type of device.

Don’t forget to look back at the Device Overlap report to understand if a certain combination of devices yielded a more valuable customer.

Also notice that there are a lot of ways that you can configure this report to view different paths. One of the most important things to note is that you can not choose specific instances of each item. For example, if a user generates multiple transactions you can not choose a specific transaction.

You can choose to view the device path before or after various user actions.

You can choose to view the device path before or after various user actions.

My suggestion is to create a goal, page or unique event for the most important user actions – the ones that represent the transition from one phase of the customer lifecycle to another. That way you will always be able to see the device path before and after the action.

Device Acquisition Report

Finally we have the Acquisition Device report. This is similar to the Device Overlap report in that it helps you understand the value of users on a certain device. But the difference is that it shows the value based on the first device type.

Use the Device Acquisition report to understand if users acquired on a certain device generate revenue on the same device or different devices.

Use the Device Acquisition report to understand if users acquired on a certain device generate revenue on the same device or different devices.

What’s the actionability here? Do users acquired on a specific type of device generate more value on the same device or on other devices? If so how can you drive more of that behavior?

Segmentation

One final thing to mention. You may have noticed that you can apply segmentation to all of these reports. Segmentation will work the same in these reports as it does in all other GA reports.

If you create a session based segment then Google Analytics will show all the paths that include a session that meets your criteria.

If you create a user based segment then Google Analytics will show all of the paths generated from users that match your criteria.

Did you make it to the end? I hope this post gave you some insights into how Cross Device Measurement works. There’s going to be a lot of chatter about User-ID and cross device measurement – some positive, some negative. And I have a lot more to say – but this post is long enough!

Understanding Cross Device Measurement and the User-ID is a post from: Analytics Talk by Justin Cutroni

The post Understanding Cross Device Measurement and the User-ID appeared first on Analytics Talk.

Universal Analytics: Now out of beta!

We’ve been talking about Universal Analytics for a long time – over a year. In that time Universal has always been in beta because it was not 100% compatible with the existing version of GA. Sure, various parts of the Universal platform have rolled out, like the Measurement Protocol and Dimension Widening, but we were […]

Universal Analytics: Now out of beta! is a post from: Analytics Talk by Justin Cutroni

The post Universal Analytics: Now out of beta! appeared first on Analytics Talk.

We’ve been talking about Universal Analytics for a long time – over a year. In that time Universal has always been in beta because it was not 100% compatible with the existing version of GA. Sure, various parts of the Universal platform have rolled out, like the Measurement Protocol and Dimension Widening, but we were missing things like Remarketing and Audience data. But no more :)

I’m excited to say that as of today, April 2, 2014, Universal Analytics is out of beta!

Universal Analytics: The next generation of Google Analytics

Let’s run through everything you need to know about the announcement.

100% Feature Compatibility

Universal Analytics now supports all standard Google Analytics features. This includes:

Remarketing with Google Analytics. This is one of my favorite analytics features – and it made me very sad that Universal Analytics did not support it. But that’s in the past – You can now use the remarketing feature with Universal Analytics.

Audience reporting. The audience reports are an awesome way to understand who is using your site. They include data like gender and interest categories. This can be incredible helpful when trying to understand if the correct audience is using your site. Now you can use this feature with Universal Analytics.

Premium SLA Support. For all of those using Google Analytics Premium, all of your standard SLAs now apply to Universal Analytics. This includes data collection, data processing, etc.

Full Google Tag Manager support. Google Tag Manager now fully supports all Universal Analytics features, this includes audience data and the new User ID feature (discussed below).

I’ve said it many, many times – I’m a big fan of tag management. If you are going to migrate to Universal Analytics you might as well migrate to Tag Manager (or any tag management solution) now!

Universal Analytics is Google Analytics – and vice versa. Everything that Google Analytics can do, Universal Analytics can do – and more :)

Cross Device Measurement

In addition to complete feature compatibility, cross device measurement, via the User-ID feature, is now available.

The User-ID feature let's you measure the user journey across multiple devices - and even in stores.

The User-ID feature let’s you measure the user journey across multiple devices – and even in stores.

As you recall, this feature lets businesses use their own User-ID to measure customers across multiple devices. This feature includes some awesome reports to help businesses understand which devices and behaviors generate value. Here’s a quick overview:

Device Overlap: This report can help you identify what types of devices your users use to access your service or content.

The Device Overlap report shows what percentage of users access your content from multiple devices.

The Device Overlap report

Device Paths: This report will show the last five devices that were used prior to a conversion. It’s a bit like the Multi-Channel Funnels report – but for devices.

The Device Path report shows the last five devices that were used prior to a conversion.

The Device Path report

Acquisition Device: This report shows revenue based on the device that generated the first conversion. It’s can help you understand if users on a certain device have a larger impact on revenue.

The Acquisition Device Report.

The Acquisition Device Report

Understanding cross device measurement, and implementing it correct, is a huge topic – way more than I can cover in one post. I’ll be publishing a few other articles that explain cross device measurement in Google Analytics ASAP.

Time-zone Based Processing

In addition to the above features, there’s one more piece that is rolling out today. Google Analytics users can now specify the time-zone where their data is processed. In the past all data was processed in the Pacific Timezone (because that’s there Google is).

But now data processing will occur in the time zone of each data view.

The time zone setting in a view now controls when your data is processed.

The time zone setting for a view now controls when your data is processed.

While most people will not notice a big difference, this is a HUGE improvement for many users in Australia, Japan and other parts of Asia.

This also means that, for some users, automated daily reports will arrive on the correct day!

Do you need to migrate?

Ok, so that’s a brief overview of what’s happening today. But the big question that everyone will ask is, “do I need to migrate to Universal Analytics?”

No, you do not need to migrate to Universal Analytics – at least not now.

However, you need to start planning to migrate.

Universal Analytics is the new platform – all new features will be developed for UA. So if you want to use the new shiny things in the future you need to be on UA.

But migrating t can be a lot of work depending on your specific measurement plan. I’ll address that in another post.

Ok, that’s it for this post. But there is a lot more on Universal Analytics coming.

Universal Analytics: Now out of beta! is a post from: Analytics Talk by Justin Cutroni

The post Universal Analytics: Now out of beta! appeared first on Analytics Talk.

“What Would be Worse than Launching C**p?” – Compell.dk on Email Marketing

The best way to improve your email marketing is to ask an expert what works and what doesn’t. He has years of experience ahead of you, so he has the prerequisites to give you good advice. To find out what … Continue reading

The best way to improve your email marketing is to ask an expert what works and what doesn’t. He has years of experience ahead of you, so he has the prerequisites to give you good advice.

To find out what are some of the best strategies to tackle email marketing, we turned to the experts who are deeply involved with the game of email, and picked their brains with a few questions about what works and what doesn’t.

Professionals achieve expert status because they learn the hard way: testing, continuous improvement, testing again, taking risks, comparing notes with other professionals, and shipping campaigns no matter what.

The reason someone is an expert at email marketing is because they’ve done the hard work. There are no shortcuts to gaining expertise. You have to go yard by yard, until you get the touchdown.

Bjarke2

Bjarke Bekhøj, Compell.dk

Today we are interviewing Bjarke Bekhøj, the leader of Compell.dk, a very active online marketing company located in Aarhus, Denmark.

Bjarke started Compell back in 2011, and it’s the brainchild of his passion for online marketing.

In this interview with Bjarke we are covering several important topics related to email marketing:

  • common mistakes companies are making
  • great email marketing tools
  • the ROI of email
  • companies just starting to use email marketing
  • and more…

Q1. Tell us about yourself and about your company.

Compell is an online marketing company located in Aarhus C, Denmark. At Compell we specialize in a variety of online marketing disciplines such as email and social media marketing, SEO, link building and remarketing.

I started Compell back in 2011 and the company is the ‘product’ of my passion for business strategy, sales and marketing. A passion that my team of coworkers, with their different fields of expertise, and I strive to put into use every day, in order to improve our clients’ businesses and let them benefit from the value of online marketing.

We deliver tailored solutions and measurable results because we believe that every client is different and has different needs in order to succeed.

All this from a very down-to-earth work environment, where our clients feel just as much as home as we do ourselves.

Q2. What are the 3 biggest or the most common mistakes companies are making when running email marketing campaigns?

  1. They use inside-out content that is irrelevant for the receivers.
  2. They do not put any effort into making the subscribers lists grow before sending out one newsletter after another.
  3. They forget that the emails that we send out today mostly are opened via smart phones or tablets and they therefore neglect the fact that the newsletters’ content may not be seen or read as intended.

Q3. What are your favorite email marketing tools? Why did you choose these tools, and how did they help you?

Campaign Monitor and MailChimp are both excellent tools for email marketing.

Actually, they both share a great deal of features and possibilities, but there are still differences, such as price and usability, which is why we work with both email marketing services.

We often use Campaign Monitor because it has a great usability to it – not just for us but for our clients as well.

By giving our clients access to their own accounts in Campaign Monitor, they can easily learn to understand the mechanisms that lies behind the creation of a newsletter, making it easier and more beneficial for both parties to plan and create newsletters and the client’s email marketing in general.

MailChimp actually has a more sleek design and a great usability to it – however, this is mostly limited to professionals who work with the system on a daily basis.

To a client it may be too complex to actually understand the features of the service within a short-term period, which is why we limit the use of MailChimp to our professionals within the company.

Q4. How does the ROI of Email Marketing compare to other popular marketing channels (website, social, search etc)? Is Email Marketing a viable source of clients/revenue?

Email Marketing is the most viable marketing solution both short term and long term.

Email Marketing gives continuity in the communication with your clients, which fosters a great basis for a loyal relationship between you and your clients – and that, of course, equals a measurable ROI.

Q5. Let’s say a new company is just trying out email marketing, what would you recommend them to do? Can you help them outline a basic plan/strategy?

There is a simple way to put this: “Launch crap – but launch!”

When trying out email marketing you must start with the basics.

Ask yourself: “Whom, what and why”, and you have already come a long way.

The next step: Just do it!

You might be nervous that what you are launching is not good enough or needs lots of adjusting, but you can literally spend months trying to adjust and perfect your content.

Try asking yourself: “What could be worse than launching crap?”

Well, the answer is simple: Not launching anything!

Once you have sent out your first newsletters you can begin to adjust and maybe design new templates etc. to perfect the content – all the while your lists of subscribers and customers are growing thanks to your email marketing efforts.

Q6. What would be the 3 essential resources on email marketing that make/made a difference for you? (articles, websites, books, reports, whitepapers)

Working with email marketing on a daily basis makes it essential that you keep yourself up to date.

By following blogs at Campaign Monitor and MailChimp we are always up to date with the most recent tools or features in these services.

These blogs are great if you want to learn more about optimizing your email marketing while working specifically with Campaign Monitor or MailChimp.

For a more general outtake on email marketing I recommend Deliverability.com.

This blog delivers some very ‘boiled-down’ and simple guidelines or rules, that will help you optimize your email marketing.

Q7. Please share with us a very useful/interesting email marketing tip or trick.

Try using email marketing as a 1:1 tool.

Normally you probably want to send out your email to as many subscribers as possible, but sometimes you just need to send out one mail.

Using your email marketing service to deliver a 1:1 newsletter is an interesting way of making sure that your information gets out to that one specific person while “disguising” it as a message meant for a public audience.

Key takeaways, insights and tips from Bjarke Bekhøj, Compell.dk:

  • Email has great ROI, both long term & short term.
  • Launching a “crappy” campaign is way more useful that not launching at all. Trial, Error, Optimize. Repeat.
  • Optimize your email newsletter for multiple devices.
  • Even though you are blasting a whole email list, personalize your newsletter so that it looks & feels like you are sending a personal email.
  • Grow your email list continuously.
  • Learn about the basics and grow with each new campaign.

***

Thank you Bjarke for this interview.Bjarke

Check out Compell.dk website here.

Like Compell.dk on Facebook here.

Folow Bjarke on Twitter here

What We Learned From 3 Million Leads – Part I: Targeting Rules

A few months ago we managed to reach a very important milestone in journey to make PadiAct the best email lead generation tool for all platforms and businesses of all sizes. That mark represents collecting 3 million leads for our users. … Continue reading

A few months ago we managed to reach a very important milestone in journey to make PadiAct the best email lead generation tool for all platforms and businesses of all sizes.

That mark represents collecting 3 million leads for our users.

We were extremely happy to hit the mark at the start of the 2014, and this year we hope we can quadruple the amount of leads we collect for our users.

We have a live counter on PadiAct’s homepage, you can check it out if you are curious.

Because we love numbers and we find beauty in data and statistics, we are starting a series of articles called: “What we learned from 3 million leads we collected”.

We hope by sharing more of our stats & data, we can help business from all over the world attract more qualitative leads.

In this series we have a look at how we managed to collect 3 million leads, what proved to be successful, what works and what doesn’t. 

Hopefully, we can demystify lead generation for most people so that they can have a more pragmatic approach to collecting emails.

In the first part of the series we are going to cover the “Targeting rules“.

Less is more

“Less is more” is one of our core mantras, as we are not looking just to get our users more leads, we are striving to get them the best leads.

People are bothered by pop-ups and fly-out subscription forms, not because of the copy or the offer, but because of the timing.

Imagine this: you’ve just entered a website and after a few seconds you get a pop-up that urges you to subscribe to get the latest offers. If you are a totally new visitor, that can be a very distracting and annoying, and in some case, it can drive you away.

Why would you pass on a lead, just because you were to eager to show him a subscription form?

We think there is a better solution to this: you should target people when they are in the mood to “hear you out”, not before that, and not after they decided to leave your website.

This approach doesn’t mean less leads, but for sure it means better, more interested leads.

Because of this particular way of thinking about lead generation, we are continuously investing in our behavioral targeting engine, by adding more targeting rules to it and analyzing visitor patterns, to make sure we show up our forms at the best time, when the visitor is actually considering subscribing.

Not before, not after.

Always at the right time!

Now let’s get back to 3 million targeted leads we wanted to talk about.

We went in our “records”, we crunched some numbers, checked out hundreds of campaigns, and we got some interesting insights from our users (both paying & free users).

Why targeting engaged visitors is so important and why you should you care about it

Most of the lightbox email capturing tools out there are promoting a very bad habit: “target all website visitors”.

While in the case of blogs it might be useful, that doesn’t mean it should be the industry standard, especially not for big websites or ecommerce websites.

If you used or know about PadiAct, you probably know that at the core of our product we have a very flexible behavioral targeting system that allows our users to target specific segments of traffic.

While the “target all people” mentality can attract a fair amount of email subscribers, we think this is counter-productive on the long term.

Why?

Because you treating all visitors the same.

(Un)Fortunately, not all visitors are equally as important.

Some visitors need some time “alone” with your website. So, they would disregard a pop-up right there in their faces, 1 second after they landed on your website. These visitors might leave your site immediately. Why scare them away?

targeting

We  always advise targeting people after they’ve spent some time on the website, and maybe after they browse through a few pages. There’s no big rush, we know everyone is in a hurry, but that’s no reason to push the visitor to do certain actions before they get to trust your website. 

If you don’t rush the visitor, you can ask more engaged visitors to subscribe, not just anyone who landed on your website. If you calculate the average value of an email subscriber for your business, driving the right type of email subscribers (more engaged) might make the difference for you. Driving better leads will increase the average value of one’s email subscribers.

The harsh truth: Not all people are interested in your brand and/or your offer, so why engage with all visitors, when you can target and convince your most valuable visitors: the ones that actively engage with your content and website. 

After analyzing our users’ campaigns, we noticed something awesome. We noticed that most of our users applied our advice, and worked to bring better leads, not just to collect any email address.

You see, for some people it might look like a number’s game, collect more email address – this will improve revenue (eventually), but for people that get it, it can make a huge difference in their marketing. Instead of having thousands of people on their list after a few contests and giveaways, you will have people that “deep dive” your product catalog and website.

We are glad that this message has reached our users, and they prove us on a daily basis that this approach works great for businesses all over the world. If it wasn’t working, probably we would’ve been out of business by now.

How to Get Bucket Loads of Leads On a Daily Basis

PadiAct has over 30 rules (inclusion and exclusion rules), and we add rules quite frequently based on customer requests and lead experiments we run.

Because of these rules our users  have the flexibility to target visitors exactly how they want to, when they want to, on what pages they want to.

They can go and have a more broad approach by targeting based on time spent on the website, and a minimum of pages visited, or they can go very granular with their targeting, and target people coming from specific websites/traffic sources and target only visitors who get passed certain website elements or are triggering different events.

From our point of view, this is what an expert marketer needs: a flexible & powerful tool to targeting website visitors.

After we hit the 3 million mark, we wanted to learn what are the most used targeting rules by our users, and this is what we learned:

(click for full image)

(click for full image)

Here’s also the table version, in case you need it:

Targeting Rule Percentage
Target People a # of Times (Once, On Each Visit, On Every Pageview) 28%
Target People After They Visited a # of Pages 23%
Target Returning/New Visitors 20%
Target People That Spend # Seconds on Your Website 7.5%
Exclude People Interacting With Certain Pages on Your Website 4.5%
Target People Intectacting With Certain Pages on Your Website 3.5%
Exclude People Coming from Marketing Campaigns (CPC, Email etc) 2.5%
Exclude People that already converted 1.5%
Target People coming from certain websites 1.5%
Target People only when they scroll down 1%
Other rules 7%

Another interesting insight we got after looking into our users’ campaigns was that the most used targeting rules are usually used together, that’s why they appear to be more prevalent.

With just these 4 rules, our users can create a radically different setups, and target different segments based on how visitors interact with their websites.

Let’s go deep into the rules, to learn how they work.

The “Target People a # of Times” has 3 options:

  • target people only once
  • on each visit
  • for every pageview

Depending on the type of website, one option might fit you better than the other, but we learned that most people choose only once or on each visit.

With “Target People After They Visited a # of Pages” you can specify the minimum no. of pages before targeting a visitor and you can count the pageviews that correspond with other targeting rules or any pageviews.

“Target Returning/New Visitors” is one of the most powerful. Based on what website you run, it might make more sense to target new visitors, as you want to include them in a lead nurturing campaign or send them some education content.

This rule has a have a huge influence on the subscription rates, as targeting visitors based on recency can drive loads of email leads, especially if you compliment your strategy with a cleverly designed subscription form

The 4th most used targeting rule, “Target People That Spend # Seconds on Your Website”, allows you to target people based on the amount of time they’ve spent on your website. Usually we see campaigns with at least 10 seconds delay since the user landed on the website.

As you can see, you can go really granular or have a broad approach to targeting.

You can choose to target all new visitors that spend 10 seconds on your website and visit at least one page, or you can choose returning visitors, who browse through 3-4 pages, and spend at least 1-2 minutes on your website. Of course you can take this even further, and play with the rules however you wish.

Our advice, no matter what email capturing tool you are using, always A/B test different campaign setups, this way you can find the middle ground between the subscription rate you want, and the way your visitors behav.

The cool thing about flexible targeting rules is that the only limitation is your imagination. :)

OK. So far we only talked about inclusion rules. Let’s talk a minute about what people we don’t want on our email list. Here’s a sample of people we wouldn’t want to target:

  • already subscribed (we already have them, why bother them with forms?)
  • people that already converted
  • people coming from different sources of traffic
  • people who are in the process of buying from you

Exclusions rules are extremely helpful, especially when you want to go beyond the norm, and make sure you treat your visitors in a very unique way, by making sure you know in what relation are they with your website and your brand.

Having this customization in mind, exclusion rules can be used to exclude the profiles of visitors described above.

So, as you can see, you can personalize your targeting rules so that you target only the prospects, and not the clients. Isn’t that cool or what? :)

I hope you enjoyed the first part of our series, if you have any questions about the targeting rules, just drop us a comment.

Who is Winning at the Game of Marketing? Email vs Social Media Stats

People have been arguing/debating over the value of these 2 for some time now. Because of this constant debate, we decided to put some perspective into the argument. Let the numbers decide. If you are a smart marketer, you will … Continue reading

People have been arguing/debating over the value of these 2 for some time now.

Because of this constant debate, we decided to put some perspective into the argument. Let the numbers decide.

If you are a smart marketer, you will follow the data.

You can still try out new stuff before you have the data, it’s OK to experiment, but it’s even better to make sure you have overview over some of the most popular marketing channels out there.

Instead of choosing sides, we are going to provide you with some interesting statistics and let you decide which one is winning at the game of marketing: email or social media.

email_social_media

Email – old, but effective; Social Media – new, hip, ROI not so great

Depending on your industry/niche you might be inclined to like one over the other.

Email                                     VS             Social Media Stats

  1. As of 2013, there are 3.6 billion email accounts (Source)
  2. 91% of consumers check their email daily (Source)
  3. People spend 13 hours of their workweek in their email inbox. (Source)
  4. 74% of consumers prefer to receive commercial communications via email (Source)
  5. 54% of emails sent by businesses are marketing messages (Source).
  6. 60% of marketers believe email marketing produces positive ROI (Source)
  7. 66% of consumers have made a purchase online as a result of an email marketing message (Source).
  8. Email marketing has an ROI of 4,300% (Source).
  9. 17% of marketers don’t track or analyze email metrics for their organization (Source)
  10. 76% of email opens occur in the first two days after an email is sent (Source).
  1. 4.2 billion people access social media sites via mobile devices (Source)
  2. 95% Of Facebook users log into their accounts daily (Source)
  3. 27% of total U.S. internet time is spent on social networking sites. (Source)
  4. Social media produces almost double the marketing leads of trade shows, telemarketing, direct mail, or PPC. (Source: Source)
  5. 52% of marketers cite difficulties in accurately measuring ROI as their biggest source of frustration in social marketing. (Source)
  6. 52% of all marketers have found a customer via Facebook in 2013. (Source)
  7. More than 23% of marketers are investing in blogging and social media (Source)
  8. 30% of traffic from social media is from SlideShare.net (Source)
  9. 53% of social media marketers don’t measure their success. (Source)
  10. 53% say a Youtube Video influenced their purchase at least once (Source)

***

Gathering the stats for this article was very revealing.

It was funny to see to see how some people bash email for being an “old technology”, but ignore to see the ROI of it. Old technology doesn’t mean obsolete technology, and new technology doesn’t mean it’s going to be a cash-cow you can milk at your will.

We are big fans of email marketing, that’s why we’ve built PadiAct, but that doesn’t mean we don’t find social media valuable.

A smart marketer should know how to use different marketing channels to drive more conversions. Conversion isn’t as easy as 1-2-3. You need to influence decisions over multiple marketing channels.

We don’t have favorite channels, we only care about what brings in revenue.

That’s why we are going to use whatever works for us and brings in more revenue.

For us, at this moment email is way more valuable than social, but we don’t neglect the fact that social media is a new opportunity for businesses to make themselves more visible, that’s why we keep a social appearance.

Which one do you prefer? Social media or Email? Which one brings in for you more business? Which one has better ROI?

Let us know through a comment.