CategoriesView All

Event

Adobe provides analytics and optimizations for mobile apps and brings together all marketing capabilities across Adobe Marketing Cloud.

mParticle supports Adobe Marketing Cloud’s Mobile Services through a combination of an embedded kit and server side forwarding. The embedded kit retrieves or generates the Adobe Marketing Cloud ID (MID) for the user, but sends no data directly to Adobe. All data forwarding is done server-to-server via GET requests to Adobe’s Data Insertion API.

Adobe Analytics Overview

If you are new to setting up Adobe Marketing Cloud’s Mobile Services, we suggest reading the following Adobe documentation before proceeding:

If you are migrating from Adobe v2 or v3 to the latest Adobe Marketing Cloud platform, please take a moment to read the following:

Native Mobile Integration

Enable the Adobe Marketing Cloud Integration

  1. Add the mParticle SDKs to your iOS and/or Android apps. See the docs for your platform here.

  2. Connect your iOS and/or Android workspaces to Adobe Marketing Cloud. You will need to provide

    • Your Tracking Server - this can be created one of two ways:

      • Create a value as defined here
      • Create a CNAME record in your domain that points to Adobe’s servers as defined here
    • Reporting Suite IDs
    • Your Marketing Cloud Organization ID
    • The following settings are available for backwards compatibility with Adobe V3.x but are not required if you are using 4.x.

      • Events
      • Props
      • eVars
      • Hier Variables

    Configuration Settings

    Setting Name Data Type Default Value Description
    Report Suite IDs string The report suite ID from Adobe settings page. Multiple IDs can be entered, separated by commas
    Tracking Server string The URL of the Adobe tracking server
    Send Messages Securely bool True If enabled, mParticle will forward all data to Adobe using SSL
    Timestamp Enabled enum Timestamps Optional Matches your Reporting Suite’s timestamp settings. A report suite can have it’s timestamps configured as one of: not allowed, required, or optional. Timestamps Optional is the default setting for all new report suites.
#### Connection Settings

| Setting Name |  Data Type    | Default Value | Platform | Description |
| ---|---|---|---|---
| User Identification | `enum` | Marketing Cloud ID | All| Type of ID to forward to Adobe. Currently, only Marketing Cloud ID is supported. |
| Marketing Cloud Organization ID | `string` | | All | Your Adobe Marketing Cloud Organization ID, available from your Adobe Marketing Cloud dashboard. |
| Context Variables | `Custom Field` | <unset> | All| Mapping of your application's event attributes to Adobe context variables |
| Events | `Custom Field` | <unset> | All| Mapping of your application's custom event names to Adobe event numbers |
| Props | `Custom Field` | <unset> | All| Mapping of your application's custom event attributes to Adobe props |
| eVars | `Custom Field` | <unset> | All| Mapping of your application's custom event attributes to Adobe eVars |
| Hier Variables | `Custom Field` | <unset> | All| Mapping of your application's screen view attributes to Adobe hier variables |
| Product Incrementors | `Custom Field` | <unset> | All| Mapping of your application's custom event names to Adobe product incrementor event numbers |
| Merchandising Variables| `Custom Field` | <unset> | All| Mapping of your application's event attributes to Adobe product merchandising |
| Page Specific Product Actions | `Custom Field` | <unset> | iOS, Android | Allows you to log eCommerce events as `trackState` (screen view), rather than `trackAction`. This is mostly useful for Promotion or Impression events.

Adobe Kit Integration

Adobe requires that data be attached to a Visitor ID (see our older Adobe integration if you’re using Visitor ID) or a Marketing Cloud ID (MID). The Adobe Marketing Cloud Kit interfaces continually with Adobe’s Marketing Cloud ID Service to retrieve an MID for the user and to keep Adobe’s record up to date with all available identifiers.

The Adobe Kit Integration can be used in tvOS and Fire TV apps as well as iOS and Android phones.

Add the Kit to your app

mParticle publishes the Adobe Marketing Cloud Kit as separate iOS and Android libraries which have a transitive dependency on the mParticle core libraries. You can add them to your app via Carthage, Cocoapods, or Gradle:

# Sample Podfile

source 'https://github.com/CocoaPods/Specs.git'

use_frameworks!

target '<Your Target>' do
    pod 'mParticle-Adobe'
end
// Sample build.gradle

dependencies {
    // Ensure the Kit version matches that of the mParticle Core SDK that you're using
    compile 'com.mparticle:android-adobe-kit:4.16.4' 
}

Reference the Apple SDK and Android SDK guides to read more about kits.

The source code for each kit is available on Github:

Retrieve MID for the current user

In addition to forwarding the MID to mParticle, the Adobe Marketing Cloud Kit also allows you to directly access the current user’s MID from your code:

