Ad costs
3x imports cost and performance data from Google Ads, Meta Ads, LinkedIn Ads and TikTok Ads through Composio and joins it to the sessions those ads brought. The result is not "clicks and CPC" as the platforms report it, but what a relevant visit and a lead really cost you, measured on your own site.
What is imported
Per ad account and day: spend (converted to the project currency), impressions, clicks, and the
platform's own conversions and conversion value (shown next to 3x's numbers, never mixed in).
Entities (campaigns, ad sets / ad groups, ads / creatives) with their names and URL parameters, and
for Google the click view (gclid → campaign, ad group, ad, keyword).
Only read-only tools are used. 3x never changes campaigns, budgets or bids.
How sessions are matched
Each session that came from an ad is matched to the most specific entity possible, first match wins:
- Click id –
gclid/gbraid/wbraidfound in Google's click view: exact ad and keyword. - UTM ids – UTM values that are platform ids (the UTM templates).
- URL tags – the literal UTM combination configured on an ad (Meta URL parameters, TikTok landing URLs, LinkedIn post URLs, Google templates).
- Name – normalized
utm_campaignequals a campaign name, only when unique. - Manual – your mapping rules from the Unmatched UTMs view.
- Platform – only the platform is known (click id or source alias); counts for platform-level cost per session.
Details: Matching sessions to ads.
KPIs
| KPI | Definition |
|---|---|
| CPC | spend ÷ platform clicks |
| CTR | platform clicks ÷ impressions |
| Cost per session | spend ÷ matched sessions |
| Cost per relevant session | spend ÷ matched sessions with relevance ≥ the project threshold (default 30, engaged+) |
| CPL | spend ÷ matched sessions with a lead |
| Cost per conversion | spend ÷ matched converted sessions |
| ROAS | (goal values + conversion values) ÷ spend |
Levels: platform → campaign → ad set → ad. Every report accepts the full analytics filter on the session side and the date range on the cost side. Formulas and caveats: Cost KPIs.
Days and currencies
Costs are reported per ad-account day (the account's time zone); sessions are bucketed in the project time zone. When they differ, daily charts show a small offset – totals over a range are unaffected. Every amount is converted to the project currency with daily ECB reference rates; mixed currencies are never summed.
Setup
- Configure Composio once per deployment (Composio setup).
- Connect accounts per platform: Google, Meta, LinkedIn, TikTok. Connections can live at the organization level (agencies: one login, many projects) or at the project level.
- Select the ad accounts that belong to the project. A 90-day backfill starts automatically.
- Optionally adopt the UTM templates for exact matches.