Direqt Analytics for AdTech¶
Overview¶
Direqt chatbots can be deployed on websites using traditional ad server technology. In this scenario, the chatbot is effectively an advertising creative, and like any creative it is useful to be able to measure the performance of the chatbot using standard adtech concepts in order to optimize for specific campaign objectives. For example, some campaigns may wish to optimize for initial clickthrough rate (CTR), whereas others may favor overall interactivity (session length).
Direqt Analytics for AdTech provides detailed information about viewable impressions, in-chat ad impressions, and various forms of user interactions that together provide valuable insight for optimizing.
Concepts¶
Analytics is based on a flow of events. Each event has a common set of metadata that is used to associate the events with a particular user, session, or chatbot.
In analytics, users are assigned an opaque and anonymous userId. Users on different websites will have different user ids. For a given user, we assign a unique session id that is shared with all events that are generated by the user during a period of activity.
Every chatbot is assigned a specific botid that is typically unique to a particular website. Every chatbot is also part of exactly one network, which is an organizational construct useful for grouping bots. These values are assigned by Direqt and are immutable.
Almost all of the events that are tracked will include these identifiers - userId, sessionId, botId, network - as metadata, alone with additional fields specific to their event type.
Similar to traditional display advertising, Direqt Analytics for AdTech supports events that track impressions, which fire when a chatbot first becomes visible to an end user, and interactions, which fire when a user interacts with the chatbot.
In addition, there are events that track in-chat impressions. These events are used to track the display of traditional display advertising units that are embedded within the chatbot session itself.
Metadata associated with these events can be used to distinguish between various types of user interactions.
Note
A single session can have multiple impressions (e.g., having multiple tabs open with Direqt loaded).
Note
A single impression can span multiple sessions if the user remains on the page but is inactive for 30+ minutes.
Event Types¶
Every event supported by the system as an event type that identifies its purpose.
| Event type | Description |
|---|---|
| load | The chatbot has been loaded on the page but has not yet become viewable. |
| impression | The chatbot as visible to the user according to IAB definition. |
| inChatImpression | The chatbot has presented an embedded display advertisement to the user. |
| interaction | The user has interacted with the chatbot in a meaningful way. |
The following sections give details about each of these events, when they are fired, and the metadata they contain.
Load¶
When a chatbot is first loaded on a page, a load event is recorded. This indicates that the chatbot is present on the page, but does not indicate that the chatbot is visible to the user. Once the chatbot has become viewable according to IAB viewability standards, an impression event is recorded. On load, a new impressionId is generated to uniquely identify this load/impression/interaction cycle.
The metadata associated with each load includes:
| field | definition |
|---|---|
impressionId |
Unique identifier for this impression |
botid |
Unique identifier for the bot |
network |
Unique identifier for the owning network |
userId |
Opaque site specific identifier for the user |
device |
If the user is on mobile or desktop |
hostUrl |
The URL of the page the chatbot is embedded on |
sessionId |
Unique identifier for the user's current session |
Impression¶
On page load, a chatbot may be loaded into a host website by the ad server. If and when the chatbot becomes viewable according to IAB viewability standards, a viewable impression ('impression' event) is recorded. This is useful in conjunction with interaction events in order to determine what percentage of time a user chose to interact with the chatbot.
An impression is recorded when at least 50% of chatbot is in view for at least one second.
At most one impression is recorded each time a chatbot is loaded on a page. So for example, even if a chatbot is initially visible but then scrolled out of the viewport and then visible again will only record a single impression.
The metadata associated with each viewable impression includes:
| field | definition |
|---|---|
impressionId |
Unique identifier for this impression |
impressionType |
Top-level classification (chat, poll, or fallback) |
botid |
Unique identifier for the bot |
network |
Unique identifier for the owning network |
userId |
Opaque site specific identifier for the user |
device |
If the user is on mobile or desktop |
hostUrl |
The URL of the page the chatbot is embedded on |
sessionId |
Unique identifier for the user's current session |
In Chat Impression¶
Content views within the chat interface are tracked as in-chat impressions. This includes both paid external advertisements and organic content such as recommended stories.
Each in-chat impression event is recorded with metadata to link the in-chat impression to a specific user, session, chatbot, and initial Direqt impression.
Note
Story carousels are given a single inChatImpressionId.
The metadata associated with each in-chat impression includes:
| Field | Description |
|---|---|
botid |
Unique identifier for the bot |
network |
Unique identifier for the owning network |
userId |
Opaque site specific identifier for the user |
device |
If the user is on mobile or desktop |
hostUrl |
The URL of the page the chatbot is embedded on |
sessionId |
Unique identifier for the user's current session |
impressionId |
Unique identifier for the initial impression/view of the widget |
inChatImpressionId |
Unique identifier for the in-chat impression |
inChatImpressionType |
Ad type (sponsored_response, display_ad or organic) |
Interaction¶
We track interactions when a user meaningfully engages with the chatbot. This could include clicking a link, composing a message, or tapping on a quick reply. We do not track trivial interactions such as clicking on non-interactive elements, scrolling, or dismissing the chatbot.
Each interaction event contains metadata that describes the type of interaction, as well as identifiers that link the interaction to a specific user, session, and impression.
You can track the performance of promoted content within the chat by linking interactions to in-chat ad views using the inChatImpressionId field.
There are two main types of interactions: actions and messages. Action events are associated with user clicks on interactive elements that do not result in a message being sent, such as opening a link. Message events are generated when a user sends a message to the chatbot, either by composing their own message or selecting a pre-generated option like a quick reply. We track one distinct event per interaction, so while a user may click on a pregenerated quick reply, it is recorded as a message interaction, not an action.
There are four subtypes of interactions that provide additional granularity about the nature of the interaction. Click is associated with the action type, while compose, quickReply, and prompt are associated with the message type. Compose indicates a user-created message, quickReply indicates a user conversational response using a pre-generated response (e.g., suggested reply, poll vote), and prompt indicates sending a pre-generated message to change topic or view new content.
The metadata associated with each interaction includes:
| Field | Description |
|---|---|
botid |
Unique identifier for the bot |
network |
Unique identifier for the owning network |
userId |
Opaque site specific identifier for the user |
device |
If the user is on mobile or desktop |
hostUrl |
The URL of the page the chatbot is embedded on |
sessionId |
Unique identifier for the user's current session |
impressionId |
Unique identifier for the initial impression/view of the widget |
interactionId |
Unique identifier for the interaction |
interactionType |
Top-level classification (action or message) |
interactionSubType |
Subclass of user interaction (click, compose, quickReply, prompt) |
inChatImpressionId |
(optional) Used to link to an in-chat ad view if applicable |