This article describes how to set up the Adobe Analytics AppMeasurement for JS tag in your iQ Tag Management (TiQ) account.

In this article:

Table of Contents Placeholder

Tag Tips

  • To use the Adobe Experience Cloud ID Service, add the Adobe Experience Cloud ID Service tag before adding this tag.
  • Not all legacy H26 features are supported with the AppMeasurement tag.
  • Ensure that you enter the server value correctly. For example, third party servers may have 112.2o7.net or 122.2o7.net
  • To use AppMeasurement for mobile, the Tealium Mobile SDK must be implemented in your application.
  • For a list of supported plug-ins, see: AppMeasurement Plugin Support.
  • For additional information, see: About AppMeasurement for JavaScript

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:

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
    • Required.
    • Set a default value even when using mapping to dynamically set report suite.
    • The default report suite to use. which may change based on the value set in the Dynamic Acct List.
    • Reference AppMeasurement.js: s.account
  • Server
    • Required.
    • Data collection server.
    • Reference AppMeasurement.js: s.trackingServer
    • Example: metrics.tealium.com or tealiumclient.122.2o7.net
  • Server Secure
    • Required.
    • The "https" data collection server.
    • Reference AppMeasurement.js: s.trackingServerSecure
    • Example: smetrics.tealium.com or tealiumclient.122.2o7.net
  • Auto Event Serialization Detection
    • Automatically detect event serialization within trigger strings.
    • Must be set to No if your event trigger value contains the colon character (:).
  • Auto Link Tracking
    • Default value is Yes and is the recommended selection.
    • If set to No, must replicate the automatic link tracking using other methods, such as the Link Tracking Extension.
  • Internal Link Filters
    • A comma-separated list of your domains ,classified as internal, that is used to ensure that link clicks are not reported as exit clicks to Adobe report.
    • Reference AppMeasurement.js: s.linkInternalFilters
    • Example: tealium.com,tealiumiq.com
  • Run clearVars
    • Default value is No.
    • Clears the props, eVars, and events set in the global s object after each tracking request
  • S-Object Name
    • Required.
    • Default name is s.
    • Set a different name if you are running multiple instances of Adobe Analytics or AppMeasurement on the page.
  • Namespace
    • Optional.
    • The visitor namespace.
    • Only applies to third party cookies when Server and Server Secure end in 2o7.net.
    • Reference AppMeasurement.js: s.visitorNamespace
  • Experience Cloud ID
    • Optional.
    • Your Adobe Experience Cloud ID.
    • If using the Visitor API supported in versions 1.3.x and higher, enter your Enterprise Cloud ID here.
    • Learn more about the Adobe Enterprise Cloud ID Service.
  • Run Advertising Cloud Viewthrough
    • Only available for version 2.17 and up.
    • Load the Advertising Cloud Viewthrough file and send the viewthrough data.
  • Viewthrough Interval
    • Set the interval, in milliseconds, between each attempt to load the viewthrough script.
  • Viewthrough Max Tries
    • Set the maximum number of attempts to load viewthrough before running only analytics.

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 Data Mappings.

The available categories are:

Standards

Variable Description
pageName
  • Page name
  • This is not the page's URL or path name,,
  • Should instead be something business users 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.
visitorID
  • Unique visitor ID.
  • Up to 100 alphanumeric characters long.
  • Cannot contain a hyphen.
s_account
  • Report Suite Override.
  • Mapping to this destination overrides the report suite set in the Tag configuration.
linkTrackVars
  • Link Variable Override
linkTrackEvents
  • Link Event Override
Combine Link Variables
  • Values are true or false.
charSet
  • Character set
contextData.myvar
  • Custom Context Data.
  • 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.
  • Context data allows you to define the name of the variable that you assign a particular value to.
  • Provides additional detail to what SiteCatalyst traditionally passes.
  • Simplifies the ability to standardize your implementation if you need to, for example, combine data from different sites.
  • Your data organization is at your discretion, mapping through Tealium allows you to define the context data variables.
