Back

Before you begin with Adobe AppMeasurement for JS:

  • Adobe AppMeasurement for Mobile
    This tag is now capable of both standard and mobile app tracking. As of May 2016, the Site Catalyst Mobile App tag has been deprecated in favor of this tag.
  • Adobe Enterprise Cloud ID Service Tag
    Adobe's Enterprise Cloud ID Service (aka Visitor API) is now separated from the AppMeasurement tag into a new Enterprise Cloud ID Service tag. The Adobe Enterprise Cloud ID Service tag must be loaded before the AppMeasurement tag. Be sure to bundle the tag on All Pages and place it before other Adobe tags in the Tags tab. 
  • Unsupported Plugins
    Be aware that not all SiteCatalyst plugins are supported by the new AppMeasurement for JavaScript tag. For more information, see Adobe's official list of supported plugins.

In this article,

Table of Contents Placeholder

Versions

The following code versions of AppMeasurement for JavaScript are supported:

  • 2.15.0
  • 2.14.0
  • 2.12.0
  • 2.9.0
  • 2.8.2
  • 2.7.0
  • 2.6.0
  • 2.4.0
  • 2.3.0
  • 2.1.0
  • 1.8.0
  • 1.6.3, 1.6.1, 1.6.0
  • 1.5.3, 1.5.2, 1.5.1
  • 1.4.1
  • 1.3.2
  • 1.2.2, 1.2.1
  • 1.0.1

Tag Configuration

Go to the Tag Marketplace and add the Adobe Analytics AppMeasurement for JS tag (learn more about how to add a tag).

After adding the tag, configure the following settings:

  • Code Version
    The version of the AppMeasurement.js library.
  • Device Type
    Select one of the following based on the platform of your implementation:
  • Report Suite
    The default report suite to use (may change based on value set in Dynamic Acct List)
    Reference AppMeasurement.js:  s.account
  • Server
    Data collection server.
    Reference AppMeasurement.js: s.trackingServer 
  • Server Secure
    The "https" data collection server.
    Reference AppMeasurement.js:  s.trackingServerSecure
  • Auto Event Serialization Detection
    Automatically detect event serialization within event trigger values. Must be set to "No" of your event values contain the color (:) character.
  • Auto Link Tracking
    The default selection is "Yes" and is the recommended selection. If you set this to "No", you will have to replicate the automatic link tracking via other methods, such as the Link Tracking Extension.
  • Internal Link Filters
    Used to ensure that link clicks are not reported as exit clicks to Adobe report.
    Reference AppMeasurement.js: s.linkInternalFilters
  • Run clearVars
    Clears the props, eVars, and events after each tracking call. Default: "No"
  • S-Object Name
    Default name is s. Set a different name if running multiple instances of Adobe Analytics or AppMeasurement on the page.
  • Namespace
    Only applies to 3rd party cookies (when Server and Server Secure end in 2o7.net)
    Reference AppMeasurement.js:  s.visitorNamespace
  • Enterprise Cloud ID
    If using the Visitor API supported in versions 1.3 and higher, enter your Enterprise Cloud ID here.
    Learn more about the Adobe Enterprise Cloud ID Service.

Load Rules

Load Rules determine when and where to load an instance of this tag on your site.

Recommended load rule:  All Pages.

Data Mappings

Mapping is the process of sending data from a data layer variable to the corresponding destination variable of the vendor tag. For instructions on how to map a variable to a tag destination, see Mapping Variables

The destination variables for the AppMeasurement tag are built into its data mapping toolbox in the following categories:

Standard

Map to the destinations listed in the following table to dynamically send or override the tag configuration settings.

Destination Name Description
pageName

Page name

This is not the page's URL or pathname, but should instead be something business users will recognize, such as "Home Page" or "Checkout".

channel Sections of your site
server Domain of a web page or the server that hosts the page to this destination
visitor ID

Unique visitor ID 

This ID can be up to 100 alphanumeric characters long and cannot contain a hyphen.

s_account
(Report Suite override)

Mapping to this destination overrides the report suite you set in the Tag configuration.

Custom Context Data
(contextData.myvar)

Context data allows you to define the name of the variable that you assign a particular value to. The context data provides additional detail to what SiteCatalyst traditionally passes. It also makes it easier to standardize your implementation should you need to combine data from different sites (for example). There are quite a few articles on the Internet that discuss this. How you organize your data will be to your discretion. The mapping through Tealium allows you to define those context data variables.
Context variables in general:

  • Are unlimited in the number of context variables you may define.
  • Have no character limits on what you can place in a context variable.
  • Can contain any name you prefer.
