Skip to content

Latest commit

 

History

History
489 lines (346 loc) · 20.7 KB

analytics-event-reference.md

File metadata and controls

489 lines (346 loc) · 20.7 KB

Analytics event reference

Internal events for Adobe Analytics

In addition to the Analytics hits that are sent as a result of the track call, the Adobe Experience Platform SDKs also track some internal events that are based on the communication with other extensions.

Here is a list of the events by extension:

Lifecycle extension

Here are the Analytics events in the Lifecycle extension:

Install event

The SDK tracks the application install details when Lifecycle is enabled. These details include the install date and the daily engaged/monthly engaged user badges.

Launch event

The SDK tracks every new launch of the application when lifecycle is enabled.

A launch is considered to be new when the following conditions are met:

  • The application is reopened from the background after the configured session timeout.
  • The application is opened after a force close.

Launch data includes information about the application's number of launches, days since first run, days since last use, user daily/monthly engaged badges, and other lifecycle metrics. We also track the application version upgrades.

Crash event

If your application is terminated without having first been backgrounded, the SDK reports a crash the next time your app is launched. If the backdateSessionInfo flag is enabled in your configuration, this crash is sent as an individual hit. If the flag is not enabled, the crash is sent as part of the launch event.

SessionInfo

This hit contains information about the previous launch session, such as the session length. This information is sent as an individual hit if the backdateSessionInfo flag is enabled in your configuration. If the flag is not enabled, the information is sent as part of the launch event.

Identity extension

The following Analytics event is triggered when the Identity extension is enabled:

Push

The SDK tracks changes in the user's push notifications preference, and a new hit is sent after the user opts in or out for push notifications.

Messages extension

The following Analytics event is triggered when the Messages extension is enabled:

In-App message

The SDK tracks the following metrics for your in-app messages:

  • For Full Screen and Alert style in-app messages:
    • Impressions: when user triggers an in-app message.
    • Click throughs: when user presses the Click-through button.
    • Cancels: when user presses the Cancel button.
  • For local (remote) notifications:
    • Impressions: when user triggers the notification.
    • Opens: when user opens app from the notification. This will be tracked with the trackAdobeDeepLink method.

Target extension

The Analytics event in the Target extension is AnalyticsForTarget. The SDK forwards Target's data to Analytics when A4T is enabled in Target Services.

Events handled by Analytics

The following events are handled by the Analytics extension:

Analytics content request

This event is a request to complete processing on the Analytics hits queue and can be used in one of the following situations:

  • When a new Analytics hit is sent to the server.
  • When all the Analytics hits are sent, regardless of the batching settings.
  • When all the Analytics hits that are queued are cleared but are not yet sent.
  • When you get the current number of Analytics hits in the queue.

The Analytics extension receives this event with the following keys, and the extension processes the keys:

  • action/state - gets the Analytics request data and processes the hit.
  • clearhitsqueue - clears the Analytics hit database.
  • forcekick - sends all the hits in database.
  • getqueuesize - retrieves the current number of queued hits in the database. This is a paired event that is associated with a response callback.

Tip: The keys are optional, but there should be at least one key specified at a time (action/state/context data) for the hit to be processed.

This event is generated by:

Event details

Event Type Event Source Paired
com.adobe.eventType.analytics com.adobe.eventSource.requestContent No

Data payload definition

The payload definition is composed of the following:

Key Value Type Optional Description
action String Yes The action name value.
state String Yes The state name value.
contextdata Map<String, String> Yes The additional context data parameters.
trackinternal Boot Yes Bool indicating whether this is an internal Analytics hit that is generated by the SDK.
forcekick Bool Yes Bool indicating whether this is a request for sending all Analytics hits.
clearhitsqueue Bool Yes Bool indicating whether this is a clear hits queue event.
getqueuesize Bool Yes Bool indicating whether this is a request for getting current number of queued hits.

Event data examples

Track request

Here is an example of event data for a track request:

{
  "action": "clicked add button",
  "state": "cart page",
  "contextdata": {
    "key1": "value1",
    "key2": "value2"
  },
  "trackinternal": false
}

Event data example

Send all Analytics hits request

{
  "forcekick": true
}

Event data example

Clear all the Analytics hits request

{
  "clearhitsqueue": true
}

Event data example

Get queue size request

{
  "getqueuesize": true
}

Analytics request identity

This event is responsible for fetching the Analytics tracking identifier (AID) and custom visitor identifier (VID) from the Analytics extension and is generated in the Analytics getTrackingIdentifier and getCustomVisitorIdentifier calls.

After the Analytics identity request event is received, the Analytics extension completes one of the following tasks:

  • Checks the persistence for the saved AID and VID.
  • If nil, creates a sync network request to the Analytic server to retrieve the AID.
  • Dispatches an Analytics Identity Response Event with the AID and VID value.

