What Is the Best Way to Track CAC and LTV Across Multiple Ad Platforms?

Tracking Customer Acquisition Cost (CAC) and Lifetime Value (LTV) across Google Ads, Meta, and LinkedIn means blending data from multiple systems: your accounting software for marketing spend, your CRM or billing system for customer wins and revenue, and ideally a dimension that lets you see performance by ad platform or campaign.

Most teams try to do this by exporting spreadsheets or building dashboards directly on top of ad platform APIs. Both approaches break when APIs change, attribution shifts, or someone redefines what "New Customer" means in a different workbook.

A metrics-first approach solves this by defining the component metrics once—"Fully Loaded Marketing Costs," "New Customer Wins," "Average Revenue Per Account," "Logo Churn Rate," and "Gross Margin %"—then composing CAC and LTV from those building blocks. When ad APIs change or your attribution model evolves, you update the metric definitions in one place. Every dashboard, exploration, and AI query pulls from the same certified source.

Why Dashboard-First Breaks for Marketing

Dashboards sit on top of whatever the connector returns. When a platform renames a field, deprecates an endpoint, or changes attribution defaults, your charts drift—and you might not notice until the numbers stop making sense in a board meeting.

Common failure points:

Field churn. Cost can appear as cost_micros, spend, or amount depending on the API version. A dashboard built on one field breaks when the API moves to another.

Attribution shifts. Ad platforms change their default attribution windows or model names. Suddenly your "conversions" number changes without you changing any settings on your side.

Sampling and limits. Aggregated endpoints cap rows or sample data, so totals bounce around month to month even when your actual spend stays flat.

Connector fragility. A small schema change breaks a dashboard filter, a calculated field, or a join—and someone has to notice and fix it manually.

A governed metrics layer absorbs these changes behind stable definitions, so your KPIs do not flicker every time an ad platform ships an API update.

Break Down the Problem: What CAC and LTV Actually Require

Before you can calculate CAC and LTV accurately, you need to define the component metrics that feed into them.

CAC Requires Two Metrics

CAC = Fully Loaded Marketing Costs ÷ New Customer Wins

Fully Loaded Marketing Costs: Total marketing spend for a given period, including ad spend, agency fees, software subscriptions, and allocated salaries. This typically comes from your accounting software (QuickBooks, Xero) rather than directly from ad platforms, because ad platforms only show their own spend—not the full picture.

New Customer Wins: Count of distinct customers acquired during the same period, meeting your definition of "paid acquisition" and your chosen attribution window. This usually comes from your CRM (HubSpot, Salesforce) or billing software (Stripe), depending on where you track the moment a customer becomes a paying customer.

LTV Requires Three Metrics

LTV = Average Revenue Per Account (ARPA) × (1 ÷ Logo Churn Rate) × Gross Margin %

Average Revenue Per Account (ARPA): Monthly or annual recurring revenue divided by the number of active accounts. Typically pulled from your CRM (HubSpot) or billing software (Stripe).

Logo Churn Rate: Percentage of customers who cancelled or churned in a given period. Also from your CRM or billing system.

Gross Margin %: Revenue minus cost of goods sold, expressed as a percentage. This comes from your accounting software (QuickBooks, Xero).

The Dimension Challenge: Seeing Performance by Ad Platform

If you want to see CAC and LTV broken down by ad platform (Google, Meta, LinkedIn), you need a shared dimension across all your component metrics.

That means:

  • Your "Fully Loaded Marketing Costs" metric needs an ad_platform or channel dimension.
  • Your "New Customer Wins" metric needs the same dimension, tracking which ad platform or campaign was responsible for each customer acquisition.
  • Ideally, your "ARPA" and "Logo Churn Rate" metrics also carry that dimension, so you can see whether customers acquired from Google have higher LTV than customers acquired from Meta.

If you want to get more sophisticated, you can track dimensions like campaign or ad_group all the way through to customer wins and churn—but that requires disciplined UTM tagging or ad platform ID stamping at the point of conversion.

