TapCub is live — analytics, insights and live chat, free on one platform

Marketing analytics Which channel actually pays back

Import spend, let TapCub read UTM parameters and 14 ad click IDs on arrival, and see return per channel next to the conversions it produced. In the sample, Newsletter returns 6.2× and TikTok 0.8× — the budget conversation writes itself.

  • ROI per channel, with imported spend
  • First touch and last touch
  • 14 ad click IDs, global and China
  • AI search as a channel
app.tapcub.com
InsightsChannel ROILast 30 daysLast touchImport spend

Channels · return on spend

Spend imported
ChannelSpendConversionsRevenueROI
Newsletter$1,200186$7,4406.2×
Google$4,800408$16,3203.4×
Meta$3,600189$7,5602.1×
Microsoft$1,50068$2,7001.8×
TikTok$2,40048$1,9200.8×

Blended ROI · daily

All paid channelsBreak-even
Sep 18Sep 20Sep 22Sep 24Sep 26Sep 28Sep 30Oct 1
Sample data
Why teams end up here

Clicks are not customers

Three gaps between what the ad platform reports and what actually happened, and how TapCub closes them.

"Every platform claims the same sale"

Each ad platform counts the conversion for itself. Add up their dashboards and you sold three times more than you did.

One source of truth: the order on your site, attributed once. First and last touch both visible, with the full path per person.

"Half our traffic is (direct) or (other)"

Untagged links, stripped parameters and app traffic pile into buckets no one can act on.

14 ad click IDs and UTM parameters are read on arrival and kept on the person, so a later purchase is still attributed to the campaign.

"ROI is a spreadsheet we update monthly"

Spend lives in five ad accounts; revenue lives in analytics. Someone merges them by hand, late.

Import spend per channel — CSV or API — and ROI is a column in the report, daily, next to the conversions.

Ad click IDs

14 ad platforms recognized on arrival

When a landing URL carries a known click ID, the visit — and the person — is tied to that platform even if no UTM was set. Ten global platforms and four in China, read automatically.

Global · 10 platforms

Google Ads

gclid · wbraid

Meta

fbclid

TikTok

ttclid

Microsoft Ads

msclkid

X Ads

twclid

LinkedIn

li_fat_id

Snapchat

ScCid

Pinterest

epik

Reddit Ads

rdt_cid

Yandex Direct

yclid

China · 4 platforms

Ocean Engine

clickid

Baidu Marketing

bd_vid

Tencent Ads

gdt_vid · qz_gdt

Kuaishou Magnetic

callback

  1. 1

    Read

    The script reads the click ID from the landing URL on the first page view — nothing to configure.

  2. 2

    Keep

    The ID and the platform stay on the profile, so a purchase three weeks later still credits the ad.

  3. 3

    Report

    Platform appears as a source alongside UTM channels; conversions can be posted back to the platform.

Campaigns and UTM

Campaign reports that add up

UTM parameters are normalized on arrival — case, spacing and known aliases — so "Google", "google" and "Google Ads" are one row. Campaign, source, medium and content each get their own breakdown with sessions, conversions and rate.

  • Normalization: case, whitespace, common aliases
  • Breakdown by campaign, source, medium, term, content
  • Export any table or schedule it by email

Example scenario: The spring sale ran in email, paid search and a partner post with one campaign name. The report shows the email with the hero_cta link converting at 9.1% and the footer link at 2.4% — the next email has one button.

app.tapcub.com

Campaign · spring_sale

Export
ContentSourceSessionsConversionsRate
hero_ctanewsletter2,0401869.1%
footer_linknewsletter1,120272.4%
ad_group_agoogle3,8602145.5%
post_1partner_acme64091.4%
Example tagged link
https://shop.example/spring?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale&utm_content=hero_cta
Sample data
Attribution

First touch and last touch, on the same person

A customer sees a Newsletter, clicks a Google ad two weeks later and pays. First touch credits the Newsletter; last touch credits the ad. TapCub shows both columns — and the full path — so the team stops arguing about which one is "right".

  • First, last and linear models on the same table
  • The path per person: every touch, in order, with dates
  • Switch model without re-running anything

Example scenario: Under last touch, Google gets 408 conversions and Newsletter 186. Under first touch, Newsletter rises to 302 — it introduces customers that search later closes. Both channels stay in the budget.

app.tapcub.com

Conversions by model

First vs lastLinear
ChannelFirst touchLast touchDifference
Newsletter302186+116
Google318408−90
Meta171189−18
Microsoft5468−14
TikTok5448+6

One customer’s path

3 touches · 18 days
Newsletter· Sep 3Google ad· Sep 18Paid $128· Sep 21
Sample data
Landing pages

The page after the click

A channel can be fine and the page it lands on broken. Landing page reports show visits, bounce and conversion per entry page with the channel beside it, so a weak page does not get blamed on a good campaign.

  • Visits, bounce rate and conversion per entry page
  • Filter by channel to see the page for one campaign
  • Page speed and errors on the same row from website analytics

Example scenario: Paid search sends 3,860 sessions to /landing/spring; it bounces at 71% and converts at 2.1%. The same traffic to /pricing converts at 5.8%. The ad destination changes, the channel does not.

app.tapcub.com

Landing pages · last 30 days

