Skip to content
GROWTH DEPT.MTA

How it works

From a visit on your site to revenue you can trust.

Eight steps, run the same way for every store. Here is what each one does, and what it means for the numbers you make budget calls on.

Reads your store and the platforms you buy on
  • Shopify
  • Meta
  • Google Ads
  • TikTok
  • YouTube
  • Instagram
  • Snapchat
  • Pinterest
  • Microsoft Advertising
  • Amazon Ads
  • AppLovin
  • Reddit
  • LinkedIn
  • X
  • The Trade Desk
  • Vibe
  • MNTN
  • Rokt
  • impact.com
  • OpenAI Ads
  • Klaviyo

Every figure traces back to a visit, an order or a platform's spend.

Open any order in the dashboard and you can see the ads and visits behind it, and the credit each one got.

Step by step

Eight steps from visit to report.

  1. 1. The pixel records visits

    POST https://mta.growthdept.ai/e
    
    {
      "key": "pk_...",
      "src": "web_pixel",
      "consent": "y",
      "events": [{
        "id": "5f0c...",
        "type": "page_viewed",
        "ts": 1762437722000,
        "vid": "shopify client id",
        "url": "https://store.example/socks?utm_source=meta&fbclid=...",
        "ref": "https://l.facebook.com/"
      }]
    }

    A small pixel on your Shopify store, and a short script for landing pages you host elsewhere, record each visit from your own domain: the page, the site it came from, and the ad click or campaign tag that brought the shopper.

    Because it runs on your site, it sees every channel the same way, whichever platform paid for the click.

    What it means for your numbers

    • Visits are recorded only when the shopper's consent allows it
    • Bots and repeated events are dropped on arrival
    • No IP address, email, name or device fingerprint is kept
  2. 2. Visits become sessions

    One visitor's day, in sessions

    1. 09:02Lands from a Meta adSession 1
    2. 09:05Views a productSession 1
    3. 09:11Adds to cartSession 1
    4. 13:40Returns by typing the addressSession 2
    5. 13:52Clicks an email linkSession 3

    Session 2 starts after 30 quiet minutes. Session 3 starts because the email link carries new campaign tags. Three sessions, three touches.

    Illustrative. Moving between pages of your site is not a new touch.

    Page views are grouped into visits. Thirty quiet minutes, or a new ad click or campaign tag, starts a new one.

    Each visit counts as one touch with one source, however many pages the shopper reads.

    What it means for your numbers

    • A shopper who browses for an hour is one touch, not twenty
    • An email click mid-visit counts as its own touch
    • A touch means the same thing for every channel
  3. 3. Sessions are tied to orders

    Links from a visit to an order

    1. Landing page visit via first-party visitor id
    2. Store visit via Shopify client id
    3. Checkout completed via the order
    4. Order via customer id, hashed with your brand's key
    5. Earlier orders via the visits behind them

    Every link stays inside one brand. No IP matching, no fingerprints, no matching across brands.

    Visits are linked to the order they led to, inside your store's data only: from the landing page into the store, from the store to checkout, and from the order to a coded customer id that only your store can match.

    That last link finds the visits behind a customer's earlier orders, so a returning buyer's journey isn't cut short.

    What it means for your numbers

    • No matching across brands, by IP address or by device fingerprint
    • A shopper can never be linked between two stores
    • Returning customers keep their earlier touches
  4. 4. Orders arrive from your store

    How orders reach MTA

    • WebhookOrder createdCredited under every model you use
    • WebhookRefundRefunds column; revenue unchanged
    • Hourly pullOrder the webhook missedFilled in
    • WebhookTest or $0 orderKept, left out of credit

    Shopify connects directly. Other stores send orders to the orders API.

    Shopify sends each order, change, cancellation and refund to MTA, and a regular check catches anything missed. Stores not on Shopify can send orders through the API.

    Revenue is what the customer paid for products, shipping and tax, after discounts. Refunds are shown on their own.

    What it means for your numbers

    • Test orders and $0 orders stay out of attribution
    • Only the money is stored: no names, emails or addresses
    • Days follow your store's time zone
  5. 5. Spend arrives from each platform

    Spend, converted once

    • Meta AdsAd, day and hourBilled in the ad account's currency
    • Google AdsAd, day and hourPerformance Max at campaign level
    • TikTok AdsAd, day and hourBilled in the ad account's currency
    • Spend API or uploadAny platform, by daySent in that platform's currency
    Into your store's currency, on arrival1 rate per day

    Each row keeps the platform's own amount and the converted one, with the day's ECB rate.

    Spend, impressions and clicks arrive from each connected ad platform for every ad, along with the campaign and ad set it belongs to. Platforms without a connector can send spend by API or spreadsheet.

    Spend in another currency is converted to yours once, at that day's European Central Bank rate.

    What it means for your numbers

    • Days a platform restates are replaced, not added
    • ROAS never divides one currency by another
    • Connections only read: MTA never changes your ad accounts
  6. 6. Each order is credited under every model

    One order, five click models

    TouchClicks onlyFirst touchLast touchLast non-directLinear
    Meta ad click50%100%0%0%25%
    TikTok ad click50%0%0%0%25%
    Google brand search0%0%0%100%25%
    Direct visit0%0%100%0%25%

    Illustrative journey. Each column adds up to 100% of the order.

    Each new or changed order is shared out under every attribution model you have switched on, and the last 90 days are recalculated every night.

    However an order is shared, its credit adds up to exactly one order and its revenue.

    What it means for your numbers

    • Sales with no tracked ad go to an Unattributed row
    • Every model adds up to the same store total
    • Run it twice on the same data and nothing changes
  7. 7. Windows and accounting views are applied

    Same order, two ways to date it

    Accrual performance

    On the day of the click: judge the week's ads by what they went on to sell.

    Cash snapshot

    On the day of the order: adds up to what Shopify recorded that day.

    Illustrative: an ad click on Monday, the order on Thursday.

    A window sets how long an ad keeps credit: 1, 3, 7, 14, 30, 60 or 90 days after the click, or for good. A shorter window never shows more than a longer one.

    Accrual performance puts revenue on the day of the click, to judge which days' ads earned it. Cash snapshot puts it on the day of the order, and adds up to Shopify.

    What it means for your numbers

    • Accrual tells you which days' ads earned the revenue
    • Cash tells you what landed on which day
    • Recent accrual days rise as late orders come in
  8. 8. Reports and exports read one table

    One table behind every report

    datelevelmodelwindowaccountingspendrevenue
    Nov 3campaignClicks only7 dayAccrual$412.10$1,288.40
    Nov 3campaignLinear7 dayAccrual$412.10$1,104.95
    Nov 3campaignClicks onlylifetimeCash$412.10$1,342.00

    Illustrative rows. Spend is the same on every row; only the credit changes.

    All of this lands in one table, with each day's spend on the same row as the revenue it earned.

    The dashboard, the export API and the Growth Dept warehouse loader all read that table, so the same question gets the same answer wherever you ask it.

    What it means for your numbers

    • A dashboard figure and an exported figure agree
    • Ratios come from summed totals, never averaged
    • Saved views and shared links open on the same numbers