Practical Setup for Teams Under 100 Employees

Here is how to set this up without building a full data engineering pipeline.

1. Connect Your Sources

For marketing costs: Connect your accounting software (QuickBooks, Xero) to pull total marketing spend. Optionally connect Google Ads, Meta Ads, and LinkedIn Ads if you want platform-level granularity before it hits your accounting system.

For customer wins: Connect your CRM (HubSpot, Salesforce) or billing software (Stripe) to identify when a customer was acquired and which ad platform or campaign was responsible.

For revenue and churn: Connect your CRM or billing software to track ARPA and Logo Churn Rate. Connect your accounting software for Gross Margin %.

PowerMetrics LogoLevel up data-driven decision making

Make metric analysis easy for everyone.

Gradient Pm 2024

2. Standardise Your Dimensions

Create a consistent dimension for ad_platform or channel that appears in all your source systems. This might mean:

  • Tagging marketing expenses in QuickBooks by platform (Google, Meta, LinkedIn, Organic).
  • Stamping customers in your CRM with a first_paid_source field based on UTM parameters or ad platform IDs.
  • Ensuring your billing software or CRM tracks revenue and churn by the same acquisition source.

If your dimensions are not aligned, you cannot slice CAC and LTV by platform without rebuilding the calculations manually in every report.

3. Define Your Component Metrics Once

In a metrics-first BI platform like PowerMetrics:

Fully Loaded Marketing Costs: Sum of marketing spend by date and ad platform, including direct ad spend, agency fees, and allocated overhead. Document the time zone and currency conversion policy.

New Customer Wins: Count of distinct customers acquired during a given period, meeting your paid acquisition rule and attribution window (e.g., last-touch 7 days or first-touch 28 days). Document the attribution logic clearly.

ARPA: Monthly or annual recurring revenue divided by active accounts, segmented by acquisition source if possible.

Logo Churn Rate: Percentage of customers who churned in a given period, segmented by acquisition source if tracked.

Gross Margin %: Revenue minus COGS, expressed as a percentage, from your accounting software.

Once these five metrics are named, defined and certified, you can compose CAC and LTV from them.

4. Compose CAC and LTV as Calculated Metrics

CAC: Divide "Fully Loaded Marketing Costs" by "New Customer Wins" over the same date range and attribution rule. Add divide-by-zero protection so CAC does not spike to infinity when New Customer Wins = 0.

LTV: Multiply "ARPA" by (1 ÷ Logo Churn Rate) by "Gross Margin %". Keep this as a separate metric from any projected LTV calculations based on cohort survival curves.

Both metrics inherit the dimensions from their components. If all five component metrics share an ad_platform dimension, CAC and LTV can be sliced by platform without redefining the formulas.

5. Build Dashboards That Stay Consistent

Now you can build dashboards showing CAC and LTV by ad platform, campaign, or cohort—knowing that every chart pulls from the same certified definitions.

When an ad platform API changes or you refine your attribution model, you update the component metric definitions in one place. Every downstream dashboard, exploration, and AI query automatically reflects the updated logic.

Tradeoffs and Gotchas to Plan For

Attribution windows. Pick the shortest window that still captures the bulk of paid conversions, then document it clearly. Many teams use last-touch 7 or 28 days, plus a sanity-check view using CRM first-touch attribution.

De-duplication. The same user can click Meta and Google before converting. Decide your tie-breaker rule (first-touch, last-touch, or time-decay) and document it in the "New Customer Wins" metric definition.

Refunds and chargebacks. Subtract these from ARPA or switch to a gross-margin-adjusted ARPA. Do not let refunds hide in one system and revenue in another.

Cohort horizon for LTV. The standard LTV formula assumes steady-state churn. If you want to track LTV over a fixed horizon (3, 6, 12, 24 months), create a separate metric called "LTV (12-month cohort)" and keep it distinct from the steady-state calculation.

