Docs

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:

  1. Click id – gclid/gbraid/wbraid found in Google's click view: exact ad and keyword.
  2. UTM ids – UTM values that are platform ids (the UTM templates).
  3. URL tags – the literal UTM combination configured on an ad (Meta URL parameters, TikTok landing URLs, LinkedIn post URLs, Google templates).
  4. Name – normalized utm_campaign equals a campaign name, only when unique.
  5. Manual – your mapping rules from the Unmatched UTMs view.
  6. Platform – only the platform is known (click id or source alias); counts for platform-level cost per session.

Details: Matching sessions to ads.

KPIs

KPIDefinition
CPCspend ÷ platform clicks
CTRplatform clicks ÷ impressions
Cost per sessionspend ÷ matched sessions
Cost per relevant sessionspend ÷ matched sessions with relevance ≥ the project threshold (default 30, engaged+)
CPLspend ÷ matched sessions with a lead
Cost per conversionspend ÷ 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

  1. Configure Composio once per deployment (Composio setup).
  2. 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.
  3. Select the ad accounts that belong to the project. A 90-day backfill starts automatically.
  4. Optionally adopt the UTM templates for exact matches.