Channel: Google
PageVisitsBounceConversionTop source
/pricing6,42038%5.8%google
/landing/spring3,86071%2.1%google
/blog/linen-care2,91062%1.9%newsletter
/product/linen-shirt2,24044%7.4%newsletter

Entry pages

142

Avg. bounce

48%

Best converting

/product/linen-shirt

Sample data
Channel ROI

Spend share against return

Import what you spent per channel and ROI becomes a column, not a spreadsheet. The quadrant shows where to move budget: Newsletter sits top-left — small spend, 6.2× return. TikTok sits bottom-right — the largest share of spend after Google, 0.8× back.

  • Spend by CSV upload or ad platform API
  • Return = attributed revenue in the same window
  • Channels with clicks but no spend are listed, not ranked

Example scenario: Moving $1,000 from TikTok to Newsletter production — more issues, better segments — is the recommendation the quadrant makes without anyone building a slide.

app.tapcub.com

Channels · spend share × ROI

Last 30 days

ROI by channel

Newsletter6.2×
Google3.4×
Meta2.1×
Microsoft1.8×
TikTok0.8×

Total spend $13,500 · attributed revenue $35,940 · blended 2.7×

Sample data
AI search

Visits from AI assistants, as a channel

When ChatGPT, Perplexity, Gemini or Claude link to your page, the visit arrives with a recognizable referrer. TapCub groups them as an "AI search" channel next to search and social, and shows which pages get cited.

  • Referrers from AI assistants grouped as one channel, split by assistant
  • Pages cited most often, with their conversion
  • Pairs with the AI crawler report in website analytics

Example scenario: AI search is 3,152 sessions this month, up 4× since spring, and converts at 4.9% — above organic search. The pricing comparison page is cited most; it gets a clearer first screen.

app.tapcub.com

AI assistants · sessions

AI search
ChatGPT1,842
Perplexity614
Gemini388
Claude212
Copilot96

AI search sessions · monthly

NovJanMarMayJulSep

Sessions

3,152

Conversion

4.9%

Most cited pages

PageSessionsConversion
/compare/web-analytics1,2045.6%
/pricing8866.1%
/blog/ai-crawler-ledger6122.3%
Sample data
Organic vs paid

Are you paying for traffic you would get anyway?

Organic and paid search on the same chart, by month and by landing page. When a page ranks and still gets paid clicks for the same query, the overlap is the cheapest budget cut you will find.

  • Organic and paid sessions per month and per page
  • Overlap flag when both land on the same URL
  • Conversion per source, so the cut is informed

Example scenario: /pricing gets 2,100 organic and 1,860 paid sessions a month for brand terms. Pausing brand bidding for two weeks: organic rises to 3,400, total conversions unchanged, $1,100 saved.

app.tapcub.com

Search sessions · organic vs paid

MonthOrganicPaid
June5,4203,860
July5,9804,120
August6,6104,480
September7,2404,310

Search sessions · monthly

OrganicPaid
OctDecFebAprJunAug
Sample data
In practice

Three teams, three budget decisions

Example scenarios built on the sample data above.

E-commerce

Stop double-counting sales

Three ad platforms each reported the same 500 orders as their own.

  • Orders attributed once from the site
  • First and last touch side by side
  • Spend imported from all three

Result: Blended ROI 2.7× instead of a claimed 8×; TikTok cut, Newsletter production doubled.

SaaS

Credit the newsletter

Last-touch reporting made the newsletter look like a cost center.

  • First-touch column: Newsletter 302 vs 186
  • Path view: Newsletter → Google → paid
  • Segment compare: Newsletter first-touch pays at 25%

Result: The newsletter keeps its budget and gets a dedicated landing page.

Content

Measure AI search

Traffic from AI assistants was landing in "referral" and being ignored.

  • AI search as its own channel
  • Most-cited pages with conversion
  • robots.txt checked for AI search crawlers

Result: AI search is the fourth-largest channel at 4.9% conversion; the two most-cited pages get rewritten first.

FAQ

Marketing analytics questions

Still have a question?

Chat with the team behind TapCub — we usually reply within a few hours on business days.

How is ROI calculated?

Attributed revenue divided by imported spend, in the same date range. Newsletter in the sample is $7,440 ÷ $1,200 = 6.2×. Spend comes from a CSV upload or an ad platform connection.

Which attribution models are available?

First touch, last touch and linear, switchable on every table. The per-person path shows every touch with dates, so you can see why the models disagree.

Which ad click IDs are recognized?

14 platforms: Google Ads, Meta, TikTok, Microsoft Ads, X Ads, LinkedIn, Snapchat, Pinterest, Reddit Ads and Yandex Direct globally; Ocean Engine, Baidu Marketing, Tencent Ads and Kuaishou Magnetic in China.

Do I still need UTM parameters if click IDs are read?

Yes. Click IDs identify the platform; UTM parameters carry your campaign, content and term names. Use both. The UTM builder keeps the naming consistent.

Can conversions be sent back to ad platforms?

Yes. Server-side postbacks for the supported platforms send attributed conversions without a browser pixel. See integrations.

How is AI search traffic detected?

By referrer. Visits arriving from ChatGPT, Perplexity, Gemini, Claude and Copilot domains are grouped as "AI search" and split by assistant. AI crawler visits — bots, not people — are reported separately in website analytics.

See your data clearly. Find your growth.

Every click, backed by data. Install one line of code and see your first numbers in a minute.

No credit card · Free plans for analytics and chat · Cookieless analytics