Data payload definition

No key is required for the Analytics request event.

Event details

Event Type Event Source Paired
com.adobe.eventType.analytics com.adobe.eventSource.requestIdentity Yes

Configuration response content

The data property in this event is used by each extension to modify its current settings. Each extension is responsible for reading the part of the data property in which it is concerned.

This event will be generated in the following scenarios:

  • Initial config requested by the customer.
  • Configuration modified (remote update or local developer action).
  • In response to a configuration request event with the config.getData data key.

For more information about the data payload definition for this event, see the Configuration Keys topics in each extension section.

Data payload definition

The Analytics extension will read the following keys from the configuration event:

Key Value Type Optional Description
analytics.server String No The Analytics server
analytics.rsids String No The Analytics report suites separated by commas.
analytics.batchLimit Int Yes The hit batching settings, and the default is 0.
analytics.aamForwardingEnabled Bool Yes Indicates whether Audience Manager forwarding is enabled. By default, this option is disabled.
analytics.offlineEnabled Bool Yes Indicates whether Analytics offline batching is enabled. By default, this option is disabled.
lifecycle.backdateSessionInfo Bool Yes Indicates whether Analytics should backdate the lifecycle SessionInfo hit. This flag is used when analytics.offlineEnabled is also enabled. By default, this option is disabled.
analytics.referrerTimeout Int Yes Indicates the number of seconds that the SDK will wait for referrer information to arrive. By default, this value is 0.
experienceCloud.org String No The Experience Cloud organization ID.
global.privacy String Yes Contains the mobile privacy status settings.

Event data example

{
  "experienceCloud.org": "3CE342C75100435B0A490D4C@AdobeOrg",
  "analytics.rsids": "mobilesamplersid",
  "analytics.server": "obumobile1.sc.omtrdc.net",
  "analytics.aamForwardingEnabled": false,
  "analytics.offlineEnabled": true,
  "analytics.batchLimit": 0,
  "global.ssl": false,
  "global.privacy": "optedin",
  "global.timezone": "PDT",
  "global.timezoneOffset": -420,
  "lifecycle.sessionTimeout": 300,
  "lifecycle.backdateSessionInfo": false
}

Acquisition referrer information response

This event is the response from the Acquisition extension for the referrer information request event. The event is generated by the Acquisition extension after the request event for the referrer information is received by the extension, and the information is retrieved by the extension. Analytics listens to the referrer information and creates a analytics hit with data from the install lifecycle event.

Event details

Event Type Event Source Paired
com.adobe.eventType.acquisition com.adobe.eventSource.responseContent No

Data payload definition

Here are the key-value pairs in this event:

Key Value Type Optional Description
contextdata Map No The data value contains the key-value pairs that define the referrer information that is collected by the Acquisition extension.

Here are the standard key-value pairs that are defined in the SDK:

  • campaign
  • source
  • medium
  • term
  • content
  • trackingCode
  • contextData
  • adobeData

The data might contain other custom key-value pairs that are not defined as standard.

{% hint style="info" %} All of the key-value pairs are optional. {% endhint %}

Sample event payload

{
  "contextdata": {
    "campaign": "testCampaign",
    "source": "sampleSource",
    "contextData": {
      "contextDatakey": "contextDataValue"
    },
    "adobeData": {
      "adobeDataKey": "adobeDataValue"
    },
    "mycustomkey": "mycustomValue"
  }
}

Lifecycle request content

This event represents a request to the Lifecycle extension to start or stop collecting data and is generated when lifecycleStart() with null context data, lifecycleStart() with contextData and lifecyclePause() are used.

The Analytics extension listens only to the Lifecycle Start Event, and the Analytics database queue should be paused for up to DEFAULT_LIFECYCLE_RESPONSE_WAIT_TIMEOUT which is 1000 \(ms\)to wait for the corresponding response content event.

Event details

Event Type Event Source Paired
com.adobe.eventType.lifecycle com.adobe.eventSource.requestContent No

Data payload definition

Key Value Type Optional Description
type String No Has one of these values: Start, Stop, or Pause
contextdata Map Yes Map that contains the user-supplied context data.
{
  "type": "start",
  "contextData": {
    "contextDataKey": "contextDataValue"
  }
}

Lifecycle response content

This event is a response from the Lifecycle extension to notify a client/extension about lifecycle context data in which the extension/client might be interested. The event is generated by the Lifecycle extension, and the API is called after a lifecycle start, stop, or pause.

The Analytics extension waits for the lifecycle data and appends it to an exiting hit. Otherwise, a new hit is sent for lifecycle data, and the lifecycle timer is cancelled to mark that the lifecycle data has been received and processed. If the backdate session option is enabled, use the timestamp of the last session as the timestamp of the current Analytics request and insert the data to the Analytics queue before another request is received in the current session.

Event details

