Getting started
SetRoasFlow collects every customer event on your own server-side infrastructure, turns it into a first-party customer profile, and routes it to wherever you need it: your ad platforms, your CRM, your data warehouse.
The point isn't to add another pixel. It's that the data reaching your ad platforms today is incomplete — ad-blockers, Safari's tracking prevention and iOS quietly drop a large share of your conversions before they ever leave the browser. The algorithms then optimise on what's left, so you pay more for the same result. Collecting server-side puts those conversions back.
The four steps
1. Create a website
Websites → Add website. You get a Project ID (your token) — the identifier that ties every event back to your account.
2. Install the tracking
One of three ways, depending on your platform:
| Your store | What to do | Code needed |
|---|---|---|
| Shopify | install the app | none |
| WooCommerce | install the plugin, paste the Project ID | none |
| Anything else | paste one snippet in <head> | one snippet |
Purchases, add-to-carts, page views and form leads are detected automatically. See Install the tracking.
3. Point a subdomain at us (recommended)
Sending data through data.yourstore.com instead of our domain makes the traffic first-party: ad-blockers don't recognise it, and Safari stops capping your cookies at 7 days. It's one DNS record and it's the single biggest lever on how much data actually survives. See Custom domain.
4. Connect your destinations
Websites → your site → Destinations. Paste the credentials for each platform you use. Every destination is independent: connect one, or all ten. See Destinations.
Then hit Test all destinations to confirm each one accepts your events before you rely on it.
What you get once it runs
Complete conversion data on Meta, Google Ads, TikTok, Snapchat, Pinterest, Reddit and GA4 — deduplicated against your browser pixel automatically, so nothing is double-counted.
Customer profiles. Events are unified into one profile per person, even when they started out anonymous and identified themselves later. Lifetime value, order count, repeat-buyer status — see them under Customers.
Audiences you can act on. Build a segment with a rule ("2+ orders and LTV over $200") and push it to Meta or Google as a Custom Audience. Exclude existing buyers from acquisition campaigns, or use your best customers as a lookalike seed. See Segments & audience activation.
Your raw data, in your warehouse. Every event, in a stable schema, in your own BigQuery, Snowflake, S3 or webhook endpoint. No lock-in. See Warehouse export.
A site that knows who is looking at it. The same segments can change what a visitor sees — a repeat customer doesn't need the first-order coupon. One HTML attribute, no flicker, no extra request. See On-site personalization.
Someone watching the data for you. If events stop arriving or a platform starts rejecting deliveries, you get told — instead of finding out from a reporting gap next week. See Alerts.
Proof it's working. The Delivery page shows every single delivery per platform, with the HTTP status the platform returned, plus a match-quality score telling you how well your events can actually be matched to real people.
Where things live
| Page | What it's for |
|---|---|
| Overview | health at a glance, onboarding checklist |
| Websites | your sites, the destination credentials and CNAME for each |
| Installation | the snippet, and manual event examples for custom sites |
| Integrations | download the WooCommerce plugin / install the Shopify app |
| Delivery | every delivery, per platform, with errors and match quality |
| Acquisition | where your customers come from — channels, ROAS, geography, devices |
| Customers | unified customer profiles, LTV, order history |
| Segments | audience rules, activation, and on-site personalization |
| Activations | every audience and the destinations you can push it to, with sync status |
| Alerts | data-health warnings and segment-entry notifications, and where to send them |
| Guide | this documentation |
Not sure where to start? Install the tracking, connect one destination, and watch the Delivery page fill up. Everything else builds on that.