Custom Context Data With Custom Namespace
(contextData.namespace.myvar)
Use the namespace prefix to avoid conflicts in variable names. Note that namespace 'a' is reserved for Mobile implementation.

Events

Mapping for Events is a little different than mapping for the other destinations.

Use the following steps to map an event:

  1. Under Data Mappings, select your event Variable from the Variables drop-down list.
  2. Click Select Destination and go to the Event Triggers category.
  3. In the Value field, enter the value of the Variable being mapped.
    This variable becomes the trigger string.
  4. From the Trigger drop-down list, select the event you want to trigger.
    You can click the plus icon (+) to add additional value/trigger combinations.
    Map Product URL_js_to Event Trigger.jpg
Destination Name Description
Value The value of the mapped Variable that triggers the assigned event.
Trigger

The event to trigger. Select:

  • prodView for product views.
  • scOpen for opening/initializing a new shopping cart.
  • scAdd for adding an item to the shopping cart.
  • scRemove for removing an item from the shopping cart.
  • scView for viewing a shopping cart.
  • scCheckout for beginning a checkout.
  • purchase for completing an order.
  • event1 through event### to set a custom event. SiteCatalyst allows you to use 100 custom events, also referred to as success events. These usually count specific things that happen on a site and do not normally contain a value, e.g. logins and form views. Events 101-1000 are available only to library versions 1.4 and up.

Product-Level Events

SiteCatalyst provides 100 destinations for sending product-specific actions.

Destination Name Description
PRODUCTS_event1 through
PRODUCTS_event100
The product event to assign.

Value Events

SiteCatalyst provides 100 destinations for sending value events.

Destination Name Description
 VALUE_event1 through
 VALUE_event100
The value event to assign.

Props

SiteCatalyst allows you to use custom props, also called traffic variables.

Destination Name Description
 PRODUCTS_event1 through
 PRODUCTS_event100
The product event to assign.

SiteCatalyst allows you to use 75 custom props, also called traffic variables. Props contain data that is not meant to persist beyond a page view, so if you want to correlate a prop with another variable you have to make sure both variables get set on the same page. You can use Events to hold certain numeric values when passed in the product string or being serialized.

Note that props above 75 are not built-into the mapping toolbox.

Use the following steps to map a custom destinations:

  1. Map a variable to any prop destination as usual.
  2. In the text box at the top, type in your custom destination in place of the built-in destination you selected.
    Map Custom Destination.jpg
  3. Continue mapping other variables or proceed to finish.
    SiteCatalyst AppMeasurement for JS Tag Settings.jpg

mapped custom prop.png

eVars

Destination Name Description
campaign (eVar0) For campaign/promotion tracking
eVar1 through
eVar250
SiteCatalyst allows you to use 250 eVars, also called conversion variables. eVars contain data that is meant to persist beyond a single page view and can be used to correlate data from an eVar to another variable depending on how you set up your reports within Omniture. eVars usually include internal search terms, A/B testing, campaign/promotion tracking, merchandising categories, and user types.

 evar76 through evar250 are available only to library versions 1.4 and up.

Merchandising eVars

Merchandising eVars allow you to associate a product with some value in addition to the category you specify in the Products string (what is product string?).

Destination Name Description

 campaign (eVar0)

For campaign/promotion tracking

 PRODUCTS_eVar1

through

 PRODUCTS_eVar75

SiteCatalyst allows you to use 250 eVar parameters, also called conversion variables. eVars contain data that is meant to persist beyond a single page view and can be used to correlate data from an eVar to another variable depending on how you set up your reports within Omniture. eVars usually include internal search terms, A/B testing, campaign/promotion tracking, merchandising categories, and user types.

Commerce

Since the AppMeasurement tag is e-commerce enabled, it will automatically use the default E-Commerce Extension mappings. Manually mapping in this category is generally not needed unless:

  • you want to override any Extension mappings
  • Or your desired e-commerce variable is not offered in the Extension

Several SiteCatalyst variables, including the Product String, are automatically populated by the E-Commerce extension. SiteCatalyst uses the Product String to capture product information, revenue, units sold, and other pieces of information around purchases. A standard Product string looks like this:

product string.png

