Know which ads actually make you money
BrainyMetrics follows every lead from the first ad click to the final sale, across devices, domains, calls and checkouts, then credits revenue to the campaigns, ad sets and ads that earned it.
- 7 attribution models
- First-party tracking
- Call & booking tracking
- Hourly spend sync
- 9 conversion APIs
- Funnels & dashboards
| Campaign · Ad | Spend | Revenue | ROAS |
|---|---|---|---|
| Meta · Prospecting · Video Hook A | $4,210 | $18,940 | 4.5x |
| Google · Search · Brand | $1,120 | $9,860 | 8.8x |
| TikTok · UGC · Spark Ad 3 | $2,480 | $4,970 | 2.0x |
| Email · Newsletter (tracking link) | — | $3,410 | — |
Works with
The problem
Every ad platform says it drove the sale
Meta, Google and TikTok each count conversions their own way, overlap with each other, and can't see refunds, phone deals or repeat purchases. So budgets get set on numbers nobody trusts.
Double-counted sales
Two platforms claim the same order. Your ad reports add up to more revenue than your bank account.
Broken journeys
A phone click, a laptop purchase and a checkout on another domain look like three different people.
Invisible revenue
Calls, CRM deals and renewals never reach the ad platform, so the ads that drive them look unprofitable.
How it works
From first click to final sale, and back to the ad
- attribution models
- 7attribution models
- conversion APIs
- 9conversion APIs
- integrations
- 40integrations
- features
- 145features
01Tracking · Capture every click, on every page
Every ad click, decoded down to the ad
tracko.js reads UTMs, click ids and ad ids on landing and turns them into a session with its channel, platform, campaign, ad set, ad, keyword and placement. That's what lets reports join revenue with spend at the ad level.
What's included (5)+
- UTMs plus 20+ click ids captured automatically: gclid, gbraid, wbraid, fbclid, ttclid, msclkid, li_fat_id, ScCid, rdt_cid, epik, twclid and more
- Ready-made URL templates for Meta, Google, TikTok, Microsoft, LinkedIn and Snapchat, plus a URL builder for any landing page
- Parameter names from other attribution tools are accepted, so you can switch without retagging
- Tagging check warns when a platform with spend sends untagged or partly tagged clicks, with the fix ready to copy
- Channels classified for you: paid search, social, display and native, organic, AI assistants (ChatGPT, Perplexity), email, SMS, affiliate, referral and direct
01Tracking · Capture every click, on every page
First-party tracking that ad blockers and Safari don't break
Serve tracko.js from a subdomain of your own site. The visitor cookie becomes first-party and server-set, so returning visitors stay recognisable for much longer.
What's included (5)+
- Add t.yoursite.com with one CNAME record; BrainyMetrics verifies it over HTTPS
- The async snippet never blocks rendering, and loading it twice is harmless
- Single-page apps tracked out of the box, including hash routing and manual tracko('page')
- Only accept events from your domains, exclude your own IPs, and set the session timeout
- Verify installation per page, debug with ?tracko_debug=1 and read ids with tracko.getIds()
01Tracking · Capture every click, on every page
One journey across domains, checkouts and iframes
List your domains once. Links, forms and pop-ups between them carry the visitor along, and embedded forms ask the parent page for its ids.
What's included (4)+
- Short-lived _bm parameter on links, form submissions and window.open, removed on arrival and expired after 10 minutes
- Embedded forms and checkouts in iframes join the same session
- Stripe Payment Links get client_reference_id and Calendly links and embeds get salesforce_uuid automatically
- ManyChat ref links carry the visitor id into Messenger funnels; tracko.decorate(url) covers anything else
01Tracking · Capture every click, on every page
Tracking links for email, SMS, bios, podcasts and QR codes
Clicks from places that can't carry ad parameters usually land as Direct. A short link counts the click, adds your UTMs and a source tag, and redirects.
What's included (4)+
- Presets for newsletter, SMS, Instagram bio, YouTube and podcast / QR
- UTMs already on the destination are kept; parameters on the short link pass through
- Add ?email={{email}} from your email tool to identify readers as they land
- Pause a link (it returns 404) without losing its click count; compare links on the Source tag tab
01Tracking · Capture every click, on every page
Engagement, Core Web Vitals and bot filtering
Know whether a click turned into attention. Every page reports engaged time, scroll depth and Web Vitals, and automated visits are kept out of your numbers.
What's included (5)+
- Engaged time (visible and active) and scroll depth per page, including SPA routes
- Core Web Vitals: LCP, CLS, INP, FCP and TTFB
- Video start, 25 / 50 / 75% and completion for HTML5, YouTube, Vimeo and Wistia
- Rage clicks (4 rapid clicks in one spot) that point at broken UI
- Headless and automated browsers excluded, with a 0-100 human score per session
01Tracking · Capture every click, on every page
Custom events, conversions and a live stream
Record anything in one line of JavaScript or one HTML attribute, mark it as a conversion to attribute it like a sale, and watch it arrive on the Live page.
What's included (5)+
- tracko('track', name, props) or data-tracko-event on any element, with data-tracko-prop-* properties
- Mark events as conversions (names seen in the last 90 days are suggested); a numeric value counts as revenue
- Automatic clicks on outbound, tel:, mailto:, sms:, WhatsApp, Messenger, Telegram, downloads and buttons
- Section impressions with data-tracko-view; ad pixel events observed for deduplication
- Live page with pause and noise filters, plus a Traffic page of individual sessions
02People · Know every person behind the clicks
Leads captured from any form, automatically
tracko.js recognises fields by type, name, label and autocomplete, so most forms work with no setup. The lead keeps the ad click that brought them in.
What's included (6)+
- Regular forms, form-less React forms, shadow DOM widgets and same-origin iframes
- HubSpot, Typeform, Calendly and Klaviyo embeds detected through their own events
- Email, phone, names, company, address and coupon detected; passwords, cards, CVV and one-time codes never read
- New and repeat leads counted separately; repeat sends within 30 minutes count once
- Hidden CRM fields filled with UTMs, click ids, landing page, referrer and visitor id
- Thank-you page URL parameters and marked-up elements identify buyers too; tracko('identify') for custom flows
02People · Know every person behind the clicks
Identity resolution across devices
The phone that clicked the ad, the laptop that paid and the tablet that came back become one person, from the strongest signal to the weakest.
What's included (6)+
- Deterministic matches on email, phone (also by last 10 digits), your external id and Stripe / Shopify customer ids
- Records that share an identifier merge automatically, with devices, orders and calls
- Payment links, Shopify cart tokens and order notes tie a purchase to the exact browser
- Optional fingerprint stitching (70% confidence) that never merges people and yields to any email or phone
- Shared devices handled: each person keeps their own history
- Person pages with LTV, identifiers, devices and a full timeline with credit badges
02People · Know every person behind the clicks
Opt-in identity network
Workspaces that choose to can share identities with each other, so an anonymous visitor seen with a known fingerprint is recognised, with a confidence score.
What's included (4)+
- Fingerprint matches, live and retroactive, and email / phone enrichment of missing fields
- Confidence per match type, divided when a fingerprint was seen with several people
- Owner-only switches to contribute and to receive; off by default
- Network data is labelled third party and never counts as an opt-in
03Revenue · Record every dollar, wherever it's paid
Orders from every source, merged into one
Connect your checkout, funnel builder or CRM, or send orders from the browser and the API. The same order id from several sources becomes one order: server amounts, browser session.
What's included (6)+
- Stripe, Shopify, WooCommerce, PayPal, ClickFunnels 2.0 and Classic, systeme.io, GoHighLevel, Kajabi, Leadpages
- GA4 / GTM dataLayer purchases, tracko('order'), the server API and a Zapier / Make webhook
- Refunds from every integration; reports always use revenue net of refunds
- Line items, tax, shipping, discounts, coupons and hard costs for profit
- Subscriptions and renewals marked recurring; Stripe trials, cancellations and plans
- Buyers tagged $<product> automatically, so every report filters by product
03Revenue · Record every dollar, wherever it's paid
Call tracking and booked-call outcomes
Dynamic number insertion shows each visitor their own number, so phone sales get the same attribution as online ones. Booked meetings are tracked through to closed.
What's included (6)+
- Number pools swap numbers in text and tel: links, keeping your formatting, including content loaded later
- Twilio, CallRail or any phone system through the API; the caller's number identifies the person
- Bookings from Calendly, Acuity, OnceHub, GoHighLevel, Zapier / Make or the API
- Outcomes: booked, showed, no-show, qualified, unqualified, closed with deal value, lost, cancelled
- One call per person per window (default 30 days) so reschedules don't inflate results
- Booked, Qualified and Cost per qualified call columns per ad
Attribution · Try it: seven models
One $1,000 sale, four touches, seven answers
Pick a model and watch the credit move across four touches.
04Attribution · Credit the ads that actually earned it
Why did this sale get credited there?
Open Why? on any sale to see the rules in force and every visit by that customer, each labelled with what the model did with it.
What's included (4)+
- Labels: credited (with share), counted with no credit, organic ignored, disregarded, outside window, after the sale
- When nothing was credited it says why: no customer linked, no visits, all outside the window or disregarded
- Disregarded sources (an order-confirmation email, a payment page) are removed from every journey
- Lookback window, scientific window and ignore-organic settings rebuild credit in the background
04Attribution · Credit the ads that actually earned it
Self-reported attribution
Click models only see clicks. "How did you hear about us?" catches the Instagram ad someone saw, didn't click, and remembered.
What's included (3)+
- Answers read from text fields, dropdowns and radio groups, identify(), the API and Shopify post-purchase surveys
- Mapped to buckets: Facebook, Instagram, YouTube, TikTok, Google, AI assistant, podcast, influencer, word of mouth and more
- Click match shows how often click attribution agrees with the platform the buyer named
04Attribution · Credit the ads that actually earned it
View-through, shown honestly
Platforms don't share who saw an ad. BrainyMetrics shows each platform's own click and view conversions beside your numbers, never mixed into them.
What's included (3)+
- Meta 7-day click and 1-day view purchases, value and leads per ad
- Google Ads and TikTok's own conversions from their spend syncs
- platform_* columns for CSV and API imports from any other platform
05Reports · See what's working, in the numbers your business runs on
Spend synced hourly, ROAS and profit per ad
Connect Meta, Google and TikTok to pull spend per ad every hour, or import any platform by CSV or API. Spend joins attributed revenue without any mapping.
What's included (5)+
- First sync imports 30 days, then hourly with the last 3 days re-read; backfill up to 730 days
- CSV / API import for Microsoft, Snapchat, Pinterest, LinkedIn, X, Reddit, Taboola and Outbrain
- ROAS, CPA, CPL, profit, cost per new customer and cost per qualified call on every row
- Group by channel, source, platform, campaign, ad set, ad, creative, landing page, referrer, device, country, region or source tag
- Drill Platform → Campaign → Ad set → Ad, filter by tag, sort and export CSV
05Reports · See what's working, in the numbers your business runs on
Reconciliation: do the numbers add up?
Actual revenue, tracked revenue and unattributed revenue side by side, then what each ad platform claims next to what its ads traceably drove.
What's included (3)+
- Tracking coverage as a percentage of real revenue, per day and per order source
- Platform gap = (claimed − tracked) ÷ tracked, highlighted above +25%
- Low coverage on a source points at a checkout without the snippet or orders without an email
05Reports · See what's working, in the numbers your business runs on
Business dashboards for your model
Pick call funnel, e-commerce, SaaS or info product and get the KPIs that business runs on, each compared with the previous period, plus its funnel by campaign.
What's included (4)+
- Call funnel: show rate, close rate, cost per booked call, show and close, revenue per show
- E-commerce: AOV, new vs returning customers, refunded revenue %, new-customer ROAS
- SaaS: trials, trial → paid, MRR, active subscriptions, churn, cost per subscriber
- Info product: cost per lead, revenue per lead within 30 days, upsell buyers within 7 days
05Reports · See what's working, in the numbers your business runs on
Funnels that follow people step by step
Up to 10 steps, each counted only after the one before within your window. Break any funnel down by ad and see what each step cost.
What's included (4)+
- Steps: visit, page view, lead, event, tag, pipeline stage, call, booked / showed / qualified / closed, purchase, first or repeat purchase, trial, subscription payment, renewal, cancellation
- Conversion rate, drop-offs and median time between steps
- Break down by channel, source, platform, campaign, ad set, ad, landing page or source tag, with spend, cost per step and ROAS
- Templates for call funnels, e-commerce, SaaS trials and info products
05Reports · See what's working, in the numbers your business runs on
Custom reports, custom metrics and your own dashboard
Build a report from any grouping and metric, write formulas like revenue / leads, and pin reports and funnels to a dashboard you arrange by dragging.
What's included (3)+
- Formulas with + − × ÷ and parentheses, formatted as number, money, percent or ratio
- Fix the attribution model per report, or follow the page picker
- Drag cards to reorder; the order is saved for the whole workspace
05Reports · See what's working, in the numbers your business runs on
Click any number to see the people
Every count on the dashboard, in the attribution report, in funnels and custom reports opens the people who make it up, with their share of credit.
What's included (3)+
- Credit follows the model, so the people under a row always add up to the row
- Each person links to their full journey
- Export up to 5,000 people to CSV for retargeting and look-alike audiences
05Reports · See what's working, in the numbers your business runs on
Lifetime value, cohorts, products and subscriptions
Decide what a lead from each channel is worth, watch cohorts mature, and see which products and plans each channel sells.
What's included (4)+
- LTV per lead by first touch, over 7 days to all time, next to your CPL
- Monthly or weekly cohorts with cumulative revenue, filtered by channel or tag
- Products: units, customers, refunds, profit and AOV per product or category, credited by channel
- Subscriptions: active, MRR, new, churned, rebills and rebill revenue by first-touch channel
06Ad platforms & API · Feed the algorithms, and the rest of your stack
Server-side conversions for nine ad platforms
Purchases and leads are sent to each platform's conversion API about 30 seconds after they happen, from every source, including phone sales and CRM deals the pixel never sees.
What's included (6)+
- Meta, Google Ads, TikTok, Microsoft, Reddit, Snapchat, Pinterest, LinkedIn and X
- Hashed email, phone, name and address, IP, user agent and each platform's click id
- Pixel event ids reused so platforms deduplicate browser and server events
- Google enhanced conversions; test modes and test event codes; an activity log per send
- Connect with Facebook, Google or TikTok in a few clicks, including manager (MCC) accounts
- Meta Lead Ads imported with their ad, instantly or every 15 minutes
06Ad platforms & API · Feed the algorithms, and the rest of your stack
Your attribution inside Ads Manager
A Chrome extension adds BrainyMetrics numbers to every campaign, ad set and ad row in Meta Ads Manager and Google Ads, next to the platform's own.
What's included (3)+
- Choose the metrics: sales, revenue, ROAS, leads, qualified calls
- A floating bar with totals, a model picker and a date picker
- Connects with a read-only API key that's safe to share with the team; Alt+B to show or hide
06Ad platforms & API · Feed the algorithms, and the rest of your stack
API, webhooks and automation
Push data from your server, read attribution back, and get signed webhooks with the whole journey in the payload.
What's included (5)+
- POST orders, refunds, leads, calls, appointments, call outcomes and ad spend
- GET the attribution report, a lead's journey or one order's credit under every model
- Full-access and read-only API keys
- Signed order, lead and call webhooks with first click, last click and every touchpoint, retried with backoff
- Zapier / Make / any-tool webhook for leads, orders, refunds, appointments and calls, no API key needed
07Data quality & privacy · Keep the data honest, private and shared with the right people
Data health checks and alerts
Every 15 minutes each workspace is checked. When something affects your numbers an alert opens on the Data health page and in a banner, and owners and admins get an email.
What's included (4)+
- No visits recorded, visits dropped, integration not syncing, conversions rejected, sales without a tracked visit, tracker errors
- Each alert links to the page that fixes it and resolves itself once the check passes
- A setup checklist that ticks itself off from your real data
- Help requests arrive with a snapshot of alerts, setup progress and sync status attached
07Data quality & privacy · Keep the data honest, private and shared with the right people
Data cleanup for sales with no tracked click
Buyers who opted in with one email and paid with another show up in one list. Attach the sale to the right lead and attribution rebuilds in seconds.
What's included (3)+
- Filter to sales or calls and by value, so you fix the ones that change decisions
- Same-name suggestions, or enter the other email or phone from your CRM
- Add a sale by hand (cash, bank transfer) or merge two records from a person's page
07Data quality & privacy · Keep the data honest, private and shared with the right people
Consent and privacy built in
Choose a consent mode per workspace. In required mode nothing is stored or sent until the visitor agrees, and tracko.js reads your consent banner on its own.
What's included (4)+
- No consent needed, honour Global Privacy Control, or require explicit consent
- Google Consent Mode v2, IAB TCF v2, OneTrust and Cookiebot read automatically
- tracko('consent', 'denied') stops tracking and deletes tracko cookies and storage
- Customer data hashed (SHA-256) before it reaches ad platforms; secrets encrypted at rest
07Data quality & privacy · Keep the data honest, private and shared with the right people
Workspaces, teams and roles
Run one workspace per business or client, and invite your team, agency or VA with exactly the access they need.
What's included (4)+
- Owner, admin, member and viewer roles; a workspace always keeps an owner
- Email invitations that expire after 14 days and only work for the invited address
- Per-workspace currency, time zone (reports follow it), domains and settings
- Flat monthly or yearly plans; pause billing while tracking keeps running
The complete list
Every feature, in one place
Tracking script (tracko.js)
23 features- Async snippet that never blocks rendering
- UTM capture: source, medium, campaign, content, term
- 20+ click ids: gclid, gbraid, wbraid, dclid, fbclid, ttclid, msclkid, li_fat_id, twclid, ScCid, epik, rdt_cid and more
- Campaign, ad set, ad, keyword and placement ids and names
- Parameter aliases from other attribution tools
- Source tags (bm_sl) for emails, influencers and partners
- URL templates for Meta, Google, TikTok, Microsoft, LinkedIn, Snapchat
- URL builder for any landing page
- Tagging check for untagged and partly tagged ads
- Channel classification, including AI assistants
- First-party tracking domain via CNAME
- Server-set first-party cookies
- Single-page apps and hash routing
- Manual page views with tracko('page')
- Cross-domain links, forms and window.open
- Iframe hand-off for embedded forms and checkouts
- tracko.decorate(url) for custom redirects
- Stripe Payment Link, Calendly and ManyChat link decoration
- Domain enforcement and excluded IPs
- Configurable session timeout
- Verify installation, debug mode and tracko.getIds()
- tracko('ready') callback and tracko:ready event
- Tracker error reporting
Events & engagement
13 features- Custom events with tracko('track') or data-tracko-event
- Conversion events attributed like sales, with value as revenue
- Element impressions with data-tracko-view
- Outbound, tel:, mailto:, sms:, WhatsApp, Messenger, Telegram clicks
- Download and button clicks
- Rage-click detection
- Engaged time and scroll depth per page
- Core Web Vitals: LCP, CLS, INP, FCP, TTFB
- Video progress for HTML5, YouTube, Vimeo, Wistia
- GA4 / GTM e-commerce events from the dataLayer
- Ad pixel observation for deduplication
- Bot detection and a human score per session
- Live event stream with pause and filters
Leads & identity
18 features- Automatic form capture, including React, shadow DOM and iframes
- HubSpot, Typeform, Calendly and Klaviyo embeds
- Email, phone, name, company, address and coupon detection
- "How did you hear about us?" capture
- Thank-you page URL parameters and markup
- tracko('identify') and tracko('lead') with custom traits
- Optional phone-only opt-ins
- New vs repeat leads (30-minute dedupe)
- Hidden CRM fields filled automatically
- tracko-ignore and data-tracko-field controls
- Sensitive fields never read
- Deterministic matching on email, phone, external, Stripe and Shopify ids
- Automatic merges that keep all history
- Optional fingerprint stitching
- Shared-device handling
- Opt-in cross-workspace identity network
- Person pages: LTV, identifiers, devices, full timeline
- Automatic $product tags and your own tags
Sales & revenue
14 features- Stripe webhooks plus API sync every 15 minutes
- Shopify webhooks plus hourly Admin API sync
- WooCommerce and PayPal
- ClickFunnels 2.0 and Classic, systeme.io, Kajabi, Leadpages
- GoHighLevel payments, appointments and pipeline stages
- dataLayer purchases and tracko('order')
- Orders merged by order id across sources
- Refunds everywhere; revenue always net
- Line items, tax, shipping, discounts and coupons
- Hard costs for profit
- Subscriptions, renewals, trials and cancellations
- Backfill up to 730 days
- Manual sales for cash and bank transfers
- Per-workspace currency and time zone
Calls & bookings
10 features- Dynamic number insertion with number pools
- Formatting kept; tracko-no-swap to opt out
- Twilio and CallRail, or any phone system by API
- Caller's number identifies the person
- Booked calls from Calendly, Acuity, OnceHub, GoHighLevel
- Outcomes from booked to closed, with deal value
- Showed and no-show sent automatically by GoHighLevel and OnceHub
- One call per person per window
- Count unmarked calls as qualified (optional)
- Booked, Qualified and Cost per qualified call columns
Attribution
12 features- First click, last click, last non-direct
- Scientific, linear, time decay, position based
- Every model computed for every conversion
- Lookback window and separate scientific window
- Ignore organic when a paid click exists
- Disregarded sources
- Credit rebuilt automatically when data changes
- "Why?" explainer for every sale
- Self-reported attribution with click match
- Platform-reported click and view-through columns
- Meta Lead Ads credited to their ad
- Data cleanup for unattributed sales and calls
Reports & analytics
19 features- Dashboard compared with the previous period
- Attribution report with 13 groupings, incl. creative
- Drill-down Platform → Campaign → Ad set → Ad
- Sessions, new and repeat leads, sales, calls, revenue
- New customers and new-customer revenue
- Spend, profit, ROAS, CPA, CPL, cost per new customer
- Tag filter and CSV export
- Click any number to see the people (CSV up to 5,000)
- Business dashboards: call funnel, e-commerce, SaaS, info product
- Funnels with up to 10 steps, drop-offs and cost per step
- Custom reports and formula metrics
- Custom dashboard with drag-to-reorder
- Reconciliation against actual revenue and platform claims
- Sales list with first and last click
- Lifetime value by first touch
- Monthly and weekly cohorts
- Product and category revenue
- Subscriptions: MRR, churn, rebills
- Calls, Traffic and Live pages
Ad platforms
11 features- Hourly spend sync for Meta, Google Ads and TikTok
- Spend import by CSV or API for any platform
- Connect with Facebook, Google or TikTok in a few clicks
- Google manager (MCC) accounts
- Token expiry warnings and one-click reconnect
- Conversion APIs for Meta, Google Ads, TikTok, Microsoft, Reddit, Snapchat, Pinterest, LinkedIn, X
- Google enhanced conversions
- Pixel event-id deduplication
- Test modes and conversion activity log
- Meta Lead Ads import
- Chrome extension for Meta Ads Manager and Google Ads
Developers & automation
6 features- API for orders, refunds, leads, calls, appointments, outcomes, spend
- Read API: attribution, lead journeys, order credit
- Full-access and read-only API keys
- Signed outbound webhooks for orders, leads and calls
- Automatic retries and a delivery log
- Zapier / Make / any-tool webhook, batches of 100
Data quality
6 features- Health checks every 15 minutes
- Alerts in-app, in a banner and by email
- Self-resolving alerts
- Setup checklist from your real data
- Integration sync status, Sync now and Backfill
- Help requests with a workspace snapshot
Privacy & security
7 features- Three consent modes, incl. Global Privacy Control
- Google Consent Mode v2, IAB TCF, OneTrust, Cookiebot
- Consent withdrawal deletes tracko storage
- SHA-256 hashing before ad platforms
- Secrets encrypted at rest
- Signature-verified incoming webhooks
- Visitor ids separate per workspace
Team & account
6 features- Multiple workspaces per account
- Owner, admin, member and viewer roles
- Email invitations that expire after 14 days
- Flat monthly or yearly plans
- Pause billing; tracking keeps running
- Prorated plan switches and invoice downloads
Solutions
Built for businesses that grow with paid ads
Learn
Guides to attribution and ad tracking
FAQ
Questions, answered
What does BrainyMetrics do?
It tracks every visit to your site with its ad, campaign and source, ties visits to people when they share an email or phone, records their leads, sales and calls, and splits the credit across the ads and channels that led there, so you can see real ROAS per campaign, ad set and ad.
How is this different from Meta Ads Manager or Google Analytics?
Ad platforms count conversions by their own rules and often claim the same sale. Analytics tools usually credit the last click and don't see refunds, phone sales or CRM deals. BrainyMetrics counts each sale once from your own data, across every channel, with seven attribution models to compare.
How long does setup take?
Installing the snippet takes minutes. Connecting your payment processor and ad accounts takes a few more. Most data starts flowing immediately, and spend syncs import the last 30 days on the first run.
Does it track phone calls and booked calls?
Yes. Dynamic number insertion matches phone calls to the session that produced them, and bookings from Calendly, Acuity, OnceHub or GoHighLevel are tracked as booked calls with outcomes like qualified and closed.
Can it send conversions back to ad platforms?
Yes. Purchases and leads are sent server-side to Meta, Google Ads, TikTok, Microsoft, Reddit, Snapchat, Pinterest, LinkedIn and X, deduplicated with your existing pixels.
How do I know the attribution is right?
Every sale has a Why? view listing each visit and what the model did with it, every number opens the people behind it, and the Reconciliation page compares tracked revenue with your actual revenue and with what each ad platform claims.
What happens if tracking breaks?
Checks run every 15 minutes. If visits stop, a sync fails, conversions are rejected or sales arrive without a tracked visit, an alert opens in the app and owners and admins get an email. It resolves itself once the problem is fixed.
Is it privacy-friendly?
You choose the consent mode. In required mode nothing is stored or sent until the visitor consents, and BrainyMetrics follows Google Consent Mode v2, IAB TCF, OneTrust and Cookiebot. Password, card and one-time-code fields are never read.
See which ads actually make you money
Install one snippet, connect your checkout, and get attribution you can act on today.