Skip to main content
Square Online → RedditIntegration guide

Connecting Square Online to Reddit

Square Online orders settle into the same Square account as the card taken at the counter, which is a genuine advantage: the online and in-person halves of the business are already denominated in one ledger. 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 Square Online 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

Square Online orders to Reddit CAPI with rdt_cid captured early

Capture rdt_cid on the first page Reddit traffic lands on and store it with any email given. Send online-channel Square orders to Reddit's Conversions API as Purchase, valued net of tax and tip in USD, with hashed email and phone, the Square order ID as conversion ID, and rdt_cid where matched. Check Reddit reaches your pickup radius.

A Square Online store on a Square-provided domain, with checkout on Square's pages, gives the Reddit pixel very little to work with, on an audience that blocks it anyway. rdt_cid has to be captured on the first page Reddit traffic lands on, ideally a page on your own domain or through whatever code injection your Square Online plan allows, and stored first-party together with the visitor's email if they give it.

Server-side, take orders from Square's webhooks, keep online-channel orders only, and send a Purchase to Reddit's Conversions API with value net of tax and tip in USD, hashed email and phone from the Square customer record, the Square order ID as the conversion ID, and rdt_cid where you could match it. Hashed contact data carries more of the load here than on most pairs, because on Square Online the click-ID join is often an email match rather than a field on the order.

Food and local-retail sellers should check whether Reddit can reach their delivery or pickup radius at all before building this. If most orders are pickup within a few miles, a geo-targeted Reddit campaign will produce small, noisy conversion counts; judge it on Square's order count for that location rather than on Reddit's reported value.

Square Online → Reddit · what breaks

Why this join usually fails — Square Online → Reddit

  1. 01

    The rdt_cid click identifier never reaches Square Online

    Square Online sites are frequently on a Square-provided domain, and checkout may hand off to Square-hosted payment pages depending on configuration.

  2. 02

    Counter sales counted as online conversions

    The convenience of one ledger is also the trap. If the sales channel is not filtered, every card swipe at the register lands in your ad reporting as a conversion you paid for.

  3. 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.

  4. 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.

Square Online → Reddit · the fix

What working looks like — Square Online → 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

Square Online → Reddit · architecture

How Square Online and Reddit actually connect

  1. 1

    Square Online holds the truth

    The filter is the whole job. Square's default reporting cheerfully sums counter sales and online orders, and that total is not something any ad platform should be optimizing toward.

  2. 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. 3

    The identifier is the bridge

    The rdt_cid click identifier, captured at the visit and carried into the Square Online order.

  4. 4

    The event source decides reliability

    Send net of tips and taxes. Tips on food orders are substantial and are not your revenue.

  5. 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.

Square Online → Reddit · normal or broken

Working vs. broken, side by side — Square Online → Reddit

Normal, not a fault

  • The rdt_cid click identifier present on the order

  • Sent from the Square transaction record

  • 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

    Square Online sites are frequently on a Square-provided domain, and checkout may hand off to Square-hosted payment pages depending on configuration.

  • Sent from the browser

    The convenience of one ledger is also the trap. If the sales channel is not filtered, every card swipe at the register lands in your ad reporting as a conversion you paid for.

  • 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

Square Online → Reddit · diagnose

Diagnostic order — Square Online → Reddit

  1. 01

    Count orders carrying the rdt_cid click identifier

  2. 02

    Follow one real conversion end to end

  3. 03

    Filter by sales channel and re-check the total

    Compare the filtered online total against Square Online's own order count. If they disagree, the filter is wrong before the tracking is.

  4. 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.

  5. 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.

Square Online → Reddit · prove

How it gets proven — Square Online → Reddit

Source of truth

Square transactions filtered to the online sales channel, by location.

  • 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.
  • Online-channel transactions reconciled against imported conversions for a settled week.

Square Online → 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
  • Filter by sales channel and re-check the total
  • Measure click-identifier capture on Reddit traffic specifically
  • Read the match rate, not the success message

Checked against

Square transactions filtered to the online sales channel, by location.

Get my free conversion tracking audit

Free30 minutesNo obligation

Square Online → Reddit · when not to buy

When you don't need this — Square Online → Reddit

  • Measure identifier coverage yourself first — pull your last hundred orders and count how many carry the rdt_cid click identifier.
  • If Square Online is a small side channel next to your counter business, measure it on order count and do not build an import for it.
  • If your Reddit strategy is organic community presence rather than ads, none of this applies — that traffic has no click identifier by definition.

Square Online → Reddit · what we deliver

What gets built — Square Online → Reddit

  • Identifier capture into Square Online

    Persist the identifier in first-party storage on your own domain before the handoff, and reattach it to the order at the point the transaction is written.

  • Event source: the Square transaction record

    Send net of tips and taxes. Tips on food orders are substantial and are not your revenue.

  • Dispatch to Reddit

    Server events to the Reddit Conversions API with the click identifier and hashed customer information.

  • Reversals where they exist

    Refunds appear in Square as their own records and should be sent as reversals.

Written guarantee

95%+ tracking accuracy

Measured against Square transactions filtered to the online sales channel, by location.. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Square Online → Reddit questions, answered

Check Square Online's tracking and custom-code options for your plan; we have not confirmed native Reddit pixel support. Sending server-side from Square order data works either way.

Free · 30 min

Get Square Online and Reddit joined properly

Free30 minutesNo obligation