Connecting Concrete CMS to Reddit
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. Reddit's audience blocks trackers at rates well above the web average, which makes its browser pixel the least reliable in this list and its server-side path the most necessary. The join between them succeeds or fails on one thing: whether the rdt_cid click identifier reaches the Concrete CMS order before the conversion happens, because Reddit can only match a conversion it can tie back to a click it recognizes.
Free30 minutesNo obligation
Specific to this pair
Reddit Conversions API for Concrete CMS: catch rdt_cid past the cache
Cached Concrete CMS landing pages skip PHP, so capture rdt_cid with server-side GTM or exclude those URLs from caching, then store it as an order attribute. Send Purchase server-side from the commerce add-on's order-completed event with the order ID as conversion ID, value, currency and hashed email. Server-only is defensible for small stores.
Reddit traffic arrives with rdt_cid on the URL and often with the Reddit Pixel blocked, so the server event is the one you can count on. On a Concrete CMS site the trap is the full page cache: if the landing page is served from cache, PHP never runs, and any block or template logic that reads rdt_cid simply does not execute. Capture it with something that runs on every request, such as a server-side GTM container on your own subdomain, or exclude URLs carrying the parameter from the cache.
Write the captured rdt_cid to the session, then to an order attribute in the commerce add-on's order-created listener. Send a Purchase server-side from the order-completed event with the order ID as conversion ID, value and currency from the order, and the hashed email the buyer entered at checkout. Because so few Reddit visitors run the pixel, sending server-only and dropping the browser Purchase is a defensible simplification for a small Concrete store, and it removes the deduplication question.
If the Concrete site is brochure-only, the Reddit conversion is a form enquiry rather than an order, and the event becomes Lead, sent from the form's server-side submit handler.
Concrete CMS → Reddit · what breaks
Why this join usually fails — Concrete CMS → Reddit
- 01
The rdt_cid 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
An audience that blocks trackers by habit
Coverage on Reddit traffic is structurally lower than on other networks. That is a property of who uses Reddit, not a broken implementation, and chasing a benchmark this audience will not give you wastes time.
- 04
Nothing reconciles afterwards
Reddit Ads Manager reports events received and matched. Expect lower match rates here than on Meta or Google and report the gap rather than explaining it away — reconcile against your own records for the same window.
Concrete CMS → Reddit · the fix
What working looks like — Concrete CMS → Reddit
The rdt_cid click identifier on every order
Conversions arriving in Reddit
Events appear in Reddit Ads Manager and become usable for optimization, at coverage that will be lower than you are used to elsewhere.
Reconciled against the source
Concrete CMS → Reddit · architecture
How Concrete CMS and Reddit 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
Reddit needs a click to match
Reddit matches server events on the click identifier and hashed customer information. Reddit's Conversions API is younger than Meta's and its documentation moves, so confirm the current endpoint and required fields directly rather than from an integration blog post.
- 3
The identifier is the bridge
The rdt_cid 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
Reddit deduplicates on a conversion identifier carried by both the pixel and the server event. Because so much Reddit traffic never runs the pixel, sending server-side only is a legitimate choice here in a way it rarely is elsewhere — and it removes the deduplication problem entirely. Decide deliberately rather than running both and hoping.
Concrete CMS → Reddit · normal or broken
Working vs. broken, side by side — Concrete CMS → Reddit
Normal, not a fault
The rdt_cid click identifier present on the order
Sent from the order-completed event from your commerce add-on
Deduplicated correctly
Reddit deduplicates on a conversion identifier carried by both the pixel and the server event. Because so much Reddit traffic never runs the pixel, sending server-side only is a legitimate choice here in a way it rarely is elsewhere — and it removes the deduplication problem entirely. Decide deliberately rather than running both and hoping.
Reconciles with the source
Actually broken
The rdt_cid 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
Coverage on Reddit traffic is structurally lower than on other networks. That is a property of who uses Reddit, not a broken implementation, and chasing a benchmark this audience will not give you wastes time.
Nobody has reconciled it
Concrete CMS → Reddit · diagnose
Diagnostic order — Concrete CMS → Reddit
- 01
Count orders carrying the rdt_cid 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 click-identifier capture on Reddit traffic specifically
Not across all traffic. A healthy site-wide capture rate routinely hides a poor one on exactly the segment you are paying for.
- 05
Read the match rate, not the success message
Reddit Ads Manager reports events received and matched. Expect lower match rates here than on Meta or Google and report the gap rather than explaining it away — reconcile against your own records for the same window.
Concrete CMS → Reddit · prove
How it gets proven — Concrete CMS → Reddit
Source of truth
Your own database's order records, at agreed states.
- The rdt_cid click identifier confirmed present on a live order.
- Capture rate measured on Reddit traffic specifically, and the pixel-versus-server-only decision documented.
- Order attribute confirmed populated on a purchase through a cached page.
Concrete CMS → Reddit · free audit
What we check in the free audit
- Count orders carrying the rdt_cid click identifier
- Follow one real conversion end to end
- Identify which commerce add-on is in use
- Measure click-identifier capture on Reddit traffic specifically
- Read the match rate, not the success message
Checked against
Your own database's order records, at agreed states.
Free30 minutesNo obligation
Concrete CMS → Reddit · when not to buy
When you don't need this — Concrete CMS → Reddit
- Measure identifier coverage yourself first — pull your last hundred orders and count how many carry the rdt_cid 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 Reddit strategy is organic community presence rather than ads, none of this applies — that traffic has no click identifier by definition.
Concrete CMS → Reddit · what we deliver
What gets built — Concrete CMS → Reddit
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 Reddit
Server events to the Reddit Conversions API with the click identifier and hashed customer information.
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 → Reddit questions, answered
You can add it to the site header, but a large share of Reddit visitors block it. Capture rdt_cid server-side and send purchases through the Reddit Conversions API from the order event.
Most often the landing page was served from the full page cache, so the PHP that should have read the parameter never ran. Capture it in server-side GTM or at the edge instead.
Almost always because the rdt_cid 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.
The rdt_cid parameter on your landing page URL. The Reddit Pixel also keeps its own identifier in a cookie, but on this audience specifically the cookie frequently does not exist — ad-blocker and tracker-blocker use on Reddit traffic runs well above average. The URL parameter is what survives; persist it server-side the moment you see it.
The order-completed event from your commerce add-on. Fire server-side. Page caching means the confirmation template may not execute.
Reddit Ads Manager reports events received and matched. Expect lower match rates here than on Meta or Google and report the gap rather than explaining it away — reconcile against your own records for the same window.
More on Concrete CMS → Reddit
- Craft → RedditConnecting Craft CMS to Reddit
- Concrete CMS → Google AdsConnecting Concrete CMS to Google Ads
- Concrete CMS → MetaConnecting Concrete CMS to Meta Conversions API
RELATED GUIDES
Where Concrete CMS → Reddit fits in the rest of your tracking
- Reddit · Local servicesReddit Ads conversion tracking for local service businesses
- Reddit · B2BReddit Ads conversion tracking for B2B companies
- Reddit × CRM DealsHow to reconcile Reddit Ads against your CRM's closed-won deals
- Reddit · Comparison page → demoHow to track comparison page visit to demo request for Reddit Ads
- Duda → RedditConnecting Duda to Reddit
- Concrete CMS → NextdoorConnecting Concrete CMS to Nextdoor Ads
- Local servicesConversion tracking for local businesses, where most conversions bypass the website
- Sitecore → RedditConnecting Sitecore to Reddit
Free · 30 min
Get Concrete CMS and Reddit joined properly
Free30 minutesNo obligation
