Using Installation Attribution
Learn how to interpret ad attribution alongside the ads you run and choose information for your personalization goals.
Installation attribution helps you understand the advertising context behind an app user's arrival. Knowing which ad brought a user to the app helps you continue its message through app screens or messages.
What installation attribution tells you
The context.lastTouchpoint object in the Context API response contains ad attribution associated with the user. The channel identifies the advertising platform. The campaign and ad group help you understand how the ads are organized, while the creative and keyword help you understand individual ad content and settings.
Connecting ad attribution to the ads you run helps you choose what to show the user next.
- AdIntroduce the service and content
The ad delivers a message to the user.
- Ad attributionIdentify the associated ad
CUE provides information such as the channel and campaign.
- Use in the appTailor screens and messages
The app presents content that connects to the ad's message.
Continue the ad's message with personalization
Matching the campaign or creative name in the response to an ad you run helps you decide what to show or send next. For example, if campaign is promotion_A, your app's first screen or a CRM message can introduce that campaign's promotion. If creatives within the same campaign feature different products, your service can use adCreative to choose the corresponding product.
Campaigns, ad groups, and creatives describe different levels of an ad's structure, as shown below. Your ad settings identify the promotion or product behind each returned name. CUE does not automatically generate personalization rules from these names, so your service needs to define what to do for each value.
- CampaignAdvertising goal and theme
- Ad groupAudience and settings
- Ad creativeThe message and how it was presented
Campaign information may be enough to introduce a promotion as a whole. To match the specific product featured in an ad, you also need the creative information. Choose the level of detail that supports the content you want to personalize.
Choose information for your goal
The information you choose needs to match how you want to vary screens or messages. Campaign information works for content shared across a campaign. Creative information works for content tailored to an individual ad.
- The campaign (
campaign) helps you group users who arrived through ads with the same goal or theme. It supports content that applies across the campaign. - The ad group (
adGroup) reflects how you organized ads within a campaign. If groups have different audiences or content, you can use them to tailor app screens or messages. - The ad creative (
adCreative) helps you distinguish the message and presentation of individual ads. It supports choosing content that continues the creative's message. - The channel (
channel) identifies the advertising platform. It supports varying content by platform. - The keyword (
term) identifies the keyword configured for the ad. You can match the returned value to your ad settings and choose content for each keyword.
You can also combine the advertising information you choose with purchase or churn tiers to define your audience more precisely. Using Context explains how to combine ad attribution and predictions in personalization rules.
Work with the information available
A personalization rule requires the advertising information it uses to be present in the response. A rule based on a campaign needs different information from one based on a creative.
- If the campaign is available, you can provide a screen or message shared across that campaign even when creative information is unavailable.
- If both the campaign and creative are available, you can show different content for each creative within the same campaign.
- If only the channel is available, you can choose content based on the advertising platform. Rules that distinguish specific campaigns or creatives need that information.
Your rules also need a default screen or message for cases where required information is unavailable.
Compare response examples
The examples below show only context.lastTouchpoint. Select a case to compare which advertising information is available and which rules your app or CRM can apply. The fields containing restricted values and the values of other fields depend on the actual response.
Compare fields with values, null fields, and restricted strings.
Information available
Match these values to your ad settings to identify the campaign, creative, and keyword.
channelmedia_AAvailablecampaignpromotion_AAvailableadGroupad_group_AAvailableadCreativecreative_AAvailabletermkeyword_AAvailable
Your app or CRM can apply personalization rules based on the campaign or creative.
View response JSON
{
"context": {
"lastTouchpoint": {
"channel": "media_A",
"campaign": "promotion_A",
"adGroup": "ad_group_A",
"adCreative": "creative_A",
"term": "keyword_A"
}
}
}Entire object null
The lookup succeeded, but no installation attribution result is available.
context.lastTouchpoint = null
This response has no individual fields such as channel or campaign.
Your app or CRM skips rules that require advertising information and provides the default screen or message. If predictions are available, rules based only on those predictions can still apply.
View response JSON
{
"context": {
"lastTouchpoint": null
}
}Some fields null
The channel and campaign are available, but details such as the ad group, creative, and keyword were not collected and are unavailable in this example.
channelmedia_AAvailablecampaignpromotion_AAvailableadGroupnullNo valueadCreativenullNo valuetermnullNo value
Your app or CRM can provide a screen or message shared across the campaign. Skip rules that need a specific creative, and keep the default behavior for that part of the experience.
View response JSON
{
"context": {
"lastTouchpoint": {
"channel": "media_A",
"campaign": "promotion_A",
"adGroup": null,
"adCreative": null,
"term": null
}
}
}restricted
In this example, advertising information is masked according to the ad channel's privacy policy. The channel name is shown as restricted, and details such as the campaign are not provided. See Airbridge's guide to the Meta Ads data sharing policy for the relevant policy.
channelrestrictedRestrictedcampaignnullNo valueadGroupnullNo valueadCreativenullNo valuetermnullNo value
Do not interpret this value as a specific ad channel name or as organic acquisition. Skip rules that require the actual advertising information, and apply rules based on other available information or use the default behavior.
View response JSON
{
"context": {
"lastTouchpoint": {
"channel": "restricted",
"campaign": null,
"adGroup": null,
"adCreative": null,
"term": null
}
}
}unattributed
In this example, the installation is shown as not attributed to a specific ad channel.
channelunattributedUnattributedcampaignnullNo valueadGroupnullNo valueadCreativenullNo valuetermnullNo value
Skip rules based on an attributed ad channel. Apply rules based on other available information or keep the default behavior.
View response JSON
{
"context": {
"lastTouchpoint": {
"channel": "unattributed",
"campaign": null,
"adGroup": null,
"adCreative": null,
"term": null
}
}
}See Context API for the field definitions and response contract used in these examples.
These examples describe successful API lookups. If the lookup fails with an API error, use your default behavior. Do not convert the error into lastTouchpoint: null. See Error Handling for each error.
After connecting the API, you need to compare the ad attribution in the response with the attribution result expected in your test. Check the response in Get Started explains the checks.