MMP measurement URLs for app advertising
This document defines the requirements for Amazon-managed app advertisers to provide Amazon with proper measurement URLs.
Third party Mobile Measurement Platforms
Amazon Ads has integrated with several mobile measurement platforms (MMPs). This means app advertisers who have also integrated their app with one of these MMPs can surface install and in-app events from their managed Fire Tablet or Fire TV campaigns to Amazon. This event data can help Amazon account managers identify quality installs and apply optimization strategies that drive toward goals based on advertising cost-per-action (CPA) or return-on-investment (ROI).
Amazon has reserved some of the MMP data parameters to pass identifying information for devices, impressions, and ad campaigns. Advertisers need to follow the parameter specs below so that these identifiers can be transmitted to Amazon systems. The following table is a list of all currently certified MMPs and the supported locales by device type. Note that both event types install and in-app are supported only in the US locale; UK and DE locales only support install (not in-app) events.
MMP | Platform | US | UK | DE |
---|---|---|---|---|
Adjust | Fire Tablet | Y | Y | Y |
Fire TV | Y | N | N | |
AppsFlyer | Fire Tablet | Y | Y | Y |
Fire TV | Y | N | N | |
Kochava | Fire Tablet | Y | Y | Y |
Fire TV | Y | N | N | |
Singular | Fire Tablet | Y | Y | Y |
Fire TV | N | N | N | |
Branch (formerly Tune) | Fire Tablet | Y | Y | Y |
Fire TV | Y | N | N |
What are the data pathways?
Impressions
As ads are served, Amazon embeds click measurement information in the creative and sends the impression notification to the MMP. View-through attribution (if desired) is managed directly by the advertiser in the MMP portal.
Clicks
When the user clicks on the ad, Amazon records the click and forwards the data to the MMP using the measurement URL.
Installs
When the user loads the app, the MMP SDK in the advertised app notifies the MMP. When the MMP determines an install is credited to Amazon, it can notify Amazon via postback (callback). Amazon requires advertisers to enable notifications to Amazon for Amazon-attributed installs and non-attributed installs to help optimize ad campaigns (portal settings vary per MMP).
In-app Events
If available and configured properly, when the user completes a desired action in an app, the MMP SDK in the app can report that to the MMP. The MMP can surface in-app events to Amazon via the MMP portal (features and settings vary per MMP). Amazon strongly encourages all notifications to help in ad optimization.
Policy and Instructions
Advertising clients working with Amazon Ads for Apps managed services can send event data to Amazon by enabling postbacks (callbacks) in the MMP portal. Of course this first requires proper integration of the MMP SDK in the advertised app. Failing to comply with the policy and instructions may disrupt data flowing to the MMP and/or to Amazon and may cause delays in campaign launch.
1. Create campaign, enable events
In the MMP campaign screen, create the campaign and enable event “postbacks” or “callbacks” to be sent to Amazon. Amazon requires advertisers to enable install postbacks which are required for install reporting to work. Enabling In-app event postbacks is optional; if enabled, in-app events flow through the MMP portal only (they do not flow through Amazon's internal campaign management system).
2. Get measurement URLs (trackers)
The MMP portal will generate measurement URLs with Amazon data macros embedded. Advertiser will need to ensure the MMP URLs are attributing on Fire Ad ID versus Android ID. Advertisers should provide these trackers to Amazon that comply with these parameter specs. Only one impression tracker and one click tracker is supported per title and platform. Advertisers can insert Amazon macros in any of the parameters available to them (i.e. parameters not reserved for Amazon use). An impression tracker can be used for view-through conversion measurement, but it is optional. Longer view-through attribution settings are recommended given that Amazon is the only vendor selling Fire TV and Fire Tablet inventory.
- Appsflyer and Branch offer a 7 day maximum window
- Kochava offers a 24 hour maximum window
- Adjust offers a configuarable view-through window
3. Resolve any parameter conflicts
Amazon uses some of the MMP parameters to pipe certain identifiers (details below). If there is an unavoidable parameter conflict, communicate that to the Amazon account contact. Using Amazon- reserved parameters will disrupt the data that Amazon campaign managers use to optimize performance.
4. Additional parameters
Advertisers can add optional MMP-expanded parameters (as well as their own parameters) to dynamically pull in certain campaign identifiers used for optimizing. Other than Amazon macros and MMP macro/placeholder expansion, there is no capability to support different measurement URLs per creative, ad line, or group of ad lines.
5. URL modification
Amazon will encode the advertiser-provided measurement URL when the ad is trafficked to preserve it as embedded payload within the ad creative. Amazon may also add data macros or modify other aspects of the URL to comply with the policy and instructions.
MMP Measurement URLs (trackers)
Amazon ad creatives support measurement URLs or “trackers.” On every advertising campaign, the advertiser provides Amazon with impression and click trackers: one of each per platform (Fire Tablet/Fire TV), although the impression tracker is optional. These trackers are generated in the MMP portal by the advertiser. There are cases where the advertiser wishes for more granular reporting (by creative or special segments, for example). Since a campaign can only support one impression and click tracker, advertisers can leverage Amazon's optional “macros” that dynamically pull in the appropriate campaign name, ad line, or creative size when the ad is rendered. Amazon supports the below macros for all MMPs. These macros are either automatically included in the MMP's URL template or can be added manually after the URL has been generated (optional). The optional macros vary by MMP and are outlined in the next section.
Amazon Macro | Description | Output Example |
---|---|---|
__CS_CAMPAIGN_NAME__ | Amazon campaign id + name | 2679966220301-App_DL - Tier2 - Adjust - App Title - App Developer - 1/13-1/31 |
__CS_AD_NAME__ | Amazon ad id + name | 8138361190901-Fire Tablet | Wakescreen | Unguaranteed | App Name | 1/13-1/31 |
__AAX_SOURCE_NAME__ | Amazon publisher group | KSO (constant for all Fire Tablet campaigns) |
__AAX_SITE_NAME__ | Amazon publisher | wakescreen (constant for all Fire Tablet campaigns) |
__CS_AD_SIZE__ | Amazon creative size | 9999x9999 (constant for all Fire Tablet campaigns) |
__CS_CREATIVE_ID__ | Amazon creative id | 834686129764 |
Advertisers should use Amazon's Tracker Builder tool to generate and validate new MMP trackers. This ensures the URL is setup to pass through Amazon's internal systems properly and will help prevent post-launch campaign issues. See https://s3.amazonaws.com/ksomedia/mmp-tracker/index.html.
Adjust Parameters
Amazon uses custom parameters with Adjust, so advertisers may use any of these params below. (See https://docs.adjust.com/en/tracker-generation/ and https://docs.adjust.com/en/special-partners/amazon/)
Parameter | Usage | Description |
---|---|---|
campaign | available | Amazon campaign id + name |
adgroup | available | Amazon publisher group |
creative | available | Creative id + size |
Adjust Example Measurement URLs
Impression: Fire
https://view.adjust.com/impression/abc123?campaign=__CS_CAMPAIGN_NAME__&adgroup=__AAX_SOURCE_NAME__&creative=__CS_CREATIVE_ID__-__CS_AD_SIZE__&gps_adid=__AAX_IDFA__&idfa=__AAX_IDFA__&android_id_lower_sha1=__AAX_SHA1_UDID__&amzn_ad_tracking=__AAX_AD_TRACKING__&referrer=adjust_external_click_id%3d__AAX_TRACKING_ID__&amzn_ref_id=__AAX_TRACKING_ID__&cost_type=__AAX_COST_MODEL__&cost_amount=__AAX_COST__&amzn_mmp=__CS_MSR_PARTNER__&amzn_endpoint=__AAX_POSTBACK_URL__&amzn_app_id=__CS_APP_ID__&amzn_campaign_name=__CS_CAMPAIGN_NAME__&amzn_ad_name=__CS_AD_NAME__&amzn_supply_source=__AAX_SOURCE_NAME__&amzn_site_id=__AAX_SITE_NAME__&amzn_creative_id=__CS_CREATIVE_ID__&amzn_creative_size=__CS_AD_SIZE__&s2s=1
Click: Fire
https://app.adjust.com/abc123?campaign=__CS_CAMPAIGN_NAME__&adgroup=__AAX_SOURCE_NAME__&creative=__CS_CREATIVE_ID__-__CS_AD_SIZE__&gps_adid=__AAX_IDFA__&idfa=__AAX_IDFA__&android_id_lower_sha1=__AAX_SHA1_UDID__&amzn_ad_tracking=__AAX_AD_TRACKING__&referrer=adjust_external_click_id%3d__AAX_TRACKING_ID__&amzn_ref_id=__AAX_TRACKING_ID__&cost_type=__AAX_COST_MODEL__&cost_amount=__AAX_COST__&amzn_mmp=__CS_MSR_PARTNER__&amzn_endpoint=__AAX_POSTBACK_URL__&amzn_app_id=__CS_APP_ID__&amzn_campaign_name=__CS_CAMPAIGN_NAME__&amzn_ad_name=__CS_AD_NAME__&amzn_supply_source=__AAX_SOURCE_NAME__&amzn_site_id=__AAX_SITE_NAME__&amzn_creative_id=__CS_CREATIVE_ID__&amzn_creative_size=__CS_AD_SIZE__&s2s=1
AppsFlyer Parameters
Amazon reserves several AppsFlyer parameters. (See https://support.appsflyer.com/hc/en-us/articles/207447163-AppsFlyer-Tracking-Link-Structure-and-Parameters)
Parameter | Usage | Description |
c | available | Defaults to __CS_CAMPAIGN_NAME__ (Amazon campaign id + name) |
af_ref | reserved | __AAX_TRACKING_ID__ (Google referrer) |
af_channel | reserved | __AAX_SOURCE_NAME__ (supply category name) |
af_siteid | reserved | __AAX_SITE_NAME__ (Amazon publisher) |
af_ad | reserved | __CS_AD_NAME__ (Amazon ad id + name) |
af_ad_type | reserved | __CS_AD_SIZE__ (creative size) |
af_ad_id | reserved | __CS_CREATIVE_ID__ (Amazon creative id) |
AppsFlyer Example Measurement URLs
Impression: Fire
https://impression.appsflyer.com/com.example.app?pid=amazon_int&c=network_test&advertising_id=__AAX_IDFA__&sha1_android_id=__AAX_SHA1_UDID__&amzn_ad_tracking=__AAX_AD_TRACKING__&af_ref=__AAX_TRACKING_ID__&amzn_ref_id=__AAX_TRACKING_ID__&af_cost_model=__AAX_COST_MODEL__&af_cost_value=__AAX_COST__&af_channel=__AAX_SOURCE_NAME__&af_siteid=__AAX_SITE_NAME__&amzn_campaign_name=__CS_CAMPAIGN_NAME__&af_ad=__CS_AD_NAME__&amzn_mmp=__CS_MSR_PARTNER__&amzn_endpoint=__AAX_POSTBACK_URL__&amzn_app_id=__CS_APP_ID__&af_ad_id=__CS_CREATIVE_ID__&af_ad_type=__CS_AD_SIZE__&redirect=false&af_prt=amazon
Click: Fire
https://app.appsflyer.com/com.example.app?pid=amazon_int&c=network_test&advertising_id=__AAX_IDFA__&sha1_android_id=__AAX_SHA1_UDID__&amzn_ad_tracking=__AAX_AD_TRACKING__&af_ref=__AAX_TRACKING_ID__&amzn_ref_id=__AAX_TRACKING_ID__&af_cost_model=__AAX_COST_MODEL__&af_cost_value=__AAX_COST__&af_channel=__AAX_SOURCE_NAME__&af_siteid=__AAX_SITE_NAME__&amzn_campaign_name=__CS_CAMPAIGN_NAME__&af_ad=__CS_AD_NAME__&amzn_mmp=__CS_MSR_PARTNER__&amzn_endpoint=__AAX_POSTBACK_URL__&amzn_app_id=__CS_APP_ID__&af_ad_id=__CS_CREATIVE_ID__&af_ad_type=__CS_AD_SIZE__&redirect=false&af_prt=amazon
Kochava Parameters
The following Kochava parameters are reserved for Amazon use. (See https://support.kochava.com/reference-information/integrate-with-kochava-as-a-networkpublisher/)
Parameter | Usage | Description |
site_id | reserved | Amazon publisher information for Kochava Summary Reporting (network & install) formatted as “__AAX_SITE_NAME__” |
creative_id | reserved | Amazon creative ID for Kochava Summary Reporting (network & install) formatted as “__CS_CREATIVE_ID__” |
Kochava Example Measurement URLs
Impression: Fire
https://imp.control.kochava.com/track/impression?campaign_id=abc-def-ghi559d967642dda8c74fb23ae113&network_id=3501&device_id=__AAX_SHA1_UDID__&android_id_sha1=__AAX_SHA1_UDID__&device_id_type=adid&amzn_ad_tracking=__AAX_AD_TRACKING__&amzn_gp_ref=__AAX_TRACKING_ID__&append_app_conv_trk_params=1&bid_type=__AAX_COST_MODEL__&bid_value=__AAX_COST__&cpi_price=__AAX_COST__&site_id=__AAX_SITE_NAME__&creative_id=__CS_CREATIVE_ID__&cp_0=__AAX_TRACKING_ID__&cp_1=__CS_APP_ID__&cp_2=__CS_CAMPAIGN_NAME__&cp_3=__CS_AD_NAME__&cp_4=__AAX_SOURCE_NAME__&cp_5=__AAX_SITE_NAME__&cp_6=__CS_CREATIVE_ID__&cp_7=__CS_AD_SIZE__&amzn_mmp=__CS_MSR_PARTNER__&amzn_endpoint=__AAX_POSTBACK_URL__&pbr=1
Click: Fire
https://control.kochava.com/v1/cpi/click?campaign_id=abc-def-ghi559d967642dda8c74fb23ae113&network_id=3501&device_id=__AAX_SHA1_UDID__&android_id_sha1=__AAX_SHA1_UDID__&device_id_type=adid&amzn_ad_tracking=__AAX_AD_TRACKING__&amzn_gp_ref=__AAX_TRACKING_ID__&append_app_conv_trk_params=1&bid_type=__AAX_COST_MODEL__&bid_value=__AAX_COST__&cpi_price=__AAX_COST__&site_id=__AAX_SITE_NAME__&creative_id=__CS_CREATIVE_ID__&cp_0=__AAX_TRACKING_ID__&cp_1=__CS_APP_ID__&cp_2=__CS_CAMPAIGN_NAME__&cp_3=__CS_AD_NAME__&cp_4=__AAX_SOURCE_NAME__&cp_5=__AAX_SITE_NAME__&cp_6=__CS_CREATIVE_ID__&cp_7=__CS_AD_SIZE__&amzn_mmp=__CS_MSR_PARTNER__&amzn_endpoint=__AAX_POSTBACK_URL__&pbr=1
Singular Parameters
The following Singular parameters are reserved for Amazon use.
Parameter | Usage | Description |
psid | reserved | __AAX_SITE_NAME__ (Amazon publisher) |
pcid | reserved | __CS_CAMPAIGN_NAME__ (Name or ID of the Amazon campaign) |
ad_name | reserved | __CS_AD_NAME__ (Amazon ad id + name) |
a_creative_size | reserved | __CS_AD_SIZE__ (creative size) |
pshid | reserved | __AAX_SOURCE_NAME__ (Name or ID of Amazon publisher / source) |
pcrid | reserved | __CS_CREATIVE_ID__ (Amazon creative id) |
Singular Example Tracking URLs
Impression: Fire
https://c.singular.net/api/v1/imp?st=676215668268&psid=__AAX_SITE_NAME__&redirect=false&a_creative_size=__CS_AD_SIZE__&cl=__AAX_TRACKING_ID__&pcrid=__CS_CREATIVE_ID__&pcid=__CS_CAMPAIGN_NAME__&a_fire_aid=__AAX_IDFA__&pcm=__AAX_COST_MODEL__&ad_name=__CS_AD_NAME__&and1=__AAX_SHA1_UDID__&pca=__AAX_COST__&pshid=__AAX_SOURCE_NAME__&a_app_id=__CS_APP_ID__&a_msr=__CS_MSR_PARTNER__&a_oo=__AAX_AD_TRACKING__&a_postback=__AAX_POSTBACK_URL__&h=37243cf10d74bbf800533db370ee5643ca05dc61
Click: Fire
https://c.singular.net/api/v1/ad?st=676215668268&aifa=__AAX_IDFA__&idfa=__AAX_IDFA__&psid=__AAX_SITE_NAME__&redirect=false&a_creative_size=__CS_AD_SIZE__&cl=__AAX_TRACKING_ID__&pcrid=__CS_CREATIVE_ID__&pcid=__CS_CAMPAIGN_NAME__&a_fire_aid=__AAX_IDFA__&pcm=__AAX_COST_MODEL__&ad_name=__CS_AD_NAME__&and1=__AAX_SHA1_UDID__&pca=__AAX_COST__&pshid=__AAX_SOURCE_NAME__&a_app_id=__CS_APP_ID__&a_msr=__CS_MSR_PARTNER__&a_oo=__AAX_AD_TRACKING__&a_postback=__AAX_POSTBACK_URL__&h=37243cf10d74bbf800533db370ee5643ca05dc61
Tune Parameters
Tune provides a way to add customer parameters to the measurement URL in the “My Parameters” section. Amazon reserves the following “Partner Parameters”. (See https://help.tune.com/hasoffers/parameters-macros-in-hasoffers/).
Parameter | Usage | Description |
sub_publisher | reserved | __AAX_SOURCE_NAME__ (supply category name) |
sub_site | reserved | __AAX_SITE_NAME__ (Amazon publisher) |
sub_campaign | reserved | __CS_CAMPAIGN_NAME__ (Amazon campaign id + name) |
sub_ad | reserved | __CS_AD_NAME__ (Amazon ad id + name) |
sub1 | reserved | __CS_MSR_PARTNER__ (MMP id, “tune.com” in this case) |
sub2 | reserved | __AAX_POSTBACK_URL__ (postback URL for regional endpoint, can be empty, default is US endpoint) |
sub3 | reserved | __CS_APP_ID__ (Amazon app id for the promoted app) |
sub4 | reserved | __CS_AD_SIZE__ (creative size) |
sub5 | reserved | __CS_CREATIVE_ID__ (Amazon creative id) |
Tune Example Tracking URLs
Impression: Fire
https://12345.tlnk.io/serve?action=impression&integration_id=1118&site_id=2962&tracking_id=__AAX_TRACKING_ID__&android_id_sha1=__AAX_SHA1_UDID__&ref_id=__AAX_TRACKING_ID__&cost_model=__AAX_COST_MODEL__&cost=__AAX_COST__&sub_publisher=__AAX_SOURCE_NAME__&sub_site=__AAX_SITE_NAME__&sub_campaign=__CS_CAMPAIGN_NAME__&sub_ad=__CS_AD_NAME__&sub1=__CS_MSR_PARTNER__&sub2=__AAX_POSTBACK_URL__&sub3=__CS_APP_ID__&sub4=__CS_AD_SIZE__&response_format=json
Click: Fire
https://12345.tlnk.io/serve?action=click&integration_id=1118&site_id=2962&tracking_id=__AAX_TRACKING_ID__&android_id_sha1=__AAX_SHA1_UDID__&ref_id=__AAX_TRACKING_ID__&cost_model=__AAX_COST_MODEL__&cost=__AAX_COST__&sub_publisher=__AAX_SOURCE_NAME__&sub_site=__AAX_SITE_NAME__&sub_campaign=__CS_CAMPAIGN_NAME__&sub_ad=__CS_AD_NAME__&sub1=__CS_MSR_PARTNER__&sub2=__AAX_POSTBACK_URL__&sub3=__CS_APP_ID__&sub4=__CS_AD_SIZE__&response_format=json
Branch Parameters
The following Branch parameters are reserved for Amazon use. (See https://docs.branch.io/deep-linked-ads/amazon-mobile-tracking/).
Parameter | Usage | Description |
aax_site_name | reserved | __AAX_SITE_NAME__ (Amazon publisher) |
aax_source_id | reserved | __AAX_SOURCE_NAME__ (Name or ID of Amazon publisher / source) |
amazon_app_id | reserved | __CS_APP_ID__ (Amazon app id for the promoted app) |
amazon_tracking_id | reserved | __AAX_TRACKING_ID__ (Google referrer) |
amzn_ad_tracking | reserved | __AAX_AD_TRACKING__(limit ad tracking value for Google Advertising Id) |
creative_id | reserved | __CS_AD_SIZE__ (creative size) |
Branch Example Measurement URLs
FIRE TV
Impression: Fire
https://impression.link/impression?branch_key=key_live_kfNq5xQ0anKoLpL0RU6ripgdrCoDLLP0&%243p=a_amazon&%24aaid=__AAX_IDFA__&a_android_sha1_udid=__AAX_SHA1_UDID__&a_postback=__AAX_POSTBACK_URL__&aax_site_name=__AAX_SITE_NAME__&aax_source_id=__AAX_SOURCE_NAME__&amazon_app_id=__CS_APP_ID__&amazon_tracking_id=__AAX_TRACKING_ID__&amzn_ad_tracking=__AAX_AD_TRACKING__&creative_size=__CS_AD_SIZE__&~ad_set_name=__CS_AD_NAME__&~campaign=__CS_CAMPAIGN_NAME__&~cost_currency=__AAX_COST_CURRENCY__&~cost_model=__AAX_COST_MODEL__&~cost_value=__AAX_COST__&~creative_id=__CS_CREATIVE_ID__&~secondary_publisher=__CS_MSR_PARTNER__&%24os=AMAZON_FIRE_TV&~feature=paid%20advertising&~branch_ad_format=App%20Only
Click: Fire
https://branchsteramazon.app.link/lGHBCSNuG0?%243p=a_amazon&%24aaid=__AAX_IDFA__&a_android_sha1_udid=__AAX_SHA1_UDID__&a_postback=__AAX_POSTBACK_URL__&aax_site_name=__AAX_SITE_NAME__&aax_source_id=__AAX_SOURCE_NAME__&amazon_app_id=__CS_APP_ID__&amazon_tracking_id=__AAX_TRACKING_ID__&amzn_ad_tracking=__AAX_AD_TRACKING__&creative_size=__CS_AD_SIZE__&~ad_set_name=__CS_AD_NAME__&~campaign=__CS_CAMPAIGN_NAME__&~cost_currency=__AAX_COST_CURRENCY__&~cost_model=__AAX_COST_MODEL__&~cost_value=__AAX_COST__&~creative_id=__CS_CREATIVE_ID__&~secondary_publisher=__CS_MSR_PARTNER__&%24os=AMAZON_FIRE_TV
FIRE TABLET
Impression: Fire
https://impression.link/impression?branch_key=key_live_kfNq5xQ0anKoLpL0RU6ripgdrCoDLLP0&%243p=a_amazon&%24aaid=__AAX_IDFA__&a_android_sha1_udid=__AAX_SHA1_UDID__&a_postback=__AAX_POSTBACK_URL__&aax_site_name=__AAX_SITE_NAME__&aax_source_id=__AAX_SOURCE_NAME__&amazon_app_id=__CS_APP_ID__&amazon_tracking_id=__AAX_TRACKING_ID__&amzn_ad_tracking=__AAX_AD_TRACKING__&creative_size=__CS_AD_SIZE__&~ad_set_name=__CS_AD_NAME__&~campaign=__CS_CAMPAIGN_NAME__&~cost_currency=__AAX_COST_CURRENCY__&~cost_model=__AAX_COST_MODEL__&~cost_value=__AAX_COST__&~creative_id=__CS_CREATIVE_ID__&~secondary_publisher=__CS_MSR_PARTNER__&%24os=AMAZON_FIRE&~feature=paid%20advertising&~branch_ad_format=App%20Only
Click: Fire
https://branchsteramazon.app.link/VDJMQbvvG0?%243p=a_amazon&%24aaid=__AAX_IDFA__&a_android_sha1_udid=__AAX_SHA1_UDID__&a_postback=__AAX_POSTBACK_URL__&aax_site_name=__AAX_SITE_NAME__&aax_source_id=__AAX_SOURCE_NAME__&amazon_app_id=__CS_APP_ID__&amazon_tracking_id=__AAX_TRACKING_ID__&amzn_ad_tracking=__AAX_AD_TRACKING__&creative_size=__CS_AD_SIZE__&~ad_set_name=__CS_AD_NAME__&~campaign=__CS_CAMPAIGN_NAME__&~cost_currency=__AAX_COST_CURRENCY__&~cost_model=__AAX_COST_MODEL__&~cost_value=__AAX_COST__&~creative_id=__CS_CREATIVE_ID__&~secondary_publisher=__CS_MSR_PARTNER__&%24os=AMAZON_FIRE
Note: For click url, the subdomain is dependent on the app. Hence it changes for every app. In the above case it’s branchsteramazon