TL;DR
Snapchat will only credit a conversion it can match to a person and count exactly once. That is the whole design problem, and it decides everything about how you configure server-side tracking. This guide starts from Snapchat's side (what the Conversions API requires on a PURCHASE, and the two deduplication windows it applies), then maps those requirements onto the Magento addon: the ten server events it sends, the access token and pixel ID it needs, the logged-in-only switch that changes how guest sessions are stitched, and multi-advertiser routing. One rule runs through all of it. The server-side event list and the client-side Snapchat Pixel event list are different lists, and treating them as one is how stores end up with gaps they cannot explain.
Key Takeaways
- The addon sends ten server-side events: Purchase, AddToCart, Checkout Initiated, Add Payment Info, ViewCategory, ViewContent, PageVisit, Search, SignUp, and AddToWishlist [1].
- It requires Google Analytics 4 PRO. The addon plugs into that extension rather than standing alone, and installs through composer only [1].
- Snapchat requires a
valueon PURCHASE events, withcurrencydrawn from its supported ISO 4217 subset [4]. - Deduplication runs on two different windows: 48 hours for the browser-to-server dedup ID pairing, and up to 30 days for PURCHASE events matched on
transaction_idagainstorder_id[5]. - Snapchat's long-lived Conversions API tokens are generated under
Ads Manager → Business Details, a section that requires Organization Admin rights [3]. - The client-side Snapchat Pixel is a separate GA4 PRO feature with its own, narrower selectable event list. Never plan coverage by combining the two lists [1][2].
- The addon shipped as v1.10.0 on November 25, 2025, and supports Magento 2.3.x through 2.4.9 across all editions [1].
- The Snapchat Conversions API addon is a separate purchase on top of the GA4 PRO extension, sold on its own product page.
What Snapchat needs before Magento sends anything
Server-side tracking guides usually open with the install command. That order gets things backwards here, because two failures that surface often are decided by the platform's own rules before any Magento setting is touched.
The first rule is on value. Snapchat's parameter reference marks value as required for the PURCHASE event, and currency carries the ISO 4217 code that value is denominated in, drawn from a supported subset rather than the full standard [4]. A purchase without a value is not a partially useful conversion. It is a conversion Snapchat cannot bid on.
Identity is the second constraint. Snapchat's user-data parameters (hashed email, hashed phone, client IP plus user agent, mobile ad ID) are what tie an event to a person [4]. This is why the logged-in-only setting further down is a real decision rather than a formality.
The third is the token, and there are two documented routes to one. The addon's token is the one WeltPixel documents under Business Manager → Ads Manager → Events Manager → Conversions API [1]. Snapchat documents the long-lived-token flow separately: Ads Manager → Business Details → OAuth Apps → Conversions API Tokens, a section only an Organization Admin can see [3]. Snapchat's long-lived tokens do not expire and you can generate several, which matters if you run separate tokens per environment [3]. Plan this before setup day, because "the marketing manager does not have the right role in Business Manager" is not a five-minute fix.
How deduplication actually works
Snapchat's own rationale for pairing the Pixel with the Conversions API is that the two give it independent signals for recognizing the same purchase across integrations [5]. It also means the same purchase can reach Snapchat twice. Snapchat resolves that with two matching rules, and they use different windows:
| Identifier pair | Dedup window |
|---|---|
Cross-channel dedup ID (Pixel client_dedup_id against CAPI event_id) |
48 hours |
transaction_id against order_id, PURCHASE events only |
Up to 30 days |
Both windows come from Snapchat's deduplication documentation, which also states the precedence: when both pairs are present the dedup-ID pair takes precedence, and the order-reference pair acts as the fallback [5]. The 48-hour window is generous for events firing seconds apart, which is the normal case. The 30-day PURCHASE window exists for the opposite case: a server-side purchase confirmed long after the browser event, which is exactly what happens on Magento stores with offline payment methods, manual order review, or a payment provider that confirms asynchronously.
One boundary to keep straight, because the two numbers get conflated. Snapchat's parameter reference caps event_time at 7 days in the past [4], so the 30-day figure governs how late a matching event can arrive, not how far back you can date one.
The addon handles the browser-to-server pairing for you. When you enable the option to also send selected events through the frontend Snapchat Pixel, duplicates are deduplicated automatically via the event ID [1]. What you should not do is assume that covers everything. If an integration elsewhere in your stack also posts purchases to the same pixel with its own IDs, no automatic pairing exists between them.
Installing and configuring the addon
Repository and auth credentials come from your weltpixel.com account's Downloadable Products section first; drop to developer mode before installing and switch back afterward [1]. The install itself is one package plus the standard Magento upgrade cycle:
composer require weltpixel/module-ga4-snapchatss
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush
Composer has been the only supported installation method for WeltPixel products since v1.16.0 in January 2026 [1]. Compatibility covers Magento 2.3.x through 2.4.9, all editions, with multiple store views supported [1].
Configuration lives at Admin → WeltPixel → Google Analytics 4 Ecommerce PRO → Snapchat Conversions API Settings. The fields that carry weight:
- Enable Snapchat Server Side Tracking. Set to Yes, the selected events go server to server alongside the pixel firing on the storefront [1].
-
Snapchat Pixel ID. Found in Snapchat Ads Manager under
Assets → Pixels. The addon uses it so browser and server events can be matched [1]. -
Snapchat Conversions API Access Token. Generated under
Business Manager → Ads Manager → Events Manager → Conversions API. Requests without a valid token are rejected outright [1]. - Send events only for logged in users. Yes restricts sending to sessions where hashed identifiers such as email are available. No lets guest events through, and Snapchat stitches them using the Pixel visitor ID [1].
- Track Events. The multiselect for the ten server-side events. Note that the option labels in the dropdown read Checkout and AddPaymentInfo rather than the longer names used in the feature list [1].
Under advanced settings sit the frontend duplication option, customer group restriction, and the file log, which writes pushed payloads to snapchat-api.log in var/log [1].
That logged-in-only toggle deserves a second look, because the trade is not the one people assume. Set to Yes, you get higher match quality on fewer events. Set to No, you get more events, stitched through the pixel visitor ID, which means their attribution quality now depends on the browser you were trying to route around. Stores where most checkouts are guest checkouts should think hard before setting it to Yes, since that is most of the funnel excluded.
Why the two event lists must stay separate
The addon lists ten server-side events. GA4 PRO separately offers a client-side Snapchat Pixel integration, and its selectable event list is narrower [1][2]. Both are real. They are not the same coverage.
The effect is a quiet failure. Someone reads the addon's event list, enables Snapchat pixel tracking, assumes the storefront now fires all ten client-side too, and builds a campaign on an audience that was never populated. Nothing errors. The audience just stays small.
Two habits prevent it. Configure the server side and the client side as separate exercises, each with its own event selection reviewed against its own documented list. And when you write down what your store tracks, record the transport next to the event name, not just the event name. ViewCategory (server) and ViewCategory (browser) are different facts about your store.
The same discipline applies across the GA4 PRO stack generally, where the Measurement Protocol event set and the dataLayer event set overlap without matching. The Magento 2 GA4 server-side tracking setup guide walks that division on the GA4 side, and the reference on which ecommerce events the GA4 extension tracks is the list to check names against.
Running more than one Snapchat advertiser
Multi-advertiser support is built in. Under the option to send ecommerce event data to multiple Snapchat endpoints, you add extra advertiser IDs, and each one needs its own access token [1].
The part that catches people: adding an advertiser there sends only the enabled server-side events. If you want PageVisit events reaching that advertiser for attribution, you also add the additional Snapchat Pixel IDs in the pixel tracking section, comma separated [1]. Configure only the server side and the second advertiser receives purchases with no browsing context underneath them, which reads in Ads Manager as conversions with weak upper-funnel attribution.
For agencies and multi-brand Magento instances, this is a two-place configuration by design. Write it into your onboarding checklist rather than rediscovering it per client.
How do you verify it is working?
Work outward from Magento, one layer at a time.
Start with the file log. Turn it on, place a test order, and look for the payload in var/log/snapchat-api.log. A written payload means Magento built and dispatched the event. An empty log points at the enabled-events multiselect, the customer group restriction, or the logged-in-only toggle, in that order of likelihood.
Then check Events Manager. Snapchat shows received events per pixel, and this is where a rejected token or a malformed payload surfaces. A payload in your log with nothing in Events Manager is an authentication or formatting problem, and the token is the first thing to re-check. Allow up to 24 hours for Events Manager diagnostics to update before drawing a conclusion [5].
Then check counting. Place an order with both the pixel and the API active, and confirm Snapchat reports one purchase rather than two. Given the 48-hour and 30-day windows above [5], a duplicate that appears immediately is a pairing problem, not a timing one.
One release note worth knowing if match quality is your concern: since v1.16.1 on March 6, 2026, hashed customer data sent with the purchase event (email, phone, address) is persisted and sent alongside other triggered events for returning customers [1]. On a store with a strong repeat rate, that changes the identifier coverage of your mid-funnel events, not just purchases.
FAQ
Do I need the GA4 PRO extension to use the Snapchat Conversions API addon?
Yes. The addon requires Google Analytics 4 PRO to be installed and configured, and its settings live inside the GA4 PRO configuration area [1].
Where do I get the Snapchat Conversions API access token?
The addon's guide points you at Business Manager → Ads Manager → Events Manager → Conversions API [1]. Snapchat separately documents a long-lived-token flow under Ads Manager → Business Details → OAuth Apps → Conversions API Tokens, notes that you need Organization Admin rights to view that section, and states that those tokens do not expire [3].
Will running the Pixel and the Conversions API together double count purchases?
No, provided both sides carry matching IDs. Snapchat deduplicates the browser event against the server event on the dedup ID within 48 hours, and matches PURCHASE events on transaction_id against order_id for up to 30 days. The addon deduplicates via the event ID when you enable frontend sending of the same events [1][5].
Which events does the server-side addon send?
Purchase, AddToCart, Checkout Initiated, Add Payment Info, ViewCategory, ViewContent, PageVisit, Search, SignUp, and AddToWishlist. The client-side Snapchat Pixel in GA4 PRO is a separate feature with a narrower list, so check each one against its own documentation [1].
Which Magento versions does the addon support?
Magento 2.3.x through 2.4.9 and the associated security patches, across all editions, with multiple store views supported. PHP 8.5 and 2.4.9 compatibility arrived in v1.17.0 on May 18, 2026 [1].
If your Magento store is already on GA4 and Snapchat is carrying real budget, the WeltPixel Google Analytics 4 PRO extension is the base the Snapchat Conversions API addon installs onto, and the addon, bought separately, adds the ten server-side events above. Generate the token first, since that is the step gated on a role nobody remembers they need.
Sources
- WeltPixel, "Snapchat Conversions API Addon for Google Analytics 4 PRO User Guide", https://docs.weltpixel.com/SnapchatAddon/User-Guide-WeltPixel-Snapchat-Addon.html
- WeltPixel Google Analytics 4 User Guide, https://docs.weltpixel.com/GA4/User-Guide-WeltPixel-Google-Analytics-4.html
- Snap Inc. Developers, "Conversions API: Get Started", https://developers.snap.com/marketing-api/Conversions-API/GetStarted
- Snap Inc. Developers, "Conversions API: Parameters", https://developers.snap.com/marketing-api/Conversions-API/Parameters
- Snap Inc. Developers, "Conversions API: Deduplication", https://developers.snap.com/marketing-api/Conversions-API/Deduplication