Best practices for the product string:

  • The semicolon (;) is a standard separator for most items in the Products string.
  • Delimit multiple Merchandising eVars with a pipe (|) character.
  • Delimit multiple product instances with a comma (,).
  • The total price is the price per unit multiplied by the quantity. The E-Commerce extension's total price ( _ctotal) output does not automatically map to the Products string.
  • SiteCatalyst's best practice is to leave the Category empty because you cannot change a product's category once you set it in SiteCatalyst. However, Tealium does allow you to set the category at the time of the conversion if changing the category later is not a concern.

Here are the e-commerce destinations built into the toolbox:

Destination Name Description Ecommerce Extension Variable
purchaseID Unique order identifier to this destination.  _corder
transactionID Correlates offline data to an online transaction. NA
state Name of the state specified in the conversion NA
zip Zip code specified in the conversion NA
Product IDs (array) Unique ID of each product in the product array  _cprod
Product Categories (array) Name of each category in the product array  _ccat
Product Quantities (array) Quantity of each product in the product array _cquan
Product Prices (array) Unit price of each product in the product array _cprice

List Variables

Use List variables when you want to contain multiple values for the same pixel request, instead of making a separate request for each value. Like eVars, List variables can persist longer than a single page view. SiteCatalyst provides three (3) list variables per report suite.

Destination Name Description
Link Tracking doneAction param (h25 only)
List 1 First list variable.
List 2 Second list variable.
List 3 Third list variable.

Mobile

Details for the setup of Mobile can be found in the following reference:

SiteCatalyst AppMeasurement for Mobile

Event Serialization

The AppMeasurement tag automatically detects event serialization within the trigger values in your Data Layer. When the tag fires, the tag's template attempts to match the trigger string mapped in your Events tab with the trigger value in the Data Layer, checking to see if either trigger contains a colon.

How it Works

  • When Event Serialization Detection (ESD) is turned ON (default setting), the template parses out the trigger value next to the colon and attempts to match the remaining string with your mapped trigger. If there is an exact match, the event is serialized.
  • When ESD is turned OFF, there is no parsing of colons. The template will attempt to match both trigger values in their entirety. This setting is highly recommended if your mapped trigger string contains a colon. Having ESD set to "no" is the only way to have an event correctly trigger off of a string with a colon (see Example below).

Whether ESD is set to "yes" or "no", serials mapped directly via the Event Serialization tab always take precedence (see Example scenario 3).

Examples

Let’s walk through a few scenarios to understand how ESD interprets a trigger string with and without a colon.

Throughout this section, we will use the term “mapped trigger” to refer your trigger string in Tealium iQ and the term “Data Layer trigger” for the trigger value found in the data layer for the page.

Mapped trigger without a colon

As an example, if you want to trigger a “ prodView” event and serialize it when the page contains “ fireEvt", you would do the following in Tealium iQ:

  1. Map the UDO variable “ serial ” to “ SERIAL_prodView” in the Event Serialization tab.
  2. Map the UDO variable “ trigger” to “ prodView” under Events
  3. Map “ fireEvt” as the trigger string for “ prodView".
    trigger without colon.jpeg

Now, imagine the following scenarios in your Data Layer.

Scenario 1: Data Layer trigger is “fireEvt” and the "serial” value is empty

var utag_data: 
{ trigger: "fireEvt", serial: ""
}

ESD ON: The template matches " fireEvt" with the mapped trigger and successfully fires " prodView" on the page, however there is no serialization.

ESD OFF: Same result as above.

A successful network call will look something like this: 

scene 1 network call .png

Scenario 2: . Data Layer trigger is “fireEvt:123” and the "serial” value is empty

var utag_data: 
{ trigger: "fireEvt:123", serial: ""
}

ESD ON: The template serializes “ 123” then matches " fireEvt" with the mapped trigger and successfully fires " prodView" on the page .

scene 2 network call.png

ESD OFF: The template fails to match " fireEvt:123" with your mapped trigger, as a result " prodView" will not fire on the page.

Scenario 3: Data Layer trigger is “fireEvt:123” and the “serial” value is “456”

var utag_data: 
{ trigger: "fireEvt:123", serial: "456"
}

ESD ON: Initially, the template serializes “ 123” and matches “ fireEvt” with your mapped trigger. Then " prodView" fires successfully and is serialized with “ 456” instead of “ 123”.

Why?
|Serial values detected via Event Serialization mapping (i.e. " 456") take precedence over those detected by ESD (i.e. " 123").

scene 3 network call.png

ESD OFF: The template fails to match " fireEvt:123" with your mapped trigger, as a result " prodView" will NOT fire on the page.

Mapped trigger with a colon