MPIAdobeApi *adobe = [[MParticle sharedInstance] kitInstance:MPKitInstanceAdobe];
if (adobe) {
    //access the MID
    NSString *mid = adobe.marketingCloudID;
}
final AdobeApi adobe = (AdobeApi) MParticle.getInstance().getKitInstance(MParticle.ServiceProviders.ADOBE);
if (adobe != null) {
    //access the MID
    String mid = adobe.getMarketingCloudID();
}

Supported Features

Adobe Analytics Feature Name Adobe Analytics Feature Category Feature Description mParticle Supported? Comments
Track App States Analytics Track the state of your application. Yes
Track App Actions Analytics Actions are the events that occur in your app that you want to measure. Yes
Track App Crashes Analytics Answers to questions about how crashes are tracked and best practices for avoiding false crashes. Yes
Timed Actions Analytics Measure how long an event takes No This feature is not directly supported but developers can time events directly and pass the time in an eventLength parameter
Visitor Lifetime Value Analytics Lifetime value lets you measure and target on a lifetime value for each user. Yes
Products Variable Analytics Product variables store Product details for which an action is taking place. Yes
Video Analytics Analytics Video Analtyics is the process of collecting and aggregating video metrics. No
Geofencing and points-of-interest (POI) Location Location tracking; Automatically calculates distance to a predefined list of POI Yes mParticle supports location tracking but not geofencing; geofencing support is planned for a future release.
Experience Testing Target Create and edit A/B testing campaigns No
Audience Management Audience Audience management allows you to design tests and create audience segments to target content. No

Reference: https://marketing.adobe.com/resources/help/en_US/mobile

Supported Feature Reference

App Lifecycle tracking

Adobe Mobile Services SDK method mParticle SDK method
collectLifecycleData automatically collected

mParticle sends all app lifecycle metrics that Adobe collects.

Metric Adobe’s Configuration Additional Comments
Crashes Triggered when the application does not exit gracefully. Event is sent on application start after crash (the application is considered to crash if quit is not called). If the mParticle SDK detects a crash, a CrashEvent will be sent to Adobe.
Daily Engaged Users Triggered when the application is used on a particular day. The mParticle SDK will forward a DailyEngagedEvent the first time it sees a user within a day. To determine this, the SDK tracks “last use date” (“lud” parameter) and sends that date time along with the last use date stored by Adobe’s SDK (if any) to the mParticle server, and the forwarder will compare the last use date to the date of the current event.
First Launches Triggered on first run after installation (or re-installation). mParticle forwarder sends the min of the first run timestamp and the install timestamp stored by Adobe’s SDK on a device (if any).
Launches Triggered on every run, including crashes and installs. Also triggered on a resume from background when the lifecycle session timeout has been exceeded. mParticle forwarder sends the sum of the launch count tracked by the SDK and the previous launch count stored by Adobe’s SDK on a device (if any).
Monthly Engaged Users Triggered when the application is used during a particular month. mParticle forwards a MonthlyEngagedEvent the first time a user is seen within a month. The logic is similar to above.
Previous Session Length Reports the number of seconds that a previous application session lasted based on how long the application was open and in the foreground. mParticle calculates session length as “session end time” - “session start time” - “time spent in background”.
Upgrades Triggered on first run after upgrade (anytime the version number changes). mParticle detects app upgrades and will forward the timestamp of upgrades.

Event Tracking

The following methods are used to track state and actions:

Adobe Mobile Services SDK mParticle SDK
trackState:data: logScreen:eventData
trackAction:data: logEvent:eventData

In Adobe Mobile Services v4.x, you can map events using an Event/Attribute structure, which maps almost exactly to mParticle’s data structure.

Notes for Existing Adobe (3.x) Customers

e.Vars and s.Props are no longer needed in the Adobe Mobile Services 4.x, but you can pass Adobe legacy values for each of those by adding them to the attributes of an event.

Product Variables

The following methods are used to track commerce events:

Adobe Mobile Services SDK mParticle SDK
trackAction:data: logEvent:eventData

Product events are mapped between Adobe and mParticle as follows:

Adobe Product Events mParticle Commerce event
prodView Product.DETAIL
scCart N/A
scOpen N/A
scAdd Product.ADD_TO_CART
scRemove Product.REMOVE_FROM_CART
scCheckout Product.CHECKOUT
purchase Product.PURCHASE

LTV Tracking

Adobe Mobile Services SDK mParticle SDK Additional Comments
trackLifetimeValueIncrease logLTVIncrease mParticle SDK has a “MPProduct” object to help with logging transactions that lead to LTV increase.

The mParticle SDK can calculate the lifetime value of customers once the mParticle SDK has been added to an app. The mParticle forwards the sum of the lifetime value tracked by the SDK and the lifetime value tracked by Adobe’s SDK previously. There are a few methods that can be used to track LTV using mParticle’s SDK:

  • Use logLTVIncrease method. Any numeric value logged by this method will be automatically tracked as LTV.
  • Use logEvent or logTransaction method.

Opt-in/Opt-out Management

Adobe Mobile Services SDK mParticle SDK
Set default value via privacyStatus in a SDK config file (also has setPrivacyStatus method to change the status in the app) OptOut in iOS, setOptOut in Android

