Amazon Ads Partner Opportunities
These are Amazon recommendations. Amazon Ads Partner Network publishes them. DataDoe stores the recommendations Amazon returns for a saved Partner Network account ID and can send an apply request when Amazon marks the row as applicable.
The customer table is amazon_ads_partner_opportunities. It is off until you enable it and save a Partner Network account ID on the Amazon Ads connection. Ordinary Amazon Ads use does not require this ID.
Who can use it
You need an Amazon Ads connection and a Partner Network account ID that Amazon accepts for that connection. Several advertiser connections in the same Organization can share one ID when they use the same Amazon Ads authorization. DataDoe does not share that authorization with another Organization.
A saved ID is not proof of access. DataDoe marks it unverified when Amazon does not confirm a catalog read. If Amazon returns 401 or 403, DataDoe does not save the ID and asks you to check Partner Network permissions or reconnect Amazon Ads.
How to add the Partner Network account ID
- Open the account on the Accounts page.
- Copy the ID from Amazon Advertising Partner Network user settings (opens in a new tab).
- Next to Partner Network account ID, enter that ID. It looks like
amzn1.ads1.ma1.…and can be at most 512 characters. - Save. DataDoe reads one catalog page with that ID.
- Enable the Partner Opportunities table if you want the rows in exports and BigQuery.
Clearing the ID turns Partner Network collection and Actions off. The Amazon Ads connection and any DSP advertiser ID stay in place. The next sync removes partner rows for that connection.
Which account ID is which
- The Partner Network account ID is the manager account Amazon uses for this catalog.
- An Ads profile ID is the advertising profile for one marketplace, not the Partner Network account ID.
- An Ads account ID is the advertiser account on the connection, not the encrypted advertiser ID in a recommendation file.
- A demand-side platform (DSP) advertiser ID is a separate setting, and clearing the Partner Network account ID does not change it.
What DataDoe collects
DataDoe reads the Partner Network catalog and downloads each opportunity file that has data. One customer row is one row from the latest complete file for that opportunity and Ads connection. Some rows are recommendations. Other rows list products or insights and have no recommendation ID. A partner does not receive every catalog entry. An empty file, or a catalog entry with no file, removes older rows for that opportunity only. A failed download keeps the previous rows.
Rows that do not match an advertiser on the authorized connections stay out of the customer table. DataDoe does not assign them to an arbitrary connection.
Most opportunities refresh daily or hourly at Amazon. Path to purchase insights refresh quarterly. DataDoe runs a complete sync once a day. A later run the same day retries a failed sync. Do not treat the table as hourly.
The nine documented families
Amazon documents these families. DataDoe stores whichever of them Amazon returns. It also keeps any other objective Amazon returns, without promising a separate Action for it.
- Campaign optimization
- Amazon account team recommendations
- Unlaunched ASINs (Amazon Standard Identification Numbers)
- Category insights
- Click credits
- Deals
- Advertiser insights
- Path to purchase insights
- Share of voice insights
Amazon account team recommendations can be applied when the row has a recommendation ID, a seller or vendor advertiser, an entity, a marketplace, and a Partner Network apply endpoint, and the recommendation is not expired or removed. can_apply shows that check. DataDoe checks it again when the Action runs.
Other families stay in the table for review. Suggestions without an Amazon apply endpoint still use the existing campaign, ad, ad group, target, and budget rule Actions.
Click credit rows and deal rows are recommendations. DataDoe does not redeem credits or create deals.
Estimated sales and estimated clicks stay as Amazon sent them. A blank value is null. DataDoe does not turn a percentage or a text amount into another unit.
Fields
partner_opportunity_id is the catalog opportunity. recommendation_id is one row inside that opportunity. They are different IDs.
latest_application_status is the latest apply request DataDoe recorded. A new file does not delete that history. latest_amazon_status is the status Amazon returned later: PUBLISHED, IN_PROGRESS, SUCCESS, FAILED, or REJECTED. latest_application_checked_at is the time of that status read. A status read keeps the original submission time.
first_published_at, data_source_updated_at, and metadata_updated_at come from the opportunity freshness context when Amazon sends those times.
ACCEPTED means Amazon accepted the apply request. It does not mean the change is complete.
Actions
Find, apply, and status use the same Action permissions, limits, and dry run as other Actions.
AMAZON_ADS_PARTNER_OPPORTUNITIES_FINDreads one catalog page of metadata, not the recommendation rowsmaxResultsis 1 to 100 and defaults to 10- pass
nextTokento read the next page - a response limited to one seller omits partner-wide advertiser and row counts
AMAZON_ADS_PARTNER_RECOMMENDATIONS_APPLYsends 1 to 100 recommendation IDs that share one opportunity, advertiser, entity, and marketplace- dry run does not call Amazon
- HTTP 202 means Amazon accepted the request, and HTTP 422 can accept some IDs and reject others
- DataDoe keeps each apply outcome
AMAZON_ADS_PARTNER_RECOMMENDATION_STATUS_FINDreads the status of 1 to 500 recommendation IDs and does not send another apply request- check status before you retry an apply whose result you do not know
Advertiser and profile filters on find are alternatives. A row can match either filter. DataDoe still limits the call to the selected seller or vendor. An advertiser ID that is not in that connection is rejected and is not sent to Amazon.
Find one catalog page:
1{
2 "type": "AMAZON_ADS_PARTNER_OPPORTUNITIES_FIND",
3 "sellerOrVendorId": "SELLER_OR_VENDOR_ID",
4 "dryRun": true,
5 "details": {}
6}Apply recommendations that share one opportunity, advertiser, entity, and marketplace:
1{
2 "type": "AMAZON_ADS_PARTNER_RECOMMENDATIONS_APPLY",
3 "sellerOrVendorId": "SELLER_OR_VENDOR_ID",
4 "dryRun": true,
5 "details": {
6 "partnerOpportunityId": "PARTNER_OPPORTUNITY_ID",
7 "advertiserType": "SELLER",
8 "encryptedAdvertiserId": "ENCRYPTED_ADVERTISER_ID",
9 "entityId": "ENTITY_ID",
10 "marketplace": "US",
11 "recommendationIds": ["RECOMMENDATION_ID"]
12 }
13}Read status with the same details and type AMAZON_ADS_PARTNER_RECOMMENDATION_STATUS_FIND. Dry run checks the saved rows and does not call Amazon.
When you see no rows
No rows can be a valid result. Amazon may have no file, or the file may list no recommendations for this advertiser. The table also stays empty until the ID is saved, the table is enabled, and the daily sync has run.
An empty file removes older rows for that opportunity and connection. Clearing the Partner Network account ID, revoking the Ads connection, or removing a connection from the shared account also removes that connection's rows.
If can_apply is false, the recommendation is expired, removed, or has no Partner Network apply endpoint. Apply rejects it. Status can still read a matching row.
If saving the ID fails with a permissions message, the Amazon login needs Partner Network access, or the Ads connection needs to be authorized again.
Campaign diagnostics in Amazon Marketing Stream are a different recommendation feed. A diagnostics recommendation ID is not a Partner Network opportunity ID.