contextData.namespace.myvar
  • Custom Context Data With Custom Namespace.
  • Use the namespace prefix to avoid conflicts in variable names.
  • The namespace 'a' is reserved for mobile implementation.

Events

Mapping for events differs from 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.
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 event1000 to set a custom event.

      Events 101-1000 are available only to library versions 1.4 and up.

      • SiteCatalyst allows you to use 100 custom events, also referred to as success events.
      • These events typically count specific things that happen on a site and do not normally contain a value, such as logins and form views.

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.
  • Props above 75 are not built-into the mapping toolbox.

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.

Use the following steps to map custom destinations:

  1. Map a variable to any prop destination.
  2. In the text box at the top, type in your custom destination in place of the built-in destination you selected.
  3. Continue mapping other variables or click Done to finish.

eVars

Destination Name Description
eVar0
  • Campaign.
  • For campaign/promotion tracking
eVar1 through
eVar250
  • SiteCatalyst allows you to use 250 eVars, also called conversion variables.
  • evar76 through evar250 are available only to library versions 1.4 and up.
  • 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 typically include internal search terms, A/B testing, campaign/promotion tracking, merchandising categories, and user types.

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

eVar0

  • Campaign.
  • 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 automatically uses 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.
  • A SiteCatalyst best practice is to leave the Category empty because you cannot change the category for a product once it is set in SiteCatalyst. Tealium does; however, allow you to set the category at the time of the conversion if changing the category later is not a concern.

E-Commerce Destinations

The following e-commerce destinations are 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.
N/A
state
  • Name of the state specified in the conversion
N/A
zip
  • Zip code specified in the conversion
N/A
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

Other

Variable Description
Link Tracking - doneAction param (H25 only)
List 1  
List 2  
List 3  

Mobile

Variable Description
App ID (contextData.a.AppID)
Device Name (contextData.a.DeviceName)
Operating System (contextData.a.OSEnvironment)
Operating System Version (contextData.a.OSVersion)
Carrier Name (contextData.a.CarrierName)
Resolution (contextData.a.Resolution)
Install Date (contextData.a.InstallDate)
Launch Number (contextData.a.Launches)
Days Since First Use (contextData.a.DaysSinceFirstUse)
Days Since Last Use (contextData.a.DaysSinceLastUse)
Installs (contextData.a.InstallEvent)
Upgrades (contextData.a.UpgradeEvent)
Launches (contextData.a.LaunchEvent)
Crashes (contextData.a.CrashEvent)
Previous Session Length (contextData.a.PrevSessionLength)
Hour Of Day (contextData.a.HourOfDay)
DayOfWeek (contextData.a.DayOfWeek)
Days Since Last Upgrade (contextData.a.DaysSinceLastUpgrade)
Launches Since Ugrade (contextData.a.LaunchesSinceUpgrade)
Daily Engaged Users (contextData.a.DailyEngUserEvent)
Monthly Engaged Users (contextData.a.MonthlyEngUserEvent)
Disable Wake Tracking (disable_wake_track) [true/false]
Disable Sleep Tracking (disable_sleep_track) [true/false]

Link Tracking

Variable Description
linkType Link Type
linkName Link Name

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.

  • 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 attempts 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

This section steps through scenarios to help you understand how ESD interprets a trigger string with and without a colon.

Throughout this section, we 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 looks 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" does 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? This is because 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" does 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" does 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.

Supported Versions

The following code versions of AppMeasurement for JavaScript are supported:

  • 2.20.0
  • 2.19.0
  • 2.17.0
  • 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

Release Notes

v2.20.0 Released March 5, 2020

  • Updated IE detection to suppress JSLint warning to corrected a security-related issue.  

v2.18.0 Released February 13, 2020

  • AppMeasurement can now force cookies to include the Secure attribute by setting the writeSecureCookies variable. The entire client website must be severed securely using HTTPS to support this variable.

v2.17.0 Released August 23, 2019

  • Added support for Baidu query string reordering.
  • Corrected an issue that caused stale visitor values in hits that were queued while waiting for opt-in.

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

Version history
Revision #:
49 of 49
Last update:
‎05-04-2020 01:21 PM
Updated by: