Attribution is the practice of assigning credit for a user conversion to a given campaign or set of campaigns. The goal of attribution is to quantify which campaigns most effectively drive users to take a desired action.
For example, if you are testing different content in three push notification
campaigns, you’ll want to track and attribute a conversion event
to ensure your team knows which push notification is most effective for your
given user base. Some common custom conversion events could be: startedTrial
,
sharedReview
, addedItemToCart
.
It’s important to understand how attribution works in Iterable before you start creating campaigns so you can correctly configure your campaign settings, conversion events, and API calls to accurately track and send the right data for your use case. Understanding attribution can also help you interpret the metrics reported in Campaign Analytics, Messaging Insights, and other places in Iterable.
In this article
Iterable's attribution models
When creating a campaign in Iterable, you can choose one of two ways to attribute conversion events:
- Time-based attribution
- Attribution by
campaignId
Before sending a campaign in Iterable, decide which of these attribution methods you'll use, and make sure you've properly configured your campaign settings and API calls to assign conversions the way you want them to be attributed.
Time-based attribution
Time-based attribution is Iterable's default attribution model. When a campaign is set up to use time-based attribution, Iterable automatically attributes new occurrences of the designated conversion event to the campaign during the specified attribution period.
Time-based attribution is an easy way to track conversions, since you don't
need to specify a campaignId
in your event-tracking API calls — so you don't
need to ask your engineering team to manually update the events you send to
Iterable in order to generate attribution data for your campaigns.
How it works
Iterable follows a last-touch attribution model. This means that if you send multiple campaigns to a single user, and each campaign has a different time-based attribution period for the same conversion event, Iterable attributes that user's conversion to the most recently sent campaign with an active attribution period.
Time-based attribution assigns conversions based on the date and time that
Iterable receives a record of an event (stored in the Iterable-managed
documentCreatedAt
field) — not the date and time assigned by you when the
event was initially created (typically saved in the createdAt
field). When you
submit a custom event to Iterable with a createdAt
timestamp, Iterable doesn’t
consider it during attribution.
In some cases, latency, the timing of data syncs, or an update to a custom event
that’s already in use can impact the value of the Iterable-managed
documentCreatedAt
field.
NOTE
You can choose time-based attribution and specify a particular campaignId
and templateId
in calls to Iterable's event- or purchase-tracking API
endpoints. If you do this, the values you specify in your API calls override
the campaignId
and templateId
that were set by any open time-based
attribution period. This means that Iterable attributes conversions according
to the best information we have — when you provide us more accurate information,
we prioritize that!
campaignId
Attribution by The second option for campaign attribution is manually specifying the particular
user, campaign, and (optionally) template associated with each conversion. For
example, attributing custom events and purchases to a specific templateId
can
be useful when running A/B tests,
where each experiment variation has a different templateId
.
With this attribution method, you must include the campaignId
and a user
identifier (email
or userId
) when you call Iterable's event- or
purchase-tracking API endpoints:
API endpoints for tracking events:
API endpoints for tracking purchases:
IMPORTANT
If you choose attribution by campaignId
for a campaign but don't send
the associated campaignId
in calls to Iterable's event- or purchase-tracking
API endpoints, no attribution is assigned for that campaign. With attribution
by campaignId
, Iterable doesn't do any automatic conversion tracking and
attribution. If you select this attribution method, be sure to include this
information in your API calls — once a campaign has been sent, there is no way
to recover untracked conversion data.
(If your campaign includes any experiments,
you must also include the associated templateId
in order for attribution to
work correctly.)
There are two ways to find the right campaignId
and templateId
to include in
API calls for tracking events or purchases:
- Link parameters
- Browser cookies (only email campaigns from email-based projects can use this option)
Want to learn more?
For more information about some of the topics in this article, check out these resources. Iterable Academy is open to everyone — you don't need to be an Iterable customer!
Iterable Academy
Support docs