Amazon DSP Events
What Is Amazon DSP Events?
Amazon DSP (Demand Side Platform) allows advertisers to programmatically buy display, video, and audio ads both on and off Amazon. The Events API for Amazon DSP enables advertisers to send conversion events directly from their servers to Amazon Ads, bypassing the need for browser-based tracking.
Product Type: Advertising
Integration Type: Starter Kit
Event Source Type: Web & Mobile Web
Event Scope: Full-Funnel Events
Capabilities
- Sends off-Amazon conversion and engagement events to Amazon Ads
- Supports batching of events for efficient delivery
- Enables hashed identifier-based matching for attribution
- Maps common commerce and content interaction events
- Respects user consent signals for ad storage and user data processing
- Supports conditional event delivery based on consent availability
Considerations
matchKeys.valuesmust be sent as an array, even when only one value is present, for events to be acceptedeventDescription.eventIngestionMethodis set toSERVER_TO_SERVERand should not be changedconsent.amazonConsent.amznUserDataandconsent.amazonConsent.amznAdStorageare required for events to appear in reporting and must align with your consent management setup- Default consent mappings assume a standard OneTrust-style opt-out model and may need adjustment for your implementation
- Events are sent in batches, wrapped in an
eventsarray per request - A conversion dataset name must be configured in Amazon Ads and mapped to
eventDescription.dataSetNamefor events to be reported correctly- While you may reuse an existing conversion dataset for server-side events, we recommend creating new, clearly labeled datasets for testing and validation. This makes it easier to identify incoming events in the dashboard during setup and troubleshooting.
- Requires OAuth2 credentials and refresh token for authentication
- Conversion events must include at least a hashed email or user ID
- Hashed email, hashed phone number, or another supported identifier is available for all conversions sent to the Conversions API. View the full list of supported parameters
- Events missing identity data will be dropped by the integration
- Amazon Ads may reject events that fall outside its supported event lookback window.
Limitations
- Cannot trigger Amazon-native tracking pixels or UI widgets
- Does not support on-Amazon conversions
Prerequisites
Before setting up the Amazon DSP Events integration, ensure the following:
- Access to a self-service advertiser account in the Amazon DSP
- Advertiser Audience Agreement has been accepted
If you have not yet accepted the terms and conditions:- Go to https://advertising.amazon.com and navigate to the Amazon DSP console
- Select your entity and advertiser
- Go to Events Manager from the left-hand menu
- You’ll be prompted to read and accept the Advertiser Audience Agreement Terms and Conditions
- If you are not prompted, the terms have already been accepted
Starter Kit Setup Guide
1. Gather Credentials
To use the Amazon DSP Events integration, you must collect the following credentials:
Client ID & Client Secret
- Go to https://developer.amazon.com
- Navigate to Developer Console → Login with Amazon on the top navigation
- If needed, create a new Security Profile
- On the Security Profile, click Show Client ID and Client Secret
- Save both for use in the Starter Kit
NOTE: Please ensure that your developer account has the campaign management scope enabled before proceeding. Use the Advanced Tool Center to view scopes assigned to your security profile.
Redirect URL Setup
-
Click the Manage icon next to your Security Profile
-
Under Web Settings, add your allowed return URLs
Examples:
https://www.amazon.comhttps://www.metarouter.io
Obtain Code
- Navigate to the following URL in your browser:
https://www.amazon.com/ap/oa?scope=advertising::campaign_management&response_type=code&client_id=<CLIENT_ID>&state=State&redirect_uri=<REDIRECT_URL>
- Replace the placeholders with your actual values.
- After approval, copy the
codevalue from the redirect URL.
Get Access & Refresh Tokens
- Use the following cURL request in Postman to obtain your tokens:
curl --location 'https://api.amazon.com/auth/o2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code=<STEP_1_CODE>' \
--data-urlencode 'redirect_uri=<REDIRECT_URI>' \
--data-urlencode 'client_id=<CLIENT_ID>' \
--data-urlencode 'client_secret=<CLIENT_SECRET>'
- Replace:
- <STEP_1_CODE> with the code you got in Step 3
- <REDIRECT_URI> with your return URL
- <CLIENT_ID> and <CLIENT_SECRET> from Step 1
- Sample Response (truncated access token, please include the full token in your cURL):
{ "access_token": "**Atza|IwE…"**, "refresh_token": "Atzr|IwE…", "token_type": "bearer", "expires_in": 3600 }
- Copy the Access Token and Refresh Token and save it for the next steps
Get Profile ID
- Run the following request in Postman:
curl --location 'https://advertising-api.amazon.com/v2/profiles' \
--header 'Amazon-Advertising-API-ClientId: <CLIENT_ID>' \
--header 'Authorization: Bearer <ACCESS_TOKEN>'
- Replace <CLIENT_ID> and <ACCESS_TOKEN> with your values.
- Sample Response (truncated):
[ { "profileId": **32312945...**, "countryCode": "US", "currencyCode": "USD", "timezone": "America/Los_Angeles", "accountInfo": { "marketplaceStringId": "ATV...", "id": "ENTITY1B...", "type": "agency", "name": "MetaRouter" } } ]
- Sample Response (truncated):
- Save the value of the Profile ID, which is required in the Amazon DSP Events Starter Kit.
Get Advertiser ID
- Log in to your Amazon Ads account → Administration → Accounts
- Copy the numeric account ID under your account name.
Get Dataset Names
- In your Amazon Ads account, go to Data Manager → Datasets
- You can upload new Dataset names or copy an existing Dataset name
- These names must be mapped to specific events in your Amazon DSP Events starter kit
2. Add an Amazon DSP Events Integration
From the integration library, add a Amazon DSP Events integration. Then, fill out the Connection Parameters:
| Connection Parameter | Description |
|---|---|
BASE_URL | Base URL for the Amazon Ads API (default: https://advertising-api.amazon.com). For regional base URLS please see here: Regions base URLs |
ADVERTISER_ID | Numeric ID of your Amazon Ads account |
CLIENT_ID | OAuth2 client ID from Amazon Developer Console |
CLIENT_SECRET | OAuth2 client secret from Amazon Developer Console |
PROFILE_ID | Amazon Ads Profile ID |
REFRESH_TOKEN | OAuth2 refresh token used to obtain access tokens |
3. Configure Event Mapping
- MetaRouter provides all of the event mappings that Amazon DSP Events integrations typically require. You may add custom events, parameters, or mappings in accordance with Amazon Ads API documentation.
4. Deploy to Pipeline
- In the Pipelines tab, add your Amazon DSP Events integration.
- Select the correct integration revision
- Click Add Integration to finalize deployment.
Event Mappings
Global
Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.eventIngestionMethod | String: Identifies ingestion channel. | Enrichment – 'SERVER_TO_SERVER' |
consent.tcf | String: TCF consent string placeholder. | Enrichment – please fill in to your consent use case. |
consent.gpp | String: GPP consent string placeholder. | Enrichment – please fill in to your consent use case. |
matchKeys Required | Array: Hashed identifiers used for user matching. | Expression – hashes traits.email or userId |
countryCode | String: Two-letter country code. | Expression – derives from traits.address.country |
consent.geo.ipAddress | String: IP address for consent geography. | context.ip |
consent.amazonConsent.amznUserData Required | String: Consent status for Amazon user data. | Expression – maps from consent opt-out |
consent.amazonConsent.amznAdStorage Required | String: Consent status for ad storage. | Expression – maps from consent opt-out |
eventDescription.eventSource | String: Source platform of the event. | Expression – maps from context.device.type |
eventTime Required | Integer: Event timestamp. | Expression – uses available timestamps |
eventId Required | String: Unique event identifier. | messageId |
eventDescription.name Required | String: Normalized event name. | Expression – lowercased event/type**** |
Event Specific
Page
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'PAGE_VIEW' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Checkout Started
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'CHECKOUT' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Order Completed
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'OFF_AMAZON_PURCHASES' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
value | Float: Total order value. | Expression – totals properties.products |
currencyCode | String: ISO currency code. | properties.currency |
unitsSold | Integer: Total quantity sold. | Expression – sums product quantities |
Product Added
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'ADD_TO_SHOPPING_CART' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Product Removed
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'OTHER' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Product Clicked
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'OTHER' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Product List Viewed
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'PAGE_VIEW' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Product Viewed
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'PAGE_VIEW' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Cart Viewed
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'PAGE_VIEW' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Products Searched
| Output Key | Description | Expected Input |
|---|---|---|
eventDescription.conversionType | String: Conversion category. | Enrichment – 'SEARCH' |
eventDescription.dataSetName | String: Dataset identifier. | Enrichment – 'ADD_DATA_SET_NAME_HERE' |
Required & Recommended Identifiers
These identifiers must be mapped to Amazon Ads Events in order for successful user matching to occur. Without these IDs, any events sent to Amazon Ads Events may not be accurately reflected in reporting.
| Attribute | Example | Sync Injector Required? |
|---|---|---|
email_hash Required | e1a2b3c4d5... | No |
Note:
In this starter kit, traits.email is used as the primary source to generate the required hashed email. If traits.email is not present, userId is used as a fallback input to generate the hashed email value that populates matchKeys. Events are only sent when one of these inputs is available.
These identifiers must be mapped to Amazon DSP Events in order for successful user matching to occur. Without these IDs, any events sent to Amazon Ads may not be accurately reflected in reporting.
Integration Validation
To validate events from the Amazon DSP Events integration, go to Data Manager > Destinations, click the name of your off-Amazon conversion, and check the conversions dashboard for incoming events.
Additional Amazon DSP Events Documentation
Updated 21 days ago