Uncategorized

How can we help you?

If you’re here, based on our analytics, it’s for one of two reasons: You found some old posts we wrote about Excel nearly 10 years ago or you need help unlocking the value of your investment in Google or Adobe Analytics. For the former, we hope the content we have proves helpful, and for the latter, you have come to the right place.

We encourage you to have a look at our team, the services we offer, and our nearly twenty years of analytics thought-leadership, but we hope what you will do is pick up the phone and give us a call. Because while our world-class clients who are among the best known brands in technology, financial services, consumer packaged goods, and automotive keep us busy, we are never too busy to try and help.

Adobe Analytics, Featured, google analytics, Uncategorized

Switching from Adobe to Google? What You Should Know (Part 1)

In the past few months, I’ve had the same conversation with at least 5 different clients. After the most recent occurrence, I decided it was time to write a blog post about it. This conversation has involved a client either having made the decision to migrate from Adobe Analytics to Google Analytics 360 – or deciding to invest in both tools simultaneously. This isn’t a conversation that is new to me – I’ve had it at least a few times a year since I started at Demystified. But this year has struck me particularly because of both the frequency and the lack of awareness among some of my clients at what this undertaking actually means to a company as large as those I typically work with. So I wanted to highlight the things I believe anyone considering a shift like this should know before they jump. Before I get into a discussion about the feature set between the tools, I want to note two things that have nothing to do with features and the tools themselves.

  • If you’re making this change because you lack confidence in the data in your current tool, you’re unlikely to feel better after switching. I’ve seen far too many companies that had a broken process for implementing and maintaining analytics tracking hope that switching platforms would magically fix their problems. I have yet to see a company actually experience that magical change. The best way to increase confidence in your data is to audit and fix your implementation, and then to make sure your analysts have adequate training to use whichever tool you’ve implemented. Switching tools will only solve your problem if it is accompanied by those two things.
  • If you’re making this change to save money, do your due diligence to make sure that’s really the case. Google’s pricing is usually much easier to figure out than Adobe’s, but I have seen strange cases where a company pays more for Google 360 than Adobe. You also need to make sure you consider the true cost of switching – how much will it take to start over with a new tool? Have you included the cost of things like rebuilding back-end processes for consuming data feeds, importing data into your internal data warehouse, and recreating integrations with other vendors you work with?

As we take a closer look at actual feature differences between Adobe and Google, I want to start by saying that we have many clients successfully using each tool. I’m a former Adobe employee, and I have more experience with Adobe’s tool’s than Google’s. But I’ve helped enough companies implement both of these tools to know that a company can succeed or fail with either tool, and a company’s processes, structure, and culture will be far more influential in determining success than which tool you choose. Each has strengths and features that the other does not have. But there are a lot of hidden costs in switching that companies often fail to think about beforehand. So if your company is considering a switch, I want you to know things that might influence that decision; and if your management team has made the decision for you, I want you to know what to expect.

A final caveat before diving in…this series of posts will not focus much on GA4 or the Adobe Experience Platform, which represent the future of each company’s strategy. There are similarities between those two platforms, namely that both open allow a company to define its own data schema, as well as more easily incorporate external data sources in the reporting tool (Google’s Analysis tool or Adobe’s Analysis Workspace). I’ll try to call out points where these newer platforms change things, but my own experience has shown me that we’re still a ways out from most companies being ready to fully transition from the old to the new platforms.

Topic #1: Intended Audience

The first area I’d like to consider may be more opinion than fact – but I believe that, while neither company may want to admit it, they have targeted their analytics solutions to different markets. Google Analytics takes a far more democratic approach – it offers a UI that is meant to be relatively easy for even a new analyst to use. While deeper analysis is possible using Data Studio, Advanced Analysis, or BigQuery, the average analyst in GA generally uses the reports that are readily available. They’re fast, easy to run, and offer easily digestible insights.

On the other hand, I frequently tell my clients that Adobe gives its customers enough rope to hang themselves. There tend to be a lot more reports at an analyst’s fingertips in Adobe Analytics, and it’s not always clear what the implications are for mixing different types of dimensions and metrics. That complexity means that you can hop into Analysis Workspace and pretty quickly get into the weeds.

I’ve heard many a complaint from analyst with extensive GA experience that join a company that uses Adobe, usually about how hard it is to find things, how unintuitive the UI is, etc. It’s a valid complaint – and yet, I think Adobe kind of intends for that to be the case. The two tools are different – but they are meant to be that way.

