Custom app connections are available on the Team plan. See White-label Connections for the overview.
Quick Connect vs Custom App
What You Need
Three values from your own Login with Amazon app:
Amazon access tokens last one hour; Markifact refreshes them with your client ID and secret on every run. Refresh tokens stay valid until the user revokes the app.
Amazon rejects any Advertising API call whose
Amazon-Ads-ClientId header does not match the app that issued the token, which is why Markifact stores the client ID alongside the refresh token and sends them together.Already have your own authorization flow? If your systems already hold a refresh token issued by your app with the scope below, skip to Connect to Markifact.
Setting Up Your Custom Amazon Ads App
1
Create the Login with Amazon Security Profile
- Open the Login with Amazon console and click Create a New Security Profile
- Enter the profile name, description, and a privacy policy URL. The profile name is the branding users see when they authorize
- Once created, open Web Settings and add a Allowed Return URL you control (for example
https://www.youragency.com/amazon-callback). Amazon appends the auth code to this URL after authorization; the page does not need to do anything, but the URL must be HTTPS - Copy the Client ID and Client Secret
2
Apply for Amazon Advertising API Access
The Advertising API is not open to every app. Apply through the Amazon Advertising API onboarding and wait for Amazon to allow-list your client ID. Agencies that already run their own integrations will have this in place; until it is approved, the profiles endpoint returns authorization errors.
3
Authorize and Get the Auth Code
- Open the following URL in a browser, replacing the client ID and return URL. Use the regional login host that matches your advertiser:
amazon.comfor North America,eu.account.amazon.comfor Europe,apac.account.amazon.comfor the Far East
- Sign in as the Amazon account that has access to the advertising accounts you want to manage and click Allow
- Amazon redirects to your URL with
code=...in the query string. Copy the value. Auth codes expire after a few minutes and can be exchanged once, so do the next step right away
4
Exchange the Auth Code for a Refresh Token
Run this request, replacing the values (the redirect URI must match the one used above exactly):The response contains
refresh_token. Copy it.Important: Keep this token secure. Anyone holding it, together with your client ID and secret, can act on every advertising account the user can reach.
5
Connect to Markifact
- In Markifact, go to the Connections page
- Click Connect on Amazon Ads
- Select the Custom App (White-label) tab
- Enter a Connection Name (for example “Acme Agency Amazon Ads”)
- Paste your Client ID, Client Secret, and Refresh Token
- Click Verify & Connect
Selecting Your Connection
Custom app connections appear under the name you chose, with a Custom app badge on the Connections page. Select them in Amazon Ads nodes, agents, and MCP exactly like any other Amazon Ads connection, then pick the advertising profile in the node.Rotating or Replacing the Token
Add the connection again with the same connection name and the new values. Markifact replaces the stored credentials in place, so workflows and agents bound to the connection keep working.Troubleshooting
Amazon rejected the client ID or client secret (invalid_client)
Amazon rejected the client ID or client secret (invalid_client)
Check both values on your security profile in the Login with Amazon console. The client ID starts with
amzn1.application-oa2-client..Amazon rejected the refresh token (invalid_grant)
Amazon rejected the refresh token (invalid_grant)
The token was issued by a different security profile than the one whose client ID you pasted, or the user revoked the app under their Amazon account’s Login with Amazon settings. Authorize again and paste the new refresh token.
Amazon Ads API refused access (403)
Amazon Ads API refused access (403)
Your client ID has not been allow-listed for the Advertising API yet, or the token is missing the
advertising::campaign_management scope. Check the onboarding status with Amazon and authorize again with the scope.This Amazon account has no advertising profiles in any region
This Amazon account has no advertising profiles in any region
The account that authorized has no access to an advertising account. Invite it under Account settings > User management in the Amazon Ads console, then authorize again.
Summary
Related
White-label Connections
Overview of custom app connections across channels
Get Report
Pull Amazon Ads performance data

