TikTok Ads Manager shows cost per lead (CPL) per campaign. Marketers optimize by CPL. But does the TikTok lead actually close as a deal? How many days later? At what conversion rate to Won? This data doesn’t exist in TikTok Ads — it lives in the CRM. Prooflytics closes the loop: TikTok click -> first contact -> journey in CRM -> closed deal -> real CAC per TikTok campaign.
Why GA4 Misattributes TikTok
Problem 1: Last-click attribution. User sees a TikTok video -> visits the site -> doesn’t convert. Returns via Google 3 days later -> converts. GA4 attributes the conversion to Google Organic. The TikTok campaign appears ineffective, even though it launched the journey.
Problem 2: Cookie restrictions. iOS 14+ and browser restrictions shorten the lifespan of third-party cookies. TikTok’s ttclid in the URL is a session parameter that is lost on navigation. GA4 doesn’t capture ttclid -> no link between click and conversion.
Problem 3: CRM gap. GA4 sees site conversions (registration, form submission). But a closed deal in HubSpot or Kommo is a different event, occurring 14–90 days after the first visit. GA4 doesn’t know about it.
The same problem that Prooflytics solves for Meta Ads and LinkedIn Ads — now applies to TikTok.
How TikTok Attribution Works in Prooflytics
Step 1. Prooflytics Pixel captures ttclid.
When a TikTok ad is clicked, ttclid=AbCdEfGh... is appended to the URL. The Prooflytics Pixel (first-party JS on your site) reads this parameter from the URL and stores it in a first-party cookie + localStorage. Storage duration — 7 days (longer than a session).
// Prooflytics Pixel automatically captures ttclid
// and all 14 click-ID parameters upon installation
// No manual configuration required
Step 2. User identification.
On registration or form submission, the Pixel links the email/userId to the ttclid. Prooflytics now has: email -> ttclid -> campaign_id -> adset_id -> creative_id (via TikTok Marketing API).
Step 3. CRM sync.
Prooflytics connects to HubSpot or Kommo. When a Deal closes (Won) — Prooflytics matches Contact.email to the captured ttclid -> finds the TikTok campaign -> records the attribution.
Step 4. TikTok Events API (server-side).
For iOS users without cookies — Prooflytics sends conversion events via the TikTok Events API (server-to-server). This improves matching in TikTok Ads Manager and reduces under-reporting after iOS 14.
# Example event via TikTok Events API
# (Prooflytics does this automatically)
import requests, hashlib, time
TIKTOK_PIXEL_CODE = "your_pixel_code"
TIKTOK_ACCESS_TOKEN = "your_access_token"
def send_tiktok_conversion(email: str, event_name: str,
value: float, currency: str = "USD"):
email_hashed = hashlib.sha256(email.lower().encode()).hexdigest()
payload = {
"pixel_code": TIKTOK_PIXEL_CODE,
"event": event_name,
"event_time": int(time.time()),
"user": {
"email": email_hashed, # SHA-256
},
"properties": {
"value": value,
"currency": currency,
},
"context": {
"ad": {"callback": "ttclid_value_here"}, # from first-party storage
}
}
requests.post(
"https://business-api.tiktok.com/open_api/v1.3/pixel/track/",
headers={"Access-Token": TIKTOK_ACCESS_TOKEN},
json=payload
)
What the Marketer Sees in Prooflytics
After connecting TikTok Ads and CRM, the marketer sees:
Per TikTok campaign:
— Clicks -> Leads (from form/registration) — CPL
— Leads -> Won Deals — TikTok lead-to-customer conversion rate
— Cost per closed deal (CAC) per campaign
— Average time from TikTok click to Won
— MRR/Revenue from TikTok by campaign
Example of real variance:
— Campaign A: CPL $35, conversion rate 4%, CAC $875
— Campaign B: CPL $80, conversion rate 18%, CAC $444
A marketer optimizing by CPL cuts campaign B and scales A. A marketer with CAC data does the opposite.
TikTok vs Meta vs LinkedIn: Attribution Comparison
| Platform | Click ID | First-party Pixel | Events API | B2B effectiveness |
|---|---|---|---|---|
| Meta Ads | fbclid | Yes | CAPI (stable) | High (B2C + B2B) |
| LinkedIn Ads | li_fat_id | Yes | Conversion API | High for B2B |
| TikTok Ads | ttclid | Yes | Events API | Growing — Gen Z in B2B |
| Google Ads | gclid / wbraid | Yes | Enhanced Conversions | Very high |
TikTok for B2B is a growing channel. According to LinkedIn Business Insights (2024), 40% of B2B decision makers are active on TikTok. Young VPs and founders are influenced by TikTok content when making SaaS purchase decisions.
Real-World Case Study
DTC SaaS (US, TikTok + Meta + Google, HubSpot, 60–80 new customers/month):
- Before: TikTok Ads Manager showed CPL $29 — best across channels. TikTok budget was growing. But the marketer didn’t know TikTok lead-to-paying-customer conversion rate.
- After connecting Prooflytics: TikTok leads close in 6% of cases (vs 14% Google, 11% Meta). CAC from TikTok — $483 (vs Google $321, Meta $398).
- Decision: TikTok remained in the mix — for awareness and retargeting. Direct sales refocused on Google and Meta with better CAC. Overall portfolio CAC dropped by 19% on the same budget.
TikTok Ads Status in Prooflytics
Prooflytics Pixel already captures ttclid — first-party attribution works right now. A direct TikTok Ads Marketing API connector (for automatic campaign metric sync — impressions, spend, CPM) is on the roadmap and will be added after TikTok Marketing API partner access approval. Until the connector launches, attribution works via Pixel + CRM; campaign data can be passed manually or via webhook.
Connect and try: prooflytics.io — 14-day trial.
Who This Is For
- Teams running TikTok Ads who don’t know the real CAC for that channel
- B2B SaaS with long deal cycles: TikTok -> registration -> Won after 30–90 days — GA4 loses this chain
- Marketers with multiple channels (TikTok + Meta + Google) — unified CAC dashboard
- Teams working with HubSpot or Kommo — Prooflytics natively connects to both
Frequently Asked Questions
Does TikTok Ads work for B2B or only B2C?
TikTok is effective for B2B in niches where decision-makers are younger — SaaS, startups, digital agencies, e-commerce. LinkedIn still leads for enterprise B2B. TikTok is stronger for awareness and retargeting; conversion to Won is typically lower than Google. Real CAC can only be verified via first-party attribution.
How reliable is ttclid as an identifier?
ttclid is generated for each click and valid for 7 days. More reliable than third-party cookies, but vulnerable to JavaScript opt-outs or ad blockers. Server-side Events API (without browser tracking) increases coverage for iOS devices. Prooflytics uses both methods in parallel.
How do I set up TikTok Pixel alongside Prooflytics Pixel?
Both pixels run in parallel. TikTok Pixel sends data to TikTok Ads for algorithm optimization (bidding). Prooflytics Pixel captures ttclid and other click IDs for first-party attribution in your system. No conflict — different purposes.
Doesn’t GA4 cover TikTok attribution?
GA4 works on a last-click model and loses TikTok touches in multi-step journeys. Additionally, GA4 doesn’t see the Won event in the CRM — only site events. A separate system is needed to close the attribution loop from ad to closed deal.
How long does it take to connect TikTok to Prooflytics?
Pixel installation (WordPress: 1 line, Webflow: via Custom Code, Shopify: via app embed) = 15 minutes. CRM connection (HubSpot or Kommo) — OAuth, 5 minutes. First attribution data — within 24–48 hours after the first TikTok clicks.
Summary
- TikTok Ads Manager shows CPL, not CAC: without CRM integration, optimization is incomplete
- Prooflytics Pixel captures
ttclidas first-party data — reliable, without cookie dependency - TikTok Events API (server-side) covers iOS users without cookies
- Unified CAC dashboard for TikTok + Meta + Google + LinkedIn — comparable metrics for budget decisions
- Status: Pixel + CRM attribution works now; direct TikTok Marketing API connector — on roadmap
If you’re running TikTok Ads and want to know real CAC per campaign — start with installing the Prooflytics Pixel. Exceltic.dev will configure the connection to HubSpot or Kommo and set up the attribution model for your deal cycle.