Connecting Concrete CMS to Snapchat
Concrete CMS is a self-hosted PHP CMS used by small organisations and agencies, typically with commerce added through an add-on rather than built in. Snapchat's audience is young, almost entirely mobile and inside an in-app browser, which is the least forgiving environment for browser-based tracking anywhere in paid media. The join between them succeeds or fails on one thing: whether the ScCid click identifier reaches the Concrete CMS order before the conversion happens, because Snapchat can only match a conversion it can tie back to a click it recognizes.
Free30 minutesNo obligation
Specific to this pair
Concrete CMS to Snapchat CAPI: rarely the right channel
Snapchat fits only youth-facing Concrete CMS sites, such as event tickets or course signups. Capture the click ID with JavaScript on the first page view and post it to an uncached endpoint storing it in the session, then attach it at order or entry creation. Send one server conversion with hashed email and phone, sharing a deduplication ID.
Concrete runs sites for small organisations and agencies, and most of them are not selling to Snapchat's young audience. The cases that fit are youth-facing: event tickets, a local venue, a program or course signup. If yours is a professional-services or association site, skip Snapchat; no measurement work makes that audience match.
Where it does fit, the capture problem is doubled. Snapchat traffic arrives in an in-app browser with unreliable storage, and Concrete's full page cache means server-side code may not run on the landing page. Capture the Snapchat click ID with JavaScript on the first page view and post it immediately to an uncached endpoint that stores it in the session, then attach it to the order or form entry when the add-on or form listener creates the record. Waiting until checkout to read it from the browser loses a large share of Snap clicks.
The sane minimal setup is the pixel plus one server event for the conversion that matters, sent from the order or form event with hashed email and phone and a deduplication ID shared with the pixel. Do not send page-level events server-side from Concrete; the cache makes them unreliable and they add nothing the pixel does not already report.
Concrete CMS → Snapchat · what breaks
Why this join usually fails — Concrete CMS → Snapchat
- 01
The ScCid click identifier never reaches Concrete CMS
Full page caching and the add-on ecosystem both interfere. Because commerce is an add-on rather than core, where the order is created differs by which add-on is installed.
- 02
Commerce as an add-on, not a core feature
Which add-on is installed determines the entire integration surface, so nothing transfers between two Concrete sites without checking first.
- 03
The in-app browser loses the identifier
Snapchat traffic arrives through a webview with inconsistent storage. Anything relying on the identifier still being in the browser at conversion time will lose a large share, and the loss is invisible unless you measure capture on Snapchat traffic specifically.
- 04
Nothing reconciles afterwards
Snapchat Ads Manager shows received and matched events. Arriving is not the test — deduplicated and matched is. Reconcile against your own records for the same window.
Concrete CMS → Snapchat · the fix
What working looks like — Concrete CMS → Snapchat
The ScCid click identifier on every order
Conversions arriving in Snapchat
Events appear in Snapchat Ads Manager, deduplicated against the pixel, and become usable for optimization.
Reconciled against the source
Concrete CMS → Snapchat · architecture
How Concrete CMS and Snapchat actually connect
- 1
Concrete CMS holds the truth
Self-hosted means you own and can query the data directly, which makes reconciliation straightforward once the identifier is present.
- 2
Snapchat needs a click to match
Snapchat matches server events on the click identifier and hashed customer information. Send both — on this traffic the fallback carries a meaningful share of the events.
- 3
The identifier is the bridge
The ScCid click identifier, captured at the visit and carried into the Concrete CMS order.
- 4
The event source decides reliability
Fire server-side. Page caching means the confirmation template may not execute.
- 5
Deduplication at the destination
Snapchat deduplicates on a client-supplied event identifier shared between the pixel and the Conversions API, the same pattern as Meta. Mismatched identifiers mean double counting.
Concrete CMS → Snapchat · normal or broken
Working vs. broken, side by side — Concrete CMS → Snapchat
Normal, not a fault
The ScCid click identifier present on the order
Sent from the order-completed event from your commerce add-on
Deduplicated correctly
Snapchat deduplicates on a client-supplied event identifier shared between the pixel and the Conversions API, the same pattern as Meta. Mismatched identifiers mean double counting.
Reconciles with the source
Actually broken
The ScCid click identifier missing on most records
Full page caching and the add-on ecosystem both interfere. Because commerce is an add-on rather than core, where the order is created differs by which add-on is installed.
Sent from the browser
Which add-on is installed determines the entire integration surface, so nothing transfers between two Concrete sites without checking first.
Counted twice, or not at all
Snapchat traffic arrives through a webview with inconsistent storage. Anything relying on the identifier still being in the browser at conversion time will lose a large share, and the loss is invisible unless you measure capture on Snapchat traffic specifically.
Nobody has reconciled it
Concrete CMS → Snapchat · diagnose
Diagnostic order — Concrete CMS → Snapchat
- 01
Count orders carrying the ScCid click identifier
- 02
Follow one real conversion end to end
- 03
Identify which commerce add-on is in use
That decides where the order is created and what events exist to hook.
- 04
Measure capture rate on Snapchat traffic alone
The in-app browser is the failure case, so a healthy overall rate can hide a poor one on precisely the traffic you are paying for.
- 05
Read the match rate, not the success message
Snapchat Ads Manager shows received and matched events. Arriving is not the test — deduplicated and matched is. Reconcile against your own records for the same window.
Concrete CMS → Snapchat · prove
How it gets proven — Concrete CMS → Snapchat
Source of truth
Your own database's order records, at agreed states.
- The ScCid click identifier confirmed present on a live order.
- Capture rate measured on Snapchat traffic specifically, and deduplication confirmed on a real conversion.
- Order attribute confirmed populated on a purchase through a cached page.
Concrete CMS → Snapchat · free audit
What we check in the free audit
- Count orders carrying the ScCid click identifier
- Follow one real conversion end to end
- Identify which commerce add-on is in use
- Measure capture rate on Snapchat traffic alone
- Read the match rate, not the success message
Checked against
Your own database's order records, at agreed states.
Free30 minutesNo obligation
Concrete CMS → Snapchat · when not to buy
When you don't need this — Concrete CMS → Snapchat
- Measure identifier coverage yourself first — pull your last hundred orders and count how many carry the ScCid click identifier.
- If your Concrete site is brochure-only with enquiries by form, treat it as a lead-gen site rather than a commerce one.
- If your customers are not in Snapchat's age profile, the channel is the wrong question and no measurement work fixes that.
Concrete CMS → Snapchat · what we deliver
What gets built — Concrete CMS → Snapchat
Identifier capture into Concrete CMS
Capture the identifier and persist it as order attribute data through an event listener, server-side.
Event source: the order-completed event from your commerce add-on
Fire server-side. Page caching means the confirmation template may not execute.
Dispatch to Snapchat
Server events to the Snapchat Conversions API with the click identifier, hashed customer data and a matched event identifier.
Reversals where they exist
Order state changes recorded by the add-on.
Written guarantee
95%+ tracking accuracy
Measured against Your own database's order records, at agreed states.. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Concrete CMS → Snapchat questions, answered
Only if you sell to a young audience, such as tickets or a venue. For B2B or association sites the channel is the wrong question.
The in-app browser drops storage and cached pages skip server-side capture. Store the click ID server-side on the first page view.
Almost always because the ScCid click identifier never reached the Concrete CMS order. Full page caching and the add-on ecosystem both interfere. Because commerce is an add-on rather than core, where the order is created differs by which add-on is installed. Measure coverage before debugging the dispatch.
Snapchat's click identifier, appended to your landing page URL. Snapchat also matches on hashed email, phone and mobile advertising IDs. The environment is the problem: traffic arrives inside Snapchat's in-app browser, whose storage behaviour is inconsistent, so an identifier that is captured but not immediately persisted server-side often is not there by the time the conversion happens.
The order-completed event from your commerce add-on. Fire server-side. Page caching means the confirmation template may not execute.
Snapchat Ads Manager shows received and matched events. Arriving is not the test — deduplicated and matched is. Reconcile against your own records for the same window.
More on Concrete CMS → Snapchat
- Craft → SnapchatConnecting Craft CMS to Snapchat
- Concrete CMS → Google AdsConnecting Concrete CMS to Google Ads
- Concrete CMS → MetaConnecting Concrete CMS to Meta Conversions API
RELATED GUIDES
Where Concrete CMS → Snapchat fits in the rest of your tracking
- Snapchat · Local servicesSnapchat Ads conversion tracking for local service businesses
- Snapchat · B2BSnapchat Ads conversion tracking for B2B companies
- Snapchat × CRM DealsHow to reconcile Snapchat Ads against your CRM's closed-won deals
- Snapchat · Comparison page → demoHow to track comparison page visit to demo request for Snapchat Ads
- Statamic → SnapchatConnecting Statamic to Snapchat
- Concrete CMS → MetaConnecting Concrete CMS to Meta Conversions API
- Local servicesConversion tracking for local businesses, where most conversions bypass the website
- Craft → SnapchatConnecting Craft CMS to Snapchat
Free · 30 min
Get Concrete CMS and Snapchat joined properly
Free30 minutesNo obligation