mParticle assumes that users have opt-in status by default, whereas Adobe’s SDK supports setting the default status in an SDK config file per app.

Location Tracking

Adobe Mobile Services SDK mParticle SDK
trackLocation:data: beginLocationTracking in iOS, enableLocationTracking in Android

Offline Tracking

Adobe Mobile Services SDK mParticle SDK
offlineEnabled setting in config enabled by default

The mParticle SDK always collects offline data and sends that data to the mParticle SDK server.

If the Offline Tracking Enabled setting is enabled, mParticle will includes a “ts” parameter that represents the timestamp (in seconds) of the event.

User Identification

mParticle identifies users to Adobe via the Marketing Cloud ID (mid). This ID is retrieved or generated by the Adobe Marketing Cloud Kit.

App and Device Attributes

mParticle automatically forwards standard app and device attributes to Adobe.

Web Integration

Enable the Adobe Marketing Cloud Integration

mParticle’s Adobe Analytics integration supports Adobe’s Marketing Cloud ID Service. As long as you have the mParticle Javascript SDK enabled on your website, you do not need to add any additional code to your site. The mParticle web Adobe integration will load the required Adobe javascript files — visitorAPI.js and appmeasurement.js — when you have set up the integration in the Dashboard.

Event Logging

If you want to send an event with an attribute mapped to a certain context variable, event, prop, eVar, hVar, product incrementor, or merchandising variable, you need to set up this mapping in your connection settings, then include the attribute in the Event or Product attributes object when logging an event.

Every time you log an event with the mParticle SDK, the SDK will automatically set any mapped variables on the Adobe window.s object, and call the appropriate Adobe function to log the event. The mParticle SDK then calls window.s.clearVars() in order to clear any filled in variables. This is intended to avoid sending duplicate and erroneous data on subsequent event/page logging.

Page View

In this example, we map keyword to eVar1, browser to prop1, and page to hier1:

Log the page view with the mParticle SDK:

mParticle.logPageView('test page event', {keyword: 'glasses', browser: 'safari', page: 'accessories' })

This causes the following Adobe methods to be called:

window.s.prop1 = 'safari';
window.s.eVar1 = 'glasses';
window.s.hier1 = 'accessories';
window.s.pageName = 'test page event'; // if no pageName is provided, Adobe defaults to "PageView"
window.s.t(); // logs the current window object with Adobe
window.s.clearVars(); //clears the current window object so the next event can be logged

Custom Event Logging

All custom events must be mapped. If an event is not mapped to a custom event, it will not be sent.

In this example, we map Play Song to event1, songName to eVar2, artist to eVar3, and subscription to prop2.

Log the event with the mParticle SDK:

mParticle.logEvent('Play Song', mParticle.EventType.Unknown, {songName: 'Song Cry', subscription: 'premium', artist: 'Jay-Z' })

This causes the following Adobe methods to be called:

window.s.events = 'event1'
window.s.prop2 = 'premium'
window.s.eVar2 = 'Song Cry'
window.s.eVar3 = 'Jay-Z'
window.s.linkTrackVars = 'eVar2, eVar3, prop1, events, pageName'
window.s.t();
window.s.clearVars();

eCommerce

Adobe has preset product events to which mParticle maps:

Adobe Product Events mParticle Commerce event
prodView mParticle.eCommerce.logProductAction(mParticle.ProductActionType.ViewDetail, product, attrs)
scCart N/A
scOpen N/A
scAdd mParticle.eCommerce.Cart.add(product, true)
scRemove mParticle.eCommerce.Cart.remove(product, true)
scCheckout mParticle.eCommerce.Cart.remove(product, true)
purchase mParticle.eCommerce.logPurchase(transactionAttributes, product, clearCartBoolean, attrs)

mParticle’s’s Adobe Analytics JS integration supports Product Incrementors, as well as Merchandising Variables product syntax method.

Our web integration currently does not support mapping an event attribute to an Event, so currency events that apply to all products cannot currently be used (ex. purchase-wide discount). However, adding a product attribute of discount will apply the Product Incrementor to each individual product.

As an example, for a purchase, we map discount to Adobe’s event2, and searchTerm to Adobe’s eVar4.

Log the purchase with the mParticle SDK

var iPhone = mParticle.eCommerce.createProduct('iPhone', 'SKU123', 599, 1);
var transactionAttributes1 = mParticle.eCommerce.createTransactionAttributes('ID123', null, null, 599);
mParticle.eCommerce.logPurchase(transactionAttributes1, iPhone, true);

This causes the following Adobe methods to be called:

window.s.products = "Phones;iPhone;SKU123;1;599;event2=25;eVar4=iphone 8";
window.s.linkTrackVars = ["purchaseID", "transactionID", "products", "events", "pageName"];
window.s.linkTrackEvents = "purchase";
s.events = "purchase,event2";
window.s.t();
window.s.clearVars();