Connecting Craft CMS to Amazon Ads
Craft is a developer-oriented CMS, usually built bespoke by an agency, which means the implementation is whatever that agency decided and nothing is standard. Amazon Ads spans two entirely different situations, and most guidance discusses them as though they were one. The join between them succeeds or fails on one thing: whether a click identifier only for off-Amazon destinations reaches the Craft Commerce order before the conversion happens, because Amazon Ads can only match a conversion it can tie back to a click it recognizes.
Free30 minutesNo obligation
Specific to this pair
Craft CMS and Amazon Ads: only DSP traffic reaches your orders
Only Amazon DSP traffic reaches Craft orders. Capture the click parameter on landing, outside any statically cached template, and write it to a cart custom field, which carries to the completed Order element. Fire the conversion from the order-complete listener with the order reference as ID, confirming upload method and window in your DSP account.
A Craft Commerce store and Amazon Ads meet in only one place: Amazon DSP sending shoppers to your own Craft site. Sponsored Products and Sponsored Brands send people to an Amazon listing, and those sales never touch a Craft order, so there is nothing for an event listener to report. Many Craft sites are also brand sites with a "Buy on Amazon" button rather than a store; there the site is a referrer to Amazon, and the relevant tool is an Amazon Attribution tag on that outbound link, not a conversion feed.
If you run DSP to the Craft store, capture the click parameter on landing and write it to a custom field on the cart. In Craft Commerce the cart is already an Order element before it completes, so the value carries through to the completed order without a separate table. Fire the conversion from the order-complete listener in PHP, using the order reference as the ID, and confirm in your DSP account which upload method and conversion window apply to your seat.
The common break is a statically cached landing page that never reads the query string, so the parameter is gone before a cart exists. If most of your Amazon budget is Sponsored Products, skip this build and read Amazon's own reports instead.
Craft → Amazon Ads · what breaks
Why this join usually fails — Craft → Amazon Ads
- 01
A click identifier only for off-Amazon destinations never reaches Craft
Craft's template caching and static caching plugins both serve stored output, and because every build is custom, where the capture code lives differs per site. There is no standard place to look.
- 02
Every install is bespoke
There is no standard Craft setup, so an approach that worked on another Craft site may have nothing to attach to on this one. Read the build before quoting.
- 03
Per-order attribution promised on Amazon-completed sales
It does not exist and cannot be built. Amazon owns the checkout and does not release the join. Any proposal offering per-order attribution on sales completing inside Amazon is describing something unavailable.
- 04
Nothing reconciles afterwards
For off-Amazon conversions, reconcile normally against your own records. For on-Amazon sales, Amazon Attribution is aggregated and delayed by construction — it cannot be reconciled per order and is not meant to be.
Craft → Amazon Ads · the fix
What working looks like — Craft → Amazon Ads
A click identifier only for off-Amazon destinations on every order
Conversions arriving in Amazon Ads
Off-Amazon conversions appear against the campaign. On-Amazon sales appear in Amazon's aggregated attribution reporting, delayed.
Reconciled against the source
Craft CMS's own records are the reference, not either dashboard.
Craft → Amazon Ads · architecture
How Craft and Amazon Ads actually connect
- 1
Craft CMS holds the truth
Craft installs are bespoke by nature. Establish how this particular build models a completed order before assuming anything transfers from another Craft site.
- 2
Amazon Ads needs a click to match
For off-Amazon destinations, an event with a value and the click identifier. For on-Amazon conversions, nothing — the measurement is not yours to do and Amazon Attribution provides aggregated reporting instead.
- 3
The identifier is the bridge
A click identifier only for off-Amazon destinations, captured at the visit and carried into the Craft Commerce order.
- 4
The event source decides reliability
Fire from the event listener in PHP rather than a Twig template, which may be cached.
- 5
Deduplication at the destination
Only relevant for off-Amazon conversions where both a tag and a server event exist. For on-Amazon purchases the question does not arise, because you are not measuring the conversion at all.
Craft → Amazon Ads · normal or broken
Working vs. broken, side by side — Craft → Amazon Ads
Normal, not a fault
A click identifier only for off-Amazon destinations present on the order
Visible on the record itself in Craft CMS, not merely captured somewhere on the site.
Sent from the Craft Commerce order-complete event
Deduplicated correctly
Only relevant for off-Amazon conversions where both a tag and a server event exist. For on-Amazon purchases the question does not arise, because you are not measuring the conversion at all.
Reconciles with the source
Amazon Ads's count and Craft CMS's records agree within a few percent over a closed window.
Actually broken
A click identifier only for off-Amazon destinations missing on most records
Craft's template caching and static caching plugins both serve stored output, and because every build is custom, where the capture code lives differs per site. There is no standard place to look.
Sent from the browser
There is no standard Craft setup, so an approach that worked on another Craft site may have nothing to attach to on this one. Read the build before quoting.
Counted twice, or not at all
It does not exist and cannot be built. Amazon owns the checkout and does not release the join. Any proposal offering per-order attribution on sales completing inside Amazon is describing something unavailable.
Nobody has reconciled it
The dashboard shows a number and no one has compared it to Craft CMS.
Craft → Amazon Ads · diagnose
Diagnostic order — Craft → Amazon Ads
- 01
Count orders carrying a click identifier only for off-Amazon destinations
- 02
Follow one real conversion end to end
- 03
Read how this specific build handles order completion
Assumptions carried from another Craft project are the main source of wasted time here.
- 04
Establish which Amazon product and which destination you are running
On-Amazon and off-Amazon are different measurement problems, and conflating them wastes the entire engagement.
- 05
Read the match rate, not the success message
For off-Amazon conversions, reconcile normally against your own records. For on-Amazon sales, Amazon Attribution is aggregated and delayed by construction — it cannot be reconciled per order and is not meant to be.
Craft → Amazon Ads · prove
How it gets proven — Craft → Amazon Ads
Against Craft CMS's own records, not against either platform's dashboard.
Source of truth
Craft Commerce's order records in your own database, filtered to completed.
- A click identifier only for off-Amazon destinations confirmed present on a live order.
- The ad product and destination confirmed in writing before any build, so the right measurement question is being answered.
- Order custom field confirmed populated on an order placed as an anonymous visitor through cache.
Craft → Amazon Ads · free audit
What we check in the free audit
- Count orders carrying a click identifier only for off-Amazon destinations
- Follow one real conversion end to end
- Read how this specific build handles order completion
- Establish which Amazon product and which destination you are running
- Read the match rate, not the success message
Checked against
Craft Commerce's order records in your own database, filtered to completed.
Free30 minutesNo obligation
Craft → Amazon Ads · when not to buy
When you don't need this — Craft → Amazon Ads
- If Amazon Ads already reports conversions that reconcile against Craft CMS's records within a few percent, this join is working and there is nothing to buy.
- Measure identifier coverage yourself first — pull your last hundred orders and count how many carry a click identifier only for off-Amazon destinations.
- If the original agency is still engaged, the fastest path is usually specifying the field and having them add the hook.
- If all your Amazon spend drives to Amazon listings, there is no conversion tracking build here — only a reporting exercise in Amazon's own tools.
Craft → Amazon Ads · what we deliver
What gets built — Craft → Amazon Ads
Identifier capture into Craft
Capture the identifier and store it as a custom field on the order through a Craft event listener, server-side.
Event source: the Craft Commerce order-complete event
Fire from the event listener in PHP rather than a Twig template, which may be cached.
Dispatch to Amazon Ads
Conversion upload for off-Amazon destinations. For on-Amazon sales, Amazon's own attribution reporting is the only view.
Reversals where they exist
Refunds and cancelled orders are recorded against the order.
Written guarantee
95%+ tracking accuracy
Measured against Craft Commerce's order records in your own database, filtered to completed.. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Craft → Amazon Ads questions, answered
No. Amazon Attribution measures traffic you send to Amazon listings and the sales that happen on Amazon; a Craft Commerce order is outside its view.
Check the Craft Plugin Store, but don't assume one exists. A small custom module listening for order completion is the usual route for DSP conversions.
Almost always because a click identifier only for off-Amazon destinations never reached the Craft Commerce order. Craft's template caching and static caching plugins both serve stored output, and because every build is custom, where the capture code lives differs per site. There is no standard place to look. Measure coverage before debugging the dispatch.
This is the distinction that decides everything. Sponsored formats driving to an Amazon listing produce conversions inside Amazon's checkout — no click identifier reaches you and no per-order join is available to anyone. Amazon DSP driving to your own site is an ordinary integration where a click identifier lands on your page and can be captured like any other network's. Establish which you are running before anything else.
The Craft Commerce order-complete event. Fire from the event listener in PHP rather than a Twig template, which may be cached.
For off-Amazon conversions, reconcile normally against your own records. For on-Amazon sales, Amazon Attribution is aggregated and delayed by construction — it cannot be reconciled per order and is not meant to be.
More on Craft → Amazon Ads
- Craft → Google AdsConnecting Craft CMS to Google Ads
- Craft → Microsoft AdsConnecting Craft CMS to Microsoft Ads
- Craft → Apple Search AdsConnecting Craft CMS to Apple Search Ads
RELATED GUIDES
Where Craft → Amazon Ads fits in the rest of your tracking
- Amazon Ads · Local servicesAmazon Ads conversion tracking for local service businesses
- Amazon Ads · EcommerceAmazon Ads conversion tracking for ecommerce brands
- Amazon Ads × CRM DealsHow to reconcile Amazon Ads against your CRM's closed-won deals
- Amazon Ads · Comparison page → demoHow to track comparison page visit to demo request for Amazon Ads
- Ghost → Amazon AdsConnecting Ghost memberships to Amazon Ads
- Craft → TikTokConnecting Craft CMS to TikTok Events API
- Local servicesConversion tracking for local businesses, where most conversions bypass the website
- Webflow → Amazon AdsConnecting Webflow to Amazon Ads
Free · 30 min
Get Craft and Amazon Ads joined properly
Free30 minutesNo obligation