The difference

MTA beside each platform's own reporting.

Ads Manager and its peers report on their own ads, with their own pixel and their own rules. MTA reports on your store.

What you getGrowth Dept MTAA platform's own reports
Every ad platform in one view
Each order counted once across platforms
Revenue from your own store's orders
Email, SMS, organic and direct visits credited too
Seven attribution models to compare side by side
Totals that add up to your Shopify revenue
View-through credit for video and reach ads

Seven models

How each model shares a sale.

ModelWho gets the creditCounts ad views
Clicks onlyAn equal share for each touch that creates demand, such as prospecting ads, non-brand search, social and referrals. With none of those, brand search, email, SMS and retargeting share it; direct visits get it only when they are all there is.No
Clicks + Deterministic ViewsClicks only, plus credit for ads the platforms or a partner recorded as seen, taken only from sales that went to unpaid touches.Recorded views
Clicks + Modeled ViewsClicks only, plus credit for ads estimated from each platform's impressions, fitted to your store and taken only from sales that went to unpaid touches.Estimated views
First touchAll of the order to the first touch.No
Last touchAll of the order to the last touch, including a direct visit.No
Last non-direct touchAll of the order to the last touch that wasn't a direct visit.No
LinearAn equal share for every touch.No

Find out which ads really sell.

Book a 45-minute call with the Growth Dept team. We look at how you measure sales today and show you what MTA would add.