Topic #2: Sampling

Entire books have been written on Google Analytics’ use of sampling, and I don’t want to go into that level of detail here. But sampling tends to be the thing that scares analysts the most when they move from Adobe to Google. For those not familiar with Adobe, this is because Adobe does not have it. Whatever report you run will always include 100% of the data collected for that time period (one exception is that Adobe, like Google, does maintain some cardinality limits on reports, but I consider this to be different from sampling).

The good news is that Google Analytics has dramatically reduced the impact of sampling over the years, to the point where there are many ways to get unsampled data:

  • Any of the default reports in Google’s main navigation menus is unsampled, as long as you don’t add secondary dimensions, metrics, or breakdowns.
  • You always have the option of downloading an unsampled report if you need it.
  • Google 360 customers have the ability to create up to 100 “custom tables” per property. A custom table is a report you build in advance that combines all the dimension and metrics you know you need. When you run reports using a custom table you can apply dimensions, metrics, and segments to the report in any way you choose, without fear of sampling. They can be quite useful, but they must be built ahead of time and cannot be changed after that.
  • You can always get unsampled data from BigQuery, provided that you have analysts that are proficient with SQL.

It’s also important to note that most companies that move from Adobe to Google choose to pay for Google 360, which has much higher sampling thresholds than the free version of Google Analytics. The free version of GA turns on sampling once you exceed 500,000 sessions at the property level for the date range you are using. But GA 360 doesn’t apply sampling until you hit 100,000,000 sessions at the view level, or start pulling intra-day data. So not only is the total number much higher, but you can also structure your views in a way that makes sampling even less of an issue.

Topic #3: Events

Perhaps one of the most difficult adjustments for an analyst moving from Adobe to Google – or vice-versa – is event tracking. The confusion stems from the fact that the word “event” means something totally different in each tool:

  • In Adobe, an event usually refers to a variable used by Adobe Analytics to count things. A company gets up to 1000 “success events” that are used to count either the number of times something occurred (like orders) or a currency amount associated with a particular interaction (like revenue). These events become metrics in the reporting interface. The equivalent would be a goal or custom metric in Google Analytics – but Adobe’s events are far more useful throughout the reporting tools than custom metrics. They can also be serialized (counted only once per visit, or counted once for some unique ID).
  • In Google, an event refers to an interaction a user performs on a website or mobile app. These events become a specific report in the reporting interface, with a series of different dimensions containing data about the event. Each event you track has an associated category, action, label, and value. There really is no equivalent in Adobe Analytics – events are like a combination of 3 props and a corresponding success event, all rolled up into one highly useful report (unlike the custom links, file download, and exit links reports). But that report can often become overloaded or cluttered because it’s used to report on just about every non-page view interaction on the site.

If you’ve used both tools, these descriptions probably sound very unsophisticated. But it can often be difficult for an analyst to shift from one tool to the other, because he or she is used to one reporting framework, and the same terminology means something completely different in the other tool. GA4 users will note here that events have changed again from Universal Analytics – even page and screen views are considered to be events in GA4, so there’s even more to get used to when making that switch.

Topic #4: Conversion and E-commerce Reporting

Some of the most substantial differences between Adobe and Google Analytics are in their approach to conversion and e-commerce reporting. There are dozens of excellent blog posts and articles about the differences between props and eVars, or eVars and custom dimensions, and I don’t really want to hash that out again. But for an Adobe user migrating to Google Analytics, it’s important to remember a few key differences:

  • In Adobe Analytics, you can configure an eVar to expire in multiple ways: after each hit, after a visit/session, to never expire, after any success event occurs, or after any number of days. But in Google Analytics, custom dimensions can only expire after hits, sessions, or never (there is also the “product” option, but I’m going to address that separately).
  • In Adobe Analytics, eVars can be first touch or last touch, but in Google Analytics, all custom dimensions are always last touch.