This example follows the same path as Scenario 2 above, only here your mapped trigger is “ fireEvt:123” instead of " fireEvt".

trigger with colon.png

Scenario: Data Layer trigger is “fireEvt:123”

var utag_data: 
{ trigger: "fireEvt:123", serial: ""
}

ESD ON: The template serializes “ 123” but fails to match " fireEvt" with your mapped trigger. As a result, " prodView" will not fire on the page.

ESD OFF: The template successfully matches " fireEvt:123" with your mapped trigger and " prodView" fires successfully. It is for this reason we recommend turning OFF ESD if your string contains a colon.

Release Notes

v2.15.0 Released July 15, 2019

  • Added ActivityMap scroll reach tracking to the Activity Map extension (AN-172949)
  • Added DIL 9.2 to AppMeasurement (AN-182472)

v2.9.0 Released May 24, 2018

Visitor API 3.0 or higher is required for customers using the Experience Cloud ID Service. Adobe recommends upgrading to the latest Visitor API version when associated code libraries are updated, such as at.js, AppMeasurement.js, etc.

  • Updated AppMeasurement to use the updated Visitor interface for requesting IDs. (AN-151483)
  • Corrected issue where link tracking cookie is being written after link tracking is turned off. (AN-156332)
  • Corrected issue where registerPreTrackCallback and  registerPostTrackCallback breaks callback function signature when called multiple times. (AN-158566)

v2.8.2 Released April 12, 2018

  • Updated AppMeasurement to use the updated visitor interface for requesting IDs.
  • Corrected issue with link tracking cookie.
  • Reduce AppMeasurement default cookie lifetime from five (5) years to two (2) years.
  • Supports Visitor API (aka Enterprise Cloud ID Service), version 3.1.2

v2.7.0 Released January 18, 2018

  • Deprecates support for Internet Explorer (IE), versions 6 through 9.
  • Includes DIL v7.00
  • Supports Visitor API (aka Marketing Cloud ID Service), version 3.0

v2.6.0 Released November 9, 2017

  • Fixed an issue where AppMeasurement library does not always set the correct account combination when s_gl is called. (AN-152153)
  • Inclusion of  dil.js 6.12 (Audience Manager module).
  • Supports Visitor API 2.5.0.

v2.3.0 Released August 22, 2017

  • Fixed bug where s.Util.getQueryParam was capturing #.
  • Included latest version of dil.js (v6.10).
  • Supports multiple AppMeasurement instantiation orders.
  • Supports Visitor API (aka Marketing Cloud ID Service) version 2.2.0.

v2.1.0 Released May 11, 2017

  • Supports AppMeasurement JavaScript 2.1.0
  • Supports Marketing Cloud ID Service version 2.1.0
  • Included latest version of dil.js.
  • Added support for adobe_mc_ref parameter which overrides the page referrer.
  • Added mcorgid parameter.
  • Added cp (customerPerspective) parameter.

v1.8.0 Released March 10, 2017

  • Supports AppMeasurement JavaScript 1.8.0.
  • Supports Marketing Cloud ID Service version 2.0.0.
  • Added two call hooks: s.registerPreTrackCallback and s.registerPostTrackCallback. Learn more.

v1.6.3 Released August 23, 2016

  • Fixed an issue where AppMeasurement prematurely terminated request connections. 
  • Fixed an issue causing AppMeasurement to call the wrong obfuscated method in the Visitor API.
  • Fixed an issue causing the JavaScript error: "Attribute only valid on v:image".
  • Separated the Marketing Cloud ID support (aka Visitor API) into a new Tag called the Marketing Cloud ID Service Tag. 

The Marketing Cloud ID Service Tag has to load before all other Adobe Tags (including AppMeasurement) in your profile. Without that, you'll lose visitor tracking integrity. To load the Tag first, enable the bundle the Tag on All Pages and place it before other Adobe Tags in the Tags tab. 

View full Adobe AppMeasurement release notes here.

v1.6.1 Released July 28, 2016

The following updates affect AppMeasurement's Events, Value Events, and Event Serialization:

  • Added a new Event Serialization mapping tab in the Data Mapping toolbox.
  • Added a new drop-down list in the AppMeasurement Tag configuration for turning ON/OFF Event Serialization

v1.6.1 Released July 14, 2016

  • Added new version 1.6.1
  • Supports Visitor API versions 1.5.7 and 1.5.6
  • Improved mechanism for handling link click tracking in Firefox. 
  • View full Adobe AppMeasurement release notes here.

Vendor Resources