.png)
Amazon Ads Integration Guide
Integrate Amazon Ads with enterprise systems through REST APIs, asynchronous reports, bulk operations, and selected Amazon Marketing Stream signals.
Amazon Ads integration options at a glance
Amazon Ads provides versioned REST APIs for profiles, campaigns, ad groups, ads, keywords, targets, portfolios, budgets, and reporting. It also supports bulk campaign-management operations and asynchronous report generation, where an integration submits a request, polls its status, and retrieves the completed result. Selected near-real-time signals are available through Amazon Marketing Stream over AWS infrastructure, but this is not a general-purpose webhook service. OAuth 2.0 with Login with Amazon, bearer tokens, client IDs, refresh tokens, and profile-scoped requests secure access. Martini can orchestrate these calls, transform JSON or downloaded report data, apply validation and business rules, and load results into downstream systems.
| Integration point | Supported by Amazon Ads? | Common use cases | How Martini supports it |
|---|---|---|---|
| REST APIs | Yes | Manage and retrieve Profiles, Campaigns, Ad groups, Ads, Keywords, Targets, Portfolios, budgets, and supported reporting resources. REST is the primary Amazon Ads integration interface. | Martini can consume the versioned REST APIs in workflows, manage request headers and authentication configuration, map JSON responses, and expose normalized APIs for downstream systems. |
| Bulk / async / batch APIs | Yes | Bulk operations can reduce individual API calls for supported campaign-management resources. Report generation is asynchronous and requires submission, polling, and retrieval. | Martini can orchestrate bulk requests and long-running report workflows, persist request identifiers, poll with bounded intervals, and handle partial or failed results. |
| File / report downloads | Limited | Reports and bulk-operation data may be returned as downloadable files or structured responses, depending on the API resource and version. | Martini can process JSON, CSV, and other supported response formats, transform them into canonical models, and load them into databases or analytics platforms. |
| Amazon Marketing Stream | Limited | Selected near-real-time advertising signals can be delivered through AWS infrastructure, including Amazon Kinesis Data Streams. Coverage is not equivalent to general campaign webhooks. | Martini can normalize and route stream data when an appropriate AWS delivery architecture makes the data available to the integration, while REST remains the control and reporting interface. |
| Webhooks / outbound callbacks | Limited | Amazon Ads does not document a general-purpose webhook mechanism for all campaign, ad, keyword, target, or reporting changes. Selected stream signals are available through Amazon Marketing Stream. | Martini can receive webhook-style inputs where an intermediary exposes them, but Amazon Marketing Stream and scheduled polling must not be treated as universal Amazon Ads webhooks. |
| Authentication | Yes | OAuth 2.0 with Login with Amazon uses advertiser authorization, client ID, refresh token, bearer access token, and Amazon Ads profile scope. | Martini can store client credentials and refresh tokens as environment secrets, renew short-lived access tokens, and include the required authorization and profile headers in API calls. |
| GraphQL APIs | Not confirmed | No official Amazon Ads GraphQL API was identified in the supplied documentation. The documented approach is REST-based. | Martini can consume GraphQL generally, but an Amazon Ads integration should use the confirmed REST APIs unless Amazon provides a supported GraphQL endpoint for the required resource. |
| SOAP APIs | No | Amazon Ads documentation describes REST-based APIs rather than SOAP services. | Martini can consume SOAP services from other systems in a broader workflow, but SOAP is not an Amazon Ads integration method supported by the supplied research. |
How Amazon Ads exposes data and business events
Amazon Ads REST APIs
Amazon Ads exposes versioned REST APIs for profile-scoped campaign management, advertising resources, targeting, budgets, and reporting. Responses are generally JSON and requests use HTTP methods such as GET, POST, PUT, and DELETE. The available objects and fields depend on the advertising product and API version.
Martini implementation pattern
Martini implementation pattern: a workflow retrieves the configured profile context, obtains or refreshes an OAuth access token, calls the relevant Amazon Ads endpoint, handles pagination and throttling, maps the response into a canonical model, and routes the result to a database, application, or normalized Martini API.
Implementation sequence
Asynchronous reports and bulk operations
Amazon Ads supports bulk campaign-management operations for supported products and asynchronous reporting. A report is submitted first, then its status is polled before the completed report is retrieved. Bulk data and reports may use downloadable files or structured responses depending on the resource and version.
Martini implementation pattern
Martini implementation pattern: a scheduled workflow creates a report or bulk request, persists its request identifier and reporting window, polls at a controlled interval, retrieves the completed result, transforms the data, and writes it to a warehouse or business system. The workflow handles timeouts, expired requests, partial failures, and overlap-window deduplication.
Implementation sequence
Amazon Marketing Stream signals
Amazon Marketing Stream provides selected near-real-time advertising signals through AWS infrastructure, including Amazon Kinesis Data Streams. It is a separate mechanism from ordinary Amazon Ads REST API webhooks and does not provide arbitrary event coverage for every campaign or reporting change.
Martini implementation pattern
Martini implementation pattern: an AWS-based delivery architecture makes supported stream data available, after which Martini normalizes, enriches, validates, and routes selected signals to operational applications, alerts, or analytics stores. REST APIs remain appropriate for campaign management and reporting not covered by the stream.
Implementation sequence
Common Amazon Ads integration patterns
Pattern 1: Load Amazon Ads reports into a data warehouse
When to use this pattern
Use this pattern for centralized performance reporting across profiles, marketplaces, advertising products, campaigns, ad groups, keywords, targets, and reporting periods. It is appropriate when metrics need historical retention and repeatable incremental processing.
Integration direction
Example Mapping
| Amazon Ads Field | Canonical Field | Target Field |
|---|---|---|
| profileId | advertisingProfileId | advertising_profile_id |
| campaignId | campaignId | campaign_id |
| impressions | impressionCount | impressions |
| cost | advertisingSpend | spend |
Martini implementation pattern
A scheduled Martini workflow iterates through configured profiles, submits a report, persists the request ID, polls until completion, retrieves the result, and maps campaign and performance dimensions into warehouse tables. It reprocesses a short overlap window for late attribution, deduplicates by profile, report type, date, object ID, and metric dimensions, and records failed reports for retry.
Martini capabilities used
- workflows
- scheduled execution
- API consumption
- data mapping
- business rules
- error handling
- database or warehouse delivery
Pattern 2: Govern campaign budgets and status
When to use this pattern
Use this pattern when internal policy must identify campaigns that exceed spend thresholds, lack required metadata, or have an invalid status before approved changes are sent to Amazon Ads.
Integration direction
Example Mapping
| Amazon Ads Field | Canonical Field | Target Field |
|---|---|---|
| campaign.status | campaignStatus | campaign.status |
| campaign.budget | dailyBudget | campaign.budget |
| campaign.name | campaignName | campaign.name |
| profileId | advertisingProfileId | request.profileScope |
Martini implementation pattern
Martini retrieves campaigns and related budget information, evaluates governance rules, and compares desired state with current state before issuing supported updates. Approval controls, idempotency keys or state comparisons, audit records, bounded retries, and per-item error capture reduce the risk of unintended spend changes.
Martini capabilities used
- workflows
- REST API consumption
- validation
- business rules
- data mapping
- audit logging
- retry handling
Pattern 3: Synchronize commerce products into campaigns
When to use this pattern
Use this pattern when product, price, availability, category, or promotional attributes from a commerce platform must inform Amazon Ads campaign-management requests for supported advertising products.
Integration direction
Example Mapping
| Amazon Ads Field | Canonical Field | Target Field |
|---|---|---|
| product.id | productIdentifier | Amazon Ads product or target identifier |
| product.category | productCategory | targeting category |
| inventory.available | availabilityStatus | campaign eligibility rule |
| product.price | currentPrice | promotion or governance input |
Martini implementation pattern
Martini retrieves commerce data, normalizes marketplace and product attributes, checks eligibility and campaign dependencies, and constructs only the Amazon Ads requests supported by the selected product and API version. The workflow sequences parent and child resources, rejects invalid products, and records per-item outcomes for replay.
Martini capabilities used
- workflows
- API consumption
- mapping and transformation
- validation
- conditional routing
- dependency handling
- error handling
Pattern 4: Route selected Amazon Marketing Stream signals
When to use this pattern
Use this pattern when the required near-real-time advertising signals are available through Amazon Marketing Stream and need to reach operational analytics, alerting, or downstream applications.
Integration direction
Example Mapping
| Amazon Ads Field | Canonical Field | Target Field |
|---|---|---|
| stream profile identifier | advertisingProfileId | profile_id |
| stream event timestamp | eventTimestamp | event_timestamp |
| stream advertising signal | signalType | signal_type |
| stream object identifier | advertisingObjectId | object_id |
Martini implementation pattern
After AWS delivers supported stream data, Martini validates the message, preserves profile and signal context, enriches it with internal reference data, and routes it to the appropriate operational or analytical destination. The workflow handles duplicate messages and malformed payloads without treating the stream as a substitute for REST campaign management.
Martini capabilities used
- event-driven workflows
- data mapping
- validation
- conditional routing
- deduplication
- error handling
Applications commonly integrated with Amazon Ads
Amazon Ads data is commonly combined with commerce, finance, customer, and analytics platforms. These integrations typically use Amazon Ads REST APIs or reports as the source, while Martini manages authentication, profile-specific processing, transformation, validation, and delivery to the target application.
| Application | Scenario | Direction | Martini Pattern |
|---|---|---|---|
| Amazon Seller Central | Align marketplace product, sales, catalog, and advertising performance data while keeping advertising operations scoped to the relevant marketplace context. | Amazon Seller Central → Martini → Amazon Ads | Retrieve or receive approved catalog and marketplace data, map product and marketplace attributes to the applicable Amazon Ads campaign model, validate product eligibility and dependencies, and submit supported changes through the Amazon Ads REST API. Reports can flow through Martini to a shared analytics model. |
| Shopify | Use product, inventory, order, and catalog information to inform advertising operations and compare advertising performance with commerce results. | Shopify → Martini → Amazon Ads | Schedule Shopify extraction, normalize product and availability data, apply marketplace and campaign rules, and call supported Amazon Ads endpoints. Retrieve Amazon Ads reports separately and join them to Shopify commerce data in a warehouse or reporting model. |
| Salesforce | Connect advertising investment and performance with customer, account, opportunity, and marketing reporting processes. | Amazon Ads → Martini → Salesforce | Request profile and campaign reports, transform campaign and performance dimensions into Salesforce-compatible objects or a reporting payload, validate attribution fields, and write only approved data while recording report and profile identifiers for traceability. |
| NetSuite | Reconcile advertising spend and performance with budgeting, finance, and operational reporting. | Amazon Ads → Martini → NetSuite | Retrieve completed Amazon Ads reports, normalize currency, marketplace, date, campaign, and metric dimensions, apply finance-specific validation, and deliver summarized or detailed data to NetSuite or an intermediate database according to the organization's accounting model. |
| Snowflake | Centralize campaign, keyword, targeting, and performance data for historical analysis and cross-channel reporting. | Amazon Ads → Martini → Snowflake | Use scheduled Martini workflows to iterate through configured profiles, submit and poll report requests, retrieve results, preserve report granularity and attribution dimensions, deduplicate overlap windows, and load modeled data into Snowflake. |
| Google BigQuery | Combine Amazon Ads data with commerce, web, and customer datasets for dashboards and analytical models. | Amazon Ads → Martini → Google BigQuery | Extract reports through asynchronous Amazon Ads operations, transform JSON or downloaded report data into a canonical schema, retain profile and marketplace context, and load incremental partitions into BigQuery with repeat-safe keys. |
| Tableau | Visualize spend, impressions, clicks, conversions, attribution, and marketplace performance. | Amazon Ads → Martini → Tableau | Use Martini to retrieve and normalize Amazon Ads reports into a database or warehouse model, preserve metric definitions and reporting grain, and expose the curated data for Tableau rather than having Tableau depend directly on Amazon Ads request orchestration. |
| Looker | Provide governed advertising metrics and cross-channel performance models. | Amazon Ads → Martini → Looker | Build a scheduled reporting workflow that loads profile- and product-specific Amazon Ads data into the organization's warehouse, applies canonical metric and attribution rules, and makes the modeled tables available to Looker. |
How to build a Amazon Ads integration in Martini
Objective
Establish Amazon Ads authorization and profile configuration without exposing credentials in workflow payloads or logs.
Instructions in Martini
- Register and authorize the Amazon Ads application through Login with Amazon.
- Store the client ID, refresh token, and related credentials in Martini secrets.
- Store each Amazon Ads profile ID and marketplace context as environment configuration.
- Configure OAuth token renewal and required Amazon Ads request headers.
Objective
Select a trigger that matches the integration's latency and data requirements.
Instructions in Martini
- Use a scheduler for reports, campaign governance, and incremental synchronization.
- Use a workflow start trigger or API when another application initiates a controlled operation.
- Use an AWS-based stream pattern only for signals confirmed to be available through Amazon Marketing Stream.
- Do not assume that all Amazon Ads changes can invoke general webhooks.
Objective
Call the appropriate Amazon Ads resource and safely manage pagination, asynchronous state, or stream delivery.
Instructions in Martini
- Call the versioned REST endpoint for the selected advertising product.
- Persist report or bulk request identifiers before polling.
- Continue through paginated collections until the endpoint indicates completion.
- Apply bounded backoff for throttling and transient failures.
Objective
Coordinate profile iteration, dependencies, asynchronous operations, and target delivery in a maintainable workflow.
Instructions in Martini
- Process profiles with isolated configuration and error boundaries.
- Sequence campaigns before dependent ad groups, ads, keywords, or targets when required.
- Set maximum polling duration and handle failed or expired reports.
- Record source profile, endpoint, API version, request ID, and reporting window.
Objective
Convert Amazon Ads responses and reports into canonical models suitable for downstream systems.
Instructions in Martini
- Map campaign, ad group, ad, keyword, target, metric, currency, and marketplace fields explicitly.
- Preserve report type, attribution rules, date grain, and advertising product.
- Process JSON or supported downloaded report formats with appropriate transformations.
- Use overlap-window keys to prevent duplicate report loads.
Objective
Protect advertising spend and data quality through validation, approvals, and repeat-safe processing.
Instructions in Martini
- Validate required identifiers, profile scope, product-specific fields, and parent-child dependencies.
- Compare current and desired campaign state before sending updates.
- Apply spend, status, metadata, and eligibility policies.
- Route rejected items and business-rule failures to an auditable error path.
Common Amazon Ads data objects used in integrations
| Object | Typical Use | Common target systems | Martini handling |
|---|---|---|---|
| Profiles | Represent advertising accounts and marketplace-specific scopes used to authorize API operations. | Configuration stores, data warehouses, finance platforms, and governance applications | Martini stores profile configuration separately from workflow logic, uses the profile ID to scope requests, and preserves marketplace and authorization context in downstream records. |
| Campaigns | Define campaign-level configuration, status, budgets, targeting strategy, and advertising objectives. | Amazon Ads, governance systems, commerce platforms, warehouses, and reporting tools | Martini retrieves or updates supported campaign fields, compares desired and current state, applies validation and approval rules, and records request and outcome details. |
| Ad groups | Group ads and targeting expressions within a campaign. | Amazon Ads, campaign governance systems, warehouses, and analytics platforms | Martini maps parent campaign dependencies, validates required relationships, processes paginated collections, and captures per-item errors during bulk or individual operations. |
| Ads | Represent Sponsored Products, Sponsored Brands, Sponsored Display, or other supported advertising creatives and placements. | Amazon Ads, content or commerce systems, warehouses, and reporting applications | Martini transforms supported creative and placement attributes, applies product-specific rules, and avoids assuming that fields are uniform across advertising products or API versions. |
| Keywords | Define keyword targets with bids, match types, and statuses. | Amazon Ads, campaign governance systems, commerce platforms, and analytics stores | Martini can compare keyword state, normalize bid and status values, apply spend or governance controls, and issue repeat-safe updates to supported endpoints. |
| Targets / targeting clauses | Define product, audience, category, contextual, or other targeting criteria. | Amazon Ads, campaign-management applications, warehouses, and reporting tools | Martini preserves targeting type and campaign hierarchy, validates dependencies and product-specific fields, and records rejected items separately from successful changes. |
Authentication and security considerations
OAuth 2.0 and profile scope
Amazon Ads uses OAuth 2.0 with Login with Amazon. Requests use a bearer access token, client ID, and Amazon Ads advertising profile scope. The profile ID identifies the advertiser account and marketplace context for the request.
Secrets and authorization
Access tokens are short-lived and should be renewed with the refresh token. Martini should store client credentials and refresh tokens as environment secrets rather than embedding them in workflows, payloads, or logs.
- Separate profile configuration from workflow logic.
- Restrict access to authorization secrets and profile settings.
- Exclude tokens and authorization values from operational logs.
- Review advertiser permissions by advertising product and API version.
Operational considerations for Amazon Ads integrations
Rate limits and pagination
Amazon Ads applies rate limits and may return throttling responses. Workflows should control concurrency, use bounded retries with backoff, and process collection pages until completion.
Asynchronous reports
Report creation and retrieval are separate operations. Persist request identifiers, poll at controlled intervals, set a maximum wait time, and handle failed or expired reports without creating duplicate requests.
Data quality and repeatability
Retain profile, marketplace, advertising product, report type, currency, date range, metric grain, API version, and attribution context. Reprocess a short overlap window for late-arriving metrics and deduplicate using deterministic source keys.
Testing and observability
Test each advertising product and API version with representative profiles. Record endpoint, request or report ID, status, retry count, date range, and processed totals while excluding sensitive credentials.
Why use Martini instead of scripts or point-to-point integrations?
Centralized orchestration
Martini coordinates Amazon Ads authorization, profile iteration, REST calls, asynchronous polling, bulk operations, transformations, target delivery, and error handling in maintainable workflows.
Controlled business logic
Campaign and budget changes can pass through validation, approval rules, state comparison, dependency handling, and audit logging before they reach Amazon Ads.
Reusable integration assets
Instead of duplicating scripts for each marketplace or downstream application, Martini can expose normalized APIs, reuse workflow logic, and apply consistent mappings, retries, and observability across profiles.
- Support scheduled, API-led, batch, and selected event-driven patterns.
- Keep credentials and profile configuration outside workflow code.
- Route Amazon Ads data to databases, warehouses, and business applications.
Frequently asked questions
Amazon Ads can be integrated through its versioned REST APIs for profiles, campaigns, ad groups, ads, keywords, targets, portfolios, budgets, and reporting. Enterprise workflows can also use bulk operations, asynchronous report generation, downloadable report data, and selected Amazon Marketing Stream signals. OAuth 2.0 with Login with Amazon provides authorization.
Yes. Martini can integrate with Amazon Ads by consuming its REST APIs, managing OAuth credentials and profile scope, polling asynchronous reports, processing bulk or report data, applying transformations and business rules, and delivering results to databases, warehouses, or business applications.
No. A dedicated Amazon Ads connector is not required. Martini can use Amazon Ads' confirmed native REST APIs, authentication methods, asynchronous report operations, bulk data, and selected Amazon Marketing Stream integration patterns.
Lonti does not charge an additional per-connector or per-vendor fee to integrate Amazon Ads. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Amazon, AWS, cloud infrastructure, or other third-party systems based on subscriptions, usage, and deployment model.
REST APIs are the primary method for campaign management, profiles, targeting, and supported reporting resources. Bulk operations are useful for supported large-scale changes, while asynchronous reports are appropriate for periodic performance data. Amazon Marketing Stream can provide selected near-real-time signals through AWS, but it is not a general webhook mechanism. No official Amazon Ads GraphQL or SOAP API was identified.
Amazon Ads should not be treated as providing general webhooks for every campaign or reporting change. Amazon Marketing Stream provides selected near-real-time signals through AWS infrastructure, with its own setup and coverage constraints. For many use cases, scheduled polling and asynchronous reports remain the appropriate approach.
A Martini workflow can iterate through Amazon Ads profiles, retrieve paginated resources or reports, and map product-specific objects into a canonical model. Incremental reporting commonly uses a persisted watermark plus a short overlap window for late attribution, with deduplication based on profile, report type, date, object identifier, and metric dimensions.
Martini workflows can apply bounded retries with backoff for throttling and transient failures, enforce report polling timeouts, capture per-item bulk failures, and route invalid data to an error path. Campaign changes should use validation, state comparison, idempotent processing, and audit logging. Sensitive tokens should be excluded from logs.
Related Martini documentation
Workflows
Data Processing
Build a maintainable Amazon Ads integration
Use Martini to orchestrate Amazon Ads APIs, reports, bulk operations, and selected streaming signals across your enterprise systems with secure configuration, reusable workflows, governed transformations, and operational visibility.