Skip to content

Cover the Amazon Ads specs we do not generate #2

Description

@lineoffligbot

AmazonAdsAPIALLMerged_prod_3p.json is not "all". It contains only the unified
/adsApi/v1/{create,query,update,delete}/* surface: 45 paths. Amazon publishes
at least ten more live v3 specs in the same CloudFront directory that we do not
generate.

Spec Version Paths Generated
SponsoredProducts 3.0 64 no
SponsoredBrands 3.0 50 no
SponsoredTV 3.0 21 no
SponsoredDisplay 3.0 17 no
AmazonMarketingCloud 3.0 11 no
Audiences 3.0 4 no
Portfolios 3.0 3 no
BrandMetrics 3.0 2 no
Insights 3.0 1 no
Moderation 3.0 1 no
Locations 3.0 1 no
AmazonAdsAPIALLMerged 3.0 45 yes

All resolve at https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/<Name>_prod_3p.json.

We currently cover roughly 45 of ~220 live paths. The 175 we skip include much
of what callers reach for today: Sponsored Products keywords, negative keywords,
product ads, budget rules, and bid recommendations.

Portfolios is a concrete example. It is absent from the merged spec entirely
(grep -ic portfolio returns 1, and that hit is an unrelated error code), yet
Portfolios_prod_3p.json is live at v3.0:

POST,PUT  /portfolios
POST      /portfolios/budget/usage
POST      /portfolios/list

Meanwhile query_campaign already accepts portfolio_id_filter, so you can
filter by a portfolio you have no way to create or list.

Open question, blocking

Is /adsApi/v1 intended to fully supersede the per-product v3 APIs?

  • If yes, generating SP/SB/SD/STV v3 is migration-period work with a known shelf
    life, and the right move may be to cover only the specs with no v1 equivalent
    (Portfolios, AMC, Audiences, BrandMetrics, Insights, Moderation, Locations).
  • If no, the gem's coverage story is misleading as it stands.

Worth resolving before writing any generator code.

Notes

  • Generator::Specs::SPECS currently lists four URLs. Adding specs is cheap; the
    question above is what decides which.
  • No spec other than the merged one and profiles.yaml declares servers, so
    the endpoint logic needs no change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions