Tips for Implementing Adobe Mobile Analytics
Joe Donenfeld
Joe Donenfeld

Tips for Implementing Adobe Mobile Analytics

Joe Donenfeld, Senior Product Strategist

This blog is a guide to Adobe Mobile Analytics. It is targeted to those already familiar with Adobe Web Analytics (Omniture/SiteCatalyst).

Our team has experience successfully implementing Adobe Web Analytics (Omniture/SiteCatalyst) over a range of web products. However, when we were originally asked to create an implementation plan for a mobile app using Adobe Mobile Services, we found the slight differences substantial and lacking in documentation. We figured other analysts and developers implementing Adobe Analytics (Omniture/SiteCatalyst) were likely asking the same questions. This blog is an accumulation of the questions we asked ourselves and the answers that we found most helpful.

Where do I login and what reporting tool do I use for Adobe Mobile App Analytics?

You can use the normal Adobe Omniture Web Analytics interface, but most of your setup and variable mapping will happen in the Adobe Mobile Services interface, as well as limited reporting.

Should I decide page names first?

Personally, it’s always easier to decide page names first. With Omniture Mobile App Analytics, you do this using States. By choosing the page names first, you’re in a position to design the actions around the pages they occur in, making it easier for engineers to implement and QA the tags.

Where are the Custom Conversion Variables (eVars), Custom Traffic Variables (Props), and Success Events in Adobe Mobile App Analytics?

Omniture for Websites has three basic types of custom events: Custom Conversion Variables (eVars), Custom Traffic Variables (Props), and Success Events (for differences between Prop’s and eVar’s checkout slide 4 on this great presentation). On websites these variables are set to fire within the site.

Omniture for Mobile Apps decided, with newest mobile SDK (4.0), that instead of implementing these three different types of variables directly into the app, actions variables are implemented and mapped to the custom variables in the Omniture Mobile Interface.

What is the difference between basic actions and custom actions?

One might use a basic action to demonstrate that something happened, but a custom event to show what happened. A basic action might tell you how many times someone clicked the “Buy” button, but with the custom action you will be able to see how many times the “Buy” button was selected for each product. In Adobe terms, an action is more closely correlated to an event, while a custom action is more correlated to a custom conversion or traffic variable.

  • Basic actions will always have the key “a.action” and have a static value. Ex. When a user clicks the “Buy” button on a product detail page: “a.action=Product Buy Selected” might fire.
  • A custom action has both a custom key and value Ex. When a user clicks the “Buy” button on a product detail page: “a.ProductBuy=[Insert Product Name]” might fire.

This code snippet outlines how we handle actions and custom actions in Swift:

internal func analyticsLogAction(action: String, value: String)
{
// Automatically handles `a.action : SomeValue`
if action == "a.action" {
ADBMobile.trackAction(value, data: nil)
} else {
// Pass nil to disable default `a.action` handling above.
// Instead, pass your action in the data dictionary.
let data = [action.rawValue: value]
ADBMobile.trackAction(nil, data: data)
}
}

Now that we know we are tracking actions for development purposes, how do we map these back to eVars, Props, and Events to get the full value out of Omniture?

In the Adobe Mobile Services Interface, select the profile you would like to work with, then select “Manage App Settings” → “Manage Variables and Metrics.” There you can map actions appearing in your app to Success Events, Traffic, and Conversion variables.

adobeanalytics

There are three big benefits to this:

  1. Developers don’t have to worry about implementing three different types of variables, they only have to worry about actions and they are mapped to variables within the Omniture Mobile Analytics interface.
  2. Unlike in Web, in Mobile when you want to add new tracking you have to wait for a new release to add the code. With action mapping, data only appears in the Adobe interface when it’s mapped. This means not everything you track has to appear in the interface. It makes it easier to track more as insurance, knowing it will not clog the interface.
  3. This also means you can set any action or custom action to any type of variable (eVar, Prop, or Event). For example, let’s say you have a custom action, “a.articlename” that tracks the name of articles clicked on. You can map it to an eVar so you have a conversion report detailing what articles were tapped, and a Custom Metric (event) that maps how many total articles were tapped (it will count the total times the custom action “a.articlename” was fired).

How do I perform Quality Assurance (QA) on my Adobe Analytics (Omniture/SiteCatalyst) Mobile Tracking?

We use Adobe Bloodhound and have found it to be exceptional. You can download it on this page (scroll down until you see “Adobe Bloodhound” and download dmg). Our engineers have also found it helpful for development as it works with both mobile devices and simulators.

Helpful hint for Android users: we found if you set your proxy to manual it works better than auto (see below for more instructions).

How do I connect my iOS device to Bloodhound?

  1. Download the Desktop app by following the instructions on this page (scroll down until you see “Adobe Bloodhound” and download dmg).
  2. Make sure your phone and computer are on the same wifi
  3. Go to your setting on your iOS device click the “i” icon next to the wifi you’re using
  4. Move “HTTP Proxy” to “Auto”
  5. On the Bloodhound app on your desktop, you should see a URL on top of the window. Enter this URL into the “URL” field of HTTP PROXY on your iOS device
  6. Now you can open any app with an Adobe Mobile implementation in and hits should begin to appear in your Bloodhound desktop app

How do I connect my Android device to Bloodhound?

Note: The following steps were executed on a Samsung Galaxy Note 4 and may be different on other Android devices

    1. Download the Desktop app by following the instructions on this page.
    2. Make sure your phone and computer are on the same wifi
    3. Go to your wifi settings and hold on the wifi you are on and select “modify network configuration”
    4. Go to the bottom of the menu and select “show advanced options”
    5. Select “proxy” dropdown and select “manual”
    6. On the Bloodhound app on your desktop, you should see a URL on top of the window. Input the set of numbers after “http://” and before “:” into “Proxy Host Name” in your Android manual proxy settings and the number after “:” and before “/pac” into “Proxy Port” in your Android manual proxy settings
    7. Now you can open any app with an Adobe Mobile implementation in and hits should begin to appear in your Bloodhound desktop app.

Why does Bloodhound stop working when I enable HTTPS/SSL?

In order for Bloodhound to work when you have HTTPS/SSL enabled follow these instructions.

Note that the proxy url on the top of the Bloodhound interface can change when you reconnect to wifi, so if you have any issues (don’t see tags) make sure you are seeing the same numbers at the top of the Bloodhound app in your desktop as you’re seeing in the HTTP Proxy on your phone.

Additional Documentation