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:
Here are the Analytics events in the Lifecycle extension:
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.
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.
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.
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.
The following Analytics event is triggered when the Identity extension is enabled:
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.
The following Analytics event is triggered when the Messages extension is enabled:
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.
The Analytics event in the Target extension is AnalyticsForTarget
. The SDK forwards Target's data to Analytics when A4T is enabled in Target Services.
The following events are handled by the Analytics extension:
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:
- Calling the Core trackAction or trackState API.
- The SDK when tracking internal actions. For more information, see Internal Events for Adobe Analytics.
- Calling the Analytics sendQueuedHits , clearQueue, or getQueueSize APIS.
Event Type | Event Source | Paired |
---|---|---|
com.adobe.eventType.analytics |
com.adobe.eventSource.requestContent |
No |
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. |
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
}
Send all Analytics hits request
{
"forcekick": true
}
Clear all the Analytics hits request
{
"clearhitsqueue": true
}
Get queue size request
{
"getqueuesize": true
}
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.
No key is required for the Analytics request event.
Event Type | Event Source | Paired |
---|---|---|
com.adobe.eventType.analytics |
com.adobe.eventSource.requestIdentity | Yes |
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.
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. |
{
"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
}
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 Type | Event Source | Paired |
---|---|---|
com.adobe.eventType.acquisition |
com.adobe.eventSource.responseContent | No |
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 %}
{
"contextdata": {
"campaign": "testCampaign",
"source": "sampleSource",
"contextData": {
"contextDatakey": "contextDataValue"
},
"adobeData": {
"adobeDataKey": "adobeDataValue"
},
"mycustomkey": "mycustomValue"
}
}
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 Type | Event Source | Paired |
---|---|---|
com.adobe.eventType.lifecycle |
com.adobe.eventSource.requestContent | No |
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"
}
}
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 Type | Event Source | Paired |
---|---|---|
com.adobe.eventType.lifecycle |
com.adobe.eventSource.responseContent |
No |
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
}
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"
}
}
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
}
}
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
}
}
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.
The following events are dispatched by the Analytics extension:
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 Type | Event Source | Paired |
---|---|---|
com.adobe.eventType.analytics |
com.adobe.eventSource.responseContent |
No |
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. |
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"}
Analytics queue size
{
"queuesize": 42
}
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 Type | Event Source | Paired | Paired Event |
---|---|---|---|
com.adobe.eventType.analytics |
com.adobe.eventSource.responseIdentity |
Yes | Analytics Request Identity |
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. |
{
"aid" : "aidValue", "vid": "vidValue"
}