Dev Guide
Dev GuideUser GuidesLegal TermsGitHubDevCommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Campaign and channel events

Learn about delivery events, engagement events, attributable events, disengagement events, and reachability events in Optimizely Data Platform (ODP).

You must specify all delivery, engagement, attributable, disengagement, and reachability events that a channel app sends into Optimizely Data Platform (ODP) in the channel/metrics section of the app.yml file.

For more information about events in ODP, see Events.

app.yml configuration for events

The following is a full list of events that a channel app can send into ODP:

metrics:
  delivery:
    - sent
    - delivery
    - delivery_unknown
    - impression
  engagement:
    - open
    - click
    - submission
    - engage
  disengagement:
    - opt-out
    - spam_report
    - list_unsubscribe
    - exit
    - disengage
  reachability:
    - hard_bounce
    - soft_bounce
    - invalid_token
  attributable:
    - open
    - click
    - delivery
    - engage

The channel app sends delivery, engagement, disengagement, and reachability events to ODP to inform about delivery and message engagement. The actual implementation depends on the third-party service that your app integrates with. Your app does not have to send all these event types if the third-party service does not support them, but more events helps ODP provide richer user profiles and more accurate campaign reports.

attributable events define which event types to use in Optimizely's attribution model to determine which campaigns get credit for a conversion. These often, but not always, mirror engagement actions.

ODP uses the above configuration to process campaigns and display relevant reports in the user interface (UI).

Send events using the OCP Node SDK.
For examples on how to send events, see ODP Web SDK Events.

Delivery events

Delivery events record events along the delivery pipeline. Minimally, these consist of sent events. The event type (type) for these events is the channel.type specified in the app.yml file.

Event actionDescription
sentrecords that a send occurred; this is an Optimizely-generated event
deliveryrecords that a successful message delivery occurred
delivery_unknownrecords that it was unknown whether a message delivery was successful or unsuccessful; typically only used when delivery events are also possible

Engagement events

Engagement events record when a message recipient has a positive interaction with the message. The event type (type) for these events is the channel.type specified in the app.yml file.

Event actionDescription
openrecords that a recipient opened a message
clickrecords that a recipient clicked a message
engagerecords that a recipient generically engaged with a message; used when the engagement action does not cleanly fit into another action option

Disengagement events

Disengagement events are recorded when a message recipient has a negative interaction with the message.

Event Type typeEvent actionreachability_update_typelist_id
contentopt-out
reachabilityunreachablespam_report
listunsubscribe[list_id]
[channel.type]disengage

Reachability events

Reachability events are recorded when a message could not be delivered.

Event typeEvent actionreachability_update_typeDescription
reachabilityunreachablehard_bouncerecords that a message could not be delivered for a permanent reason (for example, email address does not exist)
[channel.type]soft_bouncerecords that a message could not be delivered for an impermanent reason (for example, mailbox is full)

📘

Note

You can only retrieve reachability events for messaging identifiers. For more information about identifiers in ODP, see the ODP developer documentation.