Event Type Event Source Paired
com.adobe.eventType.lifecycle com.adobe.eventSource.responseContent No

Data payload definition

Key Value Type Optional Description
lifecyclecontextdata Map No .
starttimestampmillis Long No
previoussessionpausetimestampmillis Long No
maxsessionlength Long No
{
  "lifecyclecontextdata": {
    "installdate": "22/05/2014",
    "hourofday": 6,
    "dayofweek": 2,
    "osversion": "iOS 12.3",
    "appID": "contextDataValue",
    "resolution": "600x1345",
    "devicename": "iPhoneX",
    "launchevent": "LaunchEvent",
    "prevsessionlength": 345,
    "locale": "en-US",
    "runmode": "Application",
    "launches": 42
  },
  "starttimestampmillis": 44,
  "maxsessionlength": 22
}

Install event

After lifecycle is enabled, the SDK tracks the application install details, which include the install date and the daily engaged/monthly engaged user badges.

{
  "lifecyclecontextdata": {
    "installevent": "InstallEvent",
    "dailyenguserevent": "DailyEngUserEvent",
    "monthlyenguserevent": "MonthlyEngUserEvent",
    "installdate": "22/05/2014"
  }
}

Launch event

After lifecycle is enabled, the SDK tracks every new launch of the application.

A launch is considered to be new when the following conditions are met:

  • The application is reopened from the background after the configured session timeout.
  • The application is opened after a force close.

Launch data includes information about the application's number of launches, days since first run, days since last use, user daily/monthly engaged badges, and other lifecycle metrics. Application version upgrades is also tracked.

{
  "lifecyclecontextdata": {
    "launchevent": "LaunchEvent",
    "dailyenguserevent": "DailyEngUserEvent",
    "monthlyenguserevent": "MonthlyEngUserEvent",
    "installdate": "22/05/2014",
    "launches": 42,
    "dayssincelastuse": 4,
    "dayssincefirstuse": 28
  }
}

Crash event

If your application is terminated without having first been backgrounded, the SDK reports a crash the next time your app is launched. If the backdateSessionInfo flag is enabled in your configuration, this information is sent as an individual hit, for more information see Backdate previous session info. If the flag is not enabled, the information is sent as part of the launch event.

{
  "lifecyclecontextdata": {
    "crashevent": "CrashEvent",
    "launchevent": "LaunchEvent",
    "dailyenguserevent": "DailyEngUserEvent",
    "monthlyenguserevent": "MonthlyEngUserEvent",
    "installdate": "22/05/2014",
    "launches": 42,
    "dayssincelastuse": 4,
    "dayssincefirstuse": 28
  }
}

SessionInfo

This hit contains information, such as the session length, about the previous launch session. If the backdateSessionInfo flag is enabled in your configuration, this information is sent as an individual hit. If the flag is not enabled, the information sent as part of the launch event.

Events dispatched by Analytics

The following events are dispatched by the Analytics extension:

Analytics response content

This event is a response from the Analytics extension to notify the result of the track calls or to return the analytics hits queue size.

This event is generated in the following situations:

  • If the Analytics server returns a response content, the Analytics extension after the com.adobe.eventSource.requestContent is processed, and the hit is sent to the server.
  • The Analytics extension as a response for the GetQueueSize API requests.

Event details

Event Type Event Source Paired
com.adobe.eventType.analytics com.adobe.eventSource.responseContent No

Data payload definition

Here is the definition of the key-value pairs in this event:

Key Value Type Optional Description
analyticsserverresponse String Yes The Analytics server response that is used for forwarding by the Audience Manager extension.
queuesize Long Yes The Analytics queue size value.
hitHost String Yes The Analytics host that was used for the Analytics hit.
hitUrl String Yes The Analytics url that was used for the Analytics hit.

Event data example

Forwarding the Analytics server response

{ "analyticsserverresponse": "example response to be forwarded",
"hitHost": "the sever for the analytics hit",
"hitUrl": "the url for the analytics hit"}

Event data example

Analytics queue size

{
  "queuesize": 42
}

Analytics response identity

This event is a response from the Analytics extension that contains the unique tracking identifier. This value might be null if the Identity extension is enabled, and a valid MID was generated. This event is generated as a paired response for the getTrackingIdentifier and getCustomVisitorIdentifier APIs that create an com.adobe.eventType.analytics event type and a com.adobe.eventSource.requestIdentity event source.

Event Details

Event Type Event Source Paired Paired Event
com.adobe.eventType.analytics com.adobe.eventSource.responseIdentity Yes Analytics Request Identity

Data payload definition

Here is the definition of the key-value pairs in this event:

Key Value Type Optional Description
aid String No The Analytics tracking identifier value.
vid String Yes The custom visitor identifier value.

Event data example

{
  "aid" : "aidValue", "vid": "vidValue"
}