These are notable differences, but it’s generally possible to work around those limitations when migrating to Google Analytics. However, there is a concept in Adobe that has virtually no equivalent in Google – and as luck would have it, it’s also something that even many Adobe users struggle to understand. Merchandising is the idea that an e-commerce company might want to associate different values of a variable with each product the customer views, adds to cart, or purchases. There are 2 different ways that merchandising can be useful:

  • Method #1: Let’s consider a customer that buys multiple products, and wants to use a variable or dimension to capture the product name, category, or some other common product attribute. Both Adobe and Google offer this type of merchandising, though Google requires each attribute to be passed on each hit where the product ID is captured, while Adobe allows an attribute to be captured once and associated with that product ID until you want it to expire.
  • Method #2: Alternatively, what if the value you want to associate with the product isn’t a consistent product attribute? Let’s say that a customer finds her first product via internal search, and her second by clicking on a cross-sell offer on that first product. You want to report on a dimension called “Product Finding Method.” We’re no longer dealing with a value that will be the same for every customer that buys the product; each customer can find the same product in different ways. This type of merchandising is much easier to accomplish with Adobe than with Google I could write multiple blog posts about how to implement this in Adobe Analytics, so I won’t go into additional detail here. But it’s one of the main things I caution my Adobe clients about when they’re considering switching.

At this point, I want to highlight Google’s suite of reports called “Enhanced E-commerce.” This is a robust suite of reports on all kinds of highly useful aspects of e-commerce reporting: product impressions and clicks, promotional impressions and clicks, each step of the purchase process from seeing a product in a list, to viewing a product detail page, all the way through checkout. It’s built right into the interface in a standardized way, using a standard set of dimensions which yields a et of reports that will be highly useful to anyone familiar with the Google reporting interface. While you can create all the same types of reporting in Adobe, it’s more customized – you pick which eVars you want to use, choose from multiple options for tracking impressions and clicks, and end up with reporting that is every bit of useful but far less user-friendly than in Google’s enhanced e-commerce reporting.

In the first section of this post, I posited that the major difference between these tools is that Adobe focuses on customizability, while Google focuses on standardization. Nowhere is that more apparent than in e-commerce and conversion reporting: Google’s enhanced e-commerce reporting is simple and straightforward. Adobe requires customization to accomplish a lot of the same things, but while layering on complex like merchandising, offers more robust reporting in the process.

One last thing I want to call out in this section is that Adobe’s standard e-commerce reporting allows for easy de-duplication of purchases based on a unique order ID. When you pass Adobe the order ID, it checks to make sure that the order hasn’t been counted before; if it has, it does not count the order a second time. Google, on the other hand, also accepts the order ID as a standard dimension for its reporting – but it doesn’t perform this useful de-duplication on its own. If you want it, you have to build out the functionality as part of your implementation work.

Here’s a quick recap on what we’ve covered so far:

FeatureGoogle AnalyticsAdobe
SamplingStandard: Above 500,000 sessions during the reporting period

360: Above 100,000,000 sessions during the reporting period

Does not exist
CardinalityStandard: 50,000 unique values per report per day, or 100,000 uniques for multi-day tables

360: 1,000,000 unique values per report per day, or 150,000 unique values for multi-day tables

500,000 unique values per report per month (can be increased if needed)
Event TrackingUsed to track interactions, using 3 separate dimensions (category, action, label)Used to track interactions using a single dimension (i.e. the “Custom Links” report)
Custom Metrics/Success Events200 per property

Can track whole numbers, decimals, or currency

Can only be used in custom reports

1,000 per report suite

Can track whole numbers, decimals, or currency

Can be used in any reports

Can be serialized

Custom Dimensions/Variables200 per property

Can be scoped to hit, session, or user

Can only be used in custom reports

Can only handle last-touch attribution

Product scope allows for analysis of product attributes, but nothing like Adobe’s merchandising feature exists

250 per report suite

Can be scoped to hit, visit, visitor, any number of days, or to expire when any success event occurs

Can be used in any report

Can handle first-touch or last-touch attribution

Merchandising allows for complex analysis of any possible dimension, including product attributes

E-Commerce ReportingPre-configured dimensions, metrics, and reports exist for all steps in an e-commerce flow, starting with product impressions and clicks and continuing through purchasePre-configured dimensions and metrics exist all steps in an e-commerce flow, starting with product views and continuing through purchase

Product impressions and clicks can also be tracked using additional success events

This is a good start – but next week, I’ll dive into a few additional topics: pathing, marketing channels, data import/classifications, and raw data integrations. If it feels like there’s a lot to keep track of, it should. Migrating from one analytics tool to another is a big job – and sometimes the people who make a decision like this aren’t totally aware of the burden it will place on their analysts and developers.

Photo credits: trustypics is licensed under CC BY-NC 2.0

Tag Management, Uncategorized

Thankful Launch Features

In honor of Thanksgiving last week I wanted to take a moment to provide a possibly odd mashup between holiday and tag management systems. When I’m converting an implementation from Adobe DTM to Adobe Launch there are a few small features that I’m grateful Adobe added to Launch. Here they are in no particular order…

Better Support for the S Object

Adobe Analytics implementations have traditionally leveraged an ‘s’ global object. The standard setup in DTM would either obfuscate the object that Adobe Analytics used or just not make it globally scoped. This could be annoying when you wanted some other script to use the ‘s’ object. You can force DTM to use the ‘s’ object, but then you would lose some features like the “Managed by Adobe” option for your app measurement code. Here is the DTM setup:

Now in Launch you can opt to “make tracker globally accessible” in your extension configuration.

This will create the ‘s’ object at the window scope so you can have other scripts potentially reference the object directly. With this you get the added benefit of future library updates being easier. Having scripts that directly reference the ‘s’ object isn’t something you should plan on leveraging heavily. However, depending what you are needing while migrating it sure can be useful.

Ordering Tags

When you have an implementation with dependencies between tags the ordering is important. In DTM you had some ordering available by using different event types on the page (top of page, page bottom, DOM ready) but no supported ordering at the time of a single event (although I did once find an unsupported hack for this).

With Launch the ordering is built right into the event configuration of your rules.

It is pretty simple. The default number is 50. If you need something to run earlier on the same event just give it a lower number.

Modifying default values sometimes make me nervous, though, so if you do change the number from 50 just do yourself a favor and update the event name and even the rule name to reflect that. Because my names often represent a list of attributes, I’ll just add “order 10” to the end of the name.

Link Launch to DTM Embed Code

When you configure environments in Launch you will get new embed code to implement on your site. If you were on DTM for a long time and had a bunch of internal or agency groups implement DTM across many different applications then chances are making a global code updates like this is tough! Fortunately, Launch has a feature that allows you to simply update your old DTM payload with the new Launch logic without making all those updates. When creating a new production environment you can just add your DTM embed code to the field shown below. Once that is done, your production Launch code will also publish to the old DTM embed file as well. With this any site on the old or new embed code will have the same, consistent code. Yay!

So what’s one of your favorite Launch features? Comment below!

Adobe Analytics, Uncategorized

Daily Averages in Adobe Analytics

Traditionally it has been a tad awkward to create a metric that gave you a daily average in Adobe Analytics. You either had to create a metric that could only be used with a certain time frame (with a fixed number of days), or create the metric in Report Builder using Excel functions. Thankfully, with today’s modern technology we are better equipped to do basic math ;). This is still a bit awkward, but should be easy for advanced users to create a metric that others can easily pull into their reports.

This approach takes advantage of the Approximate Count Distinct function to count the number of days your metric is seen across. The cool thing about this approach is that you can then use the metric across any time range and your denominator will always be right. Here’s how it would look in the calculated metric builder for a daily average of visits:

 

The most important part of this is the red section which is the APPROXIMATE COUNT DISTINCT function. This asks for a dimension as the only argument into which you would plug the “Day” dimension.

Now what’s up with the ROUND function in yellow around that? Well, as the name indicates, the distinctness of the count is approximate and doesn’t necessarily return a whole number like you would expect. To help it out a bit I just use the ROUND function to ensure that it is a round number. From what I have seen so far this is good enough to make the calculation accurate. However, if it is off by more than .5 this could cause problems, so keep an eye open for that and let me know if this happens to you.

With this metric created you can now use this in your reporting to show a daily average along with your total values:

Weekday and Weekend Averages

You can also use a variation of this to give you averages for just the weekday or weekend. This can be especially useful if your company experiences dramatic shifts in traffic on the weekend, and you don’t want the usual weekly trend to throw off your comparisons. For example, if I’m looking at a particular Saturday and I want to know how that compares to the average, it may not make sense to compare to the average across all days. If the weekday days are really high then they would push the average up and the Saturday I’m looking at will always seem low. You could also do the same for certain days of the week if you had the need.

To do this we need to add just a smidge bit more to the metric. In this example, notice that the calculation is essentially the same. I have just wrapped it all in a “Weekend Hits” segment. The segment is created using a hits container where the “Weekday/Weekend” dimension is equal to “Weekend”.

Here’s how the segment would look:

And here is the segment at play in the calculated metric:

With the metric created just add it to your report. Now you can have the average weekend visits right next to the daily average and your total. You have now given birth to a beautiful little metric family. Congratulations!

Caution

Keep in mind that this will count the days where you have data. This means your denominator could be deflated if you use this to look at a site, dimension, segment or combination that doesn’t get data every day. For example, let’s say you want to look at the daily average visits to a page that gets a tiny amount of traffic. If over 30 days it just has traffic for 28 of those days then this approach will just give the average over 28 days. The reason for this is that the function is counting the line items in the day dimension for that item. If the day doesn’t have data it isn’t available for counting.

In most cases this will likely help you. I say this mainly because date ranges in AA default to “This Month”. If you are in the middle of the current month, then using the total number of days in your time range would throw the calculations off. With this approach, if you are using “This Month” and you are just on the 10th then this approach will use 10 days in the calculation. Cool, eh?

Uncategorized

Chrome Network Filtering Tip for Analytics

When debugging analytics there are lots of tools you can use. Pretty much anything that can look at the HTTP requests will do something useful. Personally, I like to just use the Network tab in Chrome Developer Tools most of the time. This gives me lots of flexibility to look at any tag as I switch between Adobe Analytics (AA), Google Analytics (GA), Floodlights, Marekto, etc, etc. It is also helpful if I’m trying to investigate how analytics is impacted by site issues as I delve into redirects or iframes.

Basic Network Filtering

When working across all these requests one useful bit of know-how is filtering the Network tab using RegEx. I have found this especially handy in GA implementations where I may be taking advantage of non-interaction events to track scrolling or impression information of some sort. This can cause a single page to have quite a few entries in the Network tab. In this example setup, activity across two pages looked something like this (notice I’m already filtering for “collect” which is a standard part of a Universal Analytics GA hit):

If I’m wanting to look at certain types of requests (such as only page view hits, event hits, or hits with certain values) then this view can be a bit cumbersome to work with. I may find myself taking extra time just flipping through requests to find the one I’m interested in.

Bring on the RegEx

To make this a bit easier you can just apply RegEx to the filter field. Once upon a time Chrome had a checkbox you had to check for this to work. Now you just need to use slashes around your expression like so:

This example using /collect.*scroll/ will just filter for my scroll events. A few other expressions to consider are:

  • GA pageview hits: /collect.*t=pageview/
  • GA event hits: /collect.*t=event/
  • AA custom link requests /b\/ss.*pe=lnk_o/
  • AA page hits: /b\/ss(?!.*pe=)/

Extra Considerations

Going back to the scroll example…these events have an event category of “page scroll”. I could be more specific and do something like /collect.*ec=page scroll/ …except that this just wont work. Keep in mind that you are now filtering based on the request URL so you need to keep URL encoding in mind. We would have to modify this expression to /collect.*ec=page%20scroll/. Notice the space is replaced by %20 which is the URL encoding for a space.

Some of these examples could be unnecessarily complicated. Often filtering for “pageview” or “t=pageview” is unique enough. But, hey, you have more options now.

Another catch is this doesn’t work with POST requests since in the case of a POST the values are passed in the payload instead of the URL. POST is used by AA and GA if the URL is going to be too long so expect that to crop up at times where you are just sending a lot of data.

Adobe Analytics, Reporting, Uncategorized

Report Suite ID for Virtual Report Suites

As I have helped companies evaluate and migrate to using virtual report suites (typically to avoid the cost of secondary server calls or to filter garbage data) there will come a point where you will need to shift your reports to using the new virtual report suite instead of the old report suite. How you make that update varies a bit deepening on what tool is generating the report. In the case of Report Builder reports the migration takes a low level of effort but can be tricky if you don’t know where to look. So here’s some help with that 🙂

If you have used Report Builder you may be familiar with the feature that lets you use an Excel cell containing a report suite ID as an input to your Report Builder request. Behold, the feature:

Now, it is easy to know what this RSID is if you are the one that set up your implementation and you specified the RSID or you know where to find it in the hit being sent from your site. However, for VRSs you don’t get to specify your RSID as directly. Fortunately Adobe provides a list of all your RSIDs on an infrequently-used page in your admin settings. Just go to Admin>Report Suite Access:

There you will see a list of all your report suites including the VRSs. The VRSs start with “vrs_<company name>” and then are followed by a number and something similar to the initial name you gave your VRS (yellow arrow). Note that your normal report suites are in the list as well (orange arrow).

Now use that value to replace the RSID that you once used in your Report Builder report.

Keep in mind, though, that this list is an admin feature so you may also want to make a copy of this list that you share with your non-admin users…or withhold it until they do your bidding. Up to you.