Journal

Better ROAS without more ad spend: the server-side tracking playbook

A practical playbook for lifting ROAS by 10–20% on a Shopify store without changing creative, audience, or budget. The lever is server-side conversion data quality.

Most Shopify ROAS playbooks are about creative, audience, or budget. This one isn’’t. This one is about the conversion data you’re feeding the ad platforms — and how to upgrade it without changing anything else.

If you do this end-to-end, expect a 10–20% ROAS lift inside two weeks, verified in your Meta and Google dashboards. No creative work, no audience experiments, no budget changes.

The lever is data quality. Here’s the playbook.

Step 1 — Measure your current capture rate

For each ad platform, divide the platform-attributed conversions by your actual Shopify orders for the same window:

meta_capture_rate    = meta_purchases    / shopify_orders
google_capture_rate  = google_purchases  / shopify_orders
tiktok_capture_rate  = tiktok_purchases  / shopify_orders

If a number is below 0.85, there is recoverable spend. The lower the number, the bigger the lift on the table. Anything below 0.70 is embarrassing — and very fixable.

Step 2 — Turn on server-side conversions

Server-side APIs (Meta CAPI, Google Enhanced Conversions + Server-side GTM, TikTok Events API) bypass the browser layer where most loss happens. Three ways to get there:

  1. Self-build — write the integration against each platform’s server-side API. Realistic timeline: 2–6 engineer-weeks per platform, plus ongoing maintenance as APIs change.
  2. Server-side GTM — Google’’s container approach. Powerful but spreads logic across two GTM containers and a tag template ecosystem. Still requires engineering for non-trivial cases.
  3. A first-party pipeline — install one app, get all platforms server-side at once. Eventabee does this; so do Elevar, Stape, and a couple of others.

Whichever path you pick, the goal is the same: every purchase event that fires in the browser also fires from your server, deduplicated on a shared event_id.

Step 3 — Pump up identifier coverage

This is the single highest-leverage change. Each platform scores events on a quality metric:

  • Meta — Event Match Quality (EMQ), 1.0–10.0
  • Google — Enhanced Conversions match rate
  • TikTok — Advanced Matching coverage

Higher quality = better bidder = lower CPA. The score depends on how many identifiers you send per event:

  • email (hashed)
  • phone (hashed)
  • first/last name (hashed)
  • address line, city, region, postal, country (hashed)
  • IP address
  • user agent
  • click ID (fbclid, gclid, ttclid)
  • external ID (your customer ID, hashed)

Most Shopify stores ship purchase events with 4–5 identifiers. Stores hitting 8.0+ EMQ ship 9–10. Adding phone alone usually moves EMQ by 0.4–0.7 — and that single change moves ROAS more than a week of creative iteration on most accounts.

Step 4 — Deduplicate

If you send a purchase from both the browser pixel and the server, deduplicate on event_id. Each platform’s docs spell this out, but the failure mode is the same: a missing or mismatched ID and the platform double-counts the conversion.

Double-counting looks like a ROAS win for an afternoon and then collapses — when Meta’s nightly attribution rebuild deduplicates for you and your dashboard ROAS halves overnight. Do this right or don’t do it at all.

In the EU/UK and California, a meaningful slice of your visitors decline tracking on first visit and accept later (or vice versa). Naive setups capture nothing in the “declined” window and never recover.

A correct setup:

  1. Stores every event regardless of consent state, tagged with the visitor’s consent state at capture time.
  2. When consent upgrades (the visitor accepts analytics), replays the prior 30 days of events to the newly-permitted destinations.
  3. Tags backfilled events so attribution windows stay clean.

This recovers 5–15% of conversions in EU/UK markets that would otherwise be permanently invisible.

Step 6 — Run the numbers again

Two weeks after the rollout, recompute your capture rates. If you did this right:

  • Capture rate has climbed 10–25 points on Meta and Google.
  • EMQ has climbed at least 1.5 points.
  • Reported CPA has fallen 8–14% (because the bidder has better signal).
  • Real ROAS, computed against Shopify orders, has climbed 10–20%.

The compound win is the bidder learning. Server-side data quality isn’t a one-day reporting fix — it’s an ongoing input to each platform’s optimization loop. The longer you run with high-quality conversions, the better the bidder gets.

How eventabee fits

Steps 2–5 are the parts of this playbook that take engineering time if you build them yourself. Eventabee does all of them out of the box: it ships server-side conversions to 9 ad platforms, attaches all the identifiers Shopify exposes, deduplicates on event_id, and replays on consent upgrade.

Install it from apps.shopify.com/eventabee. The free plan is enough to verify a single destination; Pro covers most single-channel stores at $49/mo.

If you’d rather build this yourself, the playbook above is the order to do it in. Don’t skip step 5.

← More from the blog Start a project