Zero new customers. Guard CAC from spikes by surfacing "Fully Loaded Marketing Costs" and "New Customer Wins" as standalone tiles. When new customer count is small, CAC becomes noisy and less useful.

Offline deals. If your sales team closes deals by phone or email after an ad click, make sure your CRM captures the original ad source. Otherwise, those customers will appear as "Direct" or "Organic" and skew your CAC calculations.

Where PowerMetrics Fits for Marketing Teams

PowerMetrics acts as your centralized metrics layer, designed for teams that need accurate CAC and LTV without building a data warehouse.

Connect your stack. Pull marketing costs from QuickBooks or Xero. Pull customer wins from HubSpot, Salesforce, or Stripe. Pull ad-level spend from Google, Meta, and LinkedIn if you want granular breakdowns. Over 130 connectors available, plus REST for niche tools.

Light modelling. Prepare your component metrics—"Fully Loaded Marketing Costs," "New Customer Wins," "ARPA," "Logo Churn Rate," "Gross Margin %"—with formulas, filters, and joins. No pipelines or warehouse required.

Metric catalog. Define and certify each component metric once. Add clear names, descriptions, owners, and attribution rules. Then compose CAC and LTV as calculated metrics that inherit those definitions.

Consistent analysis. Compare periods, track goals, and alert when CAC or LTV shifts beyond a threshold. Slice by ad platform, campaign, or cohort without redefining the math.

Resilient definitions. If an ad API changes, update the mapping in the component metric while the metric name and all downstream consumers stay untouched.

Quick Self-Check Before You Publish CAC and LTV

Before you share CAC and LTV dashboards with your team or your board, ask:

Are "Fully Loaded Marketing Costs" and "New Customer Wins" defined with the same attribution window and time zone? If not, your CAC number is comparing spend from one window against customers from another.

Can you trace a CAC data point back to the exact campaigns and customers behind it? If someone questions the number, you should be able to show the underlying spend and customer list.

Does LTV include refunds, taxes, and discounts consistently across sources? If ARPA comes from Stripe but Gross Margin % comes from QuickBooks, make sure both systems treat refunds the same way.

Is currency conversion applied once and documented? If you run ads in USD and EUR, convert everything to your home currency using a single, transparent exchange rate policy.

Do all your component metrics share the ad_platform dimension? If not, you cannot slice CAC and LTV by platform without rebuilding the calculations manually.

If any answer is no, fix the metric definitions first—not the dashboard.

FAQ

What attribution window should marketing use for CAC?

Pick the shortest window that still captures the bulk of paid conversions, then stick to it. Many teams use last-touch 7 or 28 days, plus a sanity-check view using CRM first-touch attribution. Document your choice in the "New Customer Wins" metric definition so everyone uses the same rule.

How do you handle blended or modelled attribution?

Treat the attribution result as an input to "New Customer Wins." The metric definition accepts a source column and optionally a weight if you are doing fractional attribution. Downstream consumers still use the same "CAC" metric—they do not need to know whether attribution was first-touch, last-touch, or modelled.

Can LTV be projected, not just calculated to-date?

Yes. Use a second metric such as "LTV (Projected)" based on cohort survival curves or churn extrapolation models. Keep it separate from "LTV (Steady-State)" so stakeholders do not accidentally mix the two in the same analysis.

What if my CAC spikes because I had zero new customers last month?

Guard against this by surfacing "Fully Loaded Marketing Costs" and "New Customer Wins" as standalone metrics on the same dashboard. When new customer count is small (under 10), CAC becomes noisy. Focus on the trend over a longer window rather than month-to-month spikes.

How do I track CAC and LTV by campaign or ad group, not just by platform?

Ensure your CRM or billing system stamps each customer with a campaign or ad_group dimension at the point of conversion, using UTM parameters or ad platform IDs. Then add that dimension to your "New Customer Wins," "ARPA," and "Logo Churn Rate" metrics. CAC and LTV will inherit the dimension and can be sliced accordingly.