AdLyticsSign In

Methodology

How AdLytics collects, calculates, and presents your advertising data.

How your data is synced

AdLytics connects to your ad platforms (Google Ads, Meta, TikTok, and 20+ others) and pulls performance data automatically every four hours. You can also trigger a manual sync at any time from the Connections page, or upload data directly via CSV if a platform isn't connected.

Data is not streamed in real time — it arrives in batches. This means there is typically a lag of up to four hours between an event happening in your ad platform and it appearing in AdLytics. All spend is normalized to USD at the time of ingestion using the exchange rate at that moment, which is stored alongside the record for historical accuracy.

Core metrics

AdLytics calculates the following standard metrics from the raw data your ad platforms report. When a metric can't be calculated (for example, ROAS when no revenue data is available), it is shown as "—" rather than zero.

CPMCost Per Mille

How much you spend to deliver 1,000 impressions.

spend ÷ impressions × 1,000

Shown as — when: No impressions are reported for the row.

CTRClick-Through Rate

The share of impressions that result in a click.

clicks ÷ impressions

Shown as — when: No impressions are reported.

CVRConversion Rate

The share of clicks that result in a conversion.

conversions ÷ clicks

Shown as — when: No clicks are reported.

ROASReturn on Ad Spend

Revenue returned for every dollar of spend. A ROAS of 3.0 means $3 of attributed revenue per $1 spent.

attributed revenue ÷ spend

Shown as — when: No spend is reported, or your platform does not pass attributed revenue to AdLytics.

When metrics are shown across multiple channels at once (for example, on the dashboard summary), AdLytics computes a blended rate by summing the raw numerators and denominators across all channels before dividing — not by averaging the per-channel rates. This gives you an accurate portfolio-level figure.

Multi-touch attribution

Attribution answers the question: which channels deserve credit for a conversion? AdLytics runs six models simultaneously so you can compare perspectives rather than commit to a single answer.

What these models are computed from. AdLytics works from aggregated, channel-level metrics reported by each advertising platform — spend, impressions, clicks and conversions per channel per time period. The six models below observe no individual journeys and are computed entirely from those aggregates.

The one exception, and its limits. If your workspace supplies its own first-party identity signals — through a data warehouse or clean-room connection, never from an advertising platform's reporting API, which does not return per-person identifiers — AdLytics can reconstruct the order in which those customers encountered your channels. That powers the customer journey funnel described further down, and nothing else: it does not feed any attribution model. It also covers only the subset of conversions carrying an identity signal, requires a recorded consent for the attribution purpose, and withholds any sequence followed by too few people to report safely.

Models that describe a “first” or “last” touch therefore infer position from the timing of channel activity in aggregate, not from any observed sequence of events for a real customer. That is a meaningful difference, and each affected model says so below. Used as a comparative lens across channels and periods these models are informative; read as a literal account of customer behaviour, they are not.

Last-Touch

Gives 100% of the credit to the channel that was active closest to the conversion.

Best for: Quick sanity check or when your purchase cycle is very short (same-day decisions).

How it works here: Derived from aggregated channel activity times rather than observed user journeys, so 'closest to the conversion' means the channel whose activity was most recent in the window, not the last ad a given person saw.

Linear

Splits credit equally across every channel that was active in the window.

Best for: When you believe all channels play an equivalent role and you want a neutral baseline.

Time Decay

Gives more credit to channels active closer to the conversion, with influence fading exponentially the further back in time.

Best for: Longer purchase cycles where recent touchpoints are genuinely more influential.

Shapley Value

Asks what each channel adds to every possible combination of the others, and gives it the average. Credit comes from a response model fitted to your own daily spend and conversions, which includes cross-channel interaction terms — so a channel that only performs well alongside another is credited for that, and the pair splits the shared uplift evenly. Requires at least 500 conversions in the window, and enough days of varied spend to fit the model.

Best for: When you want credit allocation that reflects how channels perform together rather than a proportional split of conversion counts, and you have the volume to support it.

How it works here: Three caveats worth stating plainly. First, the interaction effects are estimated from observational spend variation, not experiments — if you consistently raise budgets across channels during high-demand periods, the model will read that as synergy. Incrementality testing is the causal instrument; this is not. Second, the model needs roughly as many days of data as it has parameters, which grows with the number of channels; when it cannot be fitted, AdLytics reports Shapley as unavailable rather than falling back to a simpler split under the same name. Third, every Shapley result carries a confidence interval and a confidence tier, and those are not decoration — a 'Preliminary' result means the interval is wide enough that you should read the channel ranking rather than the exact percentages.

Position-Based (U-Shape)

Gives 40% of credit to the first channel that touched the customer, 40% to the last, and splits the remaining 20% among any channels in between.

Best for: When you value both brand awareness (first touch) and conversion-driving (last touch) activities.

How it works here: AdLytics stores aggregated channel-level rows, not individual user journeys. 'First' and 'last' are therefore inferred from each channel's spend-weighted average activity time across the whole window — not from the order any real person actually encountered your ads. Treat this as a structural view of your channel mix over time, not as a reconstruction of customer paths. If two channels run continuously and concurrently, their inferred order is close to arbitrary.

Markov Chain

Measures how much conversion probability drops when a channel is removed from the mix. Channels that matter more cause a bigger drop.

Best for: When you want a data-driven estimate of each channel's marginal contribution rather than a rule-based split.

Attribution weights always sum to 100% across all channels for a given model run.

How we measure confidence

Shapley shares come with a confidence interval computed by resampling your own data around the fitted model roughly two hundred times and re-running the entire estimation each time. The interval is the range the estimate moved across those runs.

We resample in multi-week blocks rather than individual days, because marketing data is correlated over time — treating days as independent would produce intervals that look reassuringly narrow and are simply wrong.

A result is labelled Confirmed only when that interval is tight relative to the estimate itself. Preliminary means the number is directionally useful but the interval is still wide — read the ranking, not the decimals. We tier on the measured interval rather than on how long you have been running, because a shorter campaign with varied spend can be measured more precisely than a longer one where budgets never move.

One limitation we would rather state than have you discover: this interval assumes the model itself is approximately right. If your response genuinely does not look like the curve we fit, the true uncertainty is wider than the interval shown.

Halo & cross-channel analysis

Halo analysis measures whether spending on one channel causes better results on a different channel in the weeks that follow. For example: does increasing TV spend lead to higher search CTR two weeks later?

AdLytics tests this by looking at whether week-over-week changes in one channel's impressions statistically predict week-over-week changes in another channel's click-through rate, across lags of one to four weeks. Those changes are sampled daily rather than weekly, so a 90-day window yields around 70 observations rather than 13 — but consecutive observations overlap in six of their seven days, so the p-value is computed from the independent information they carry rather than from the raw count. Results are only shown when there are at least 21 such observations and the relationship is statistically significant (p < 0.05).

A positive halo score means the source channel appears to lift the influenced channel. A negative score means the opposite — spending on one channel may suppress another (cannibalization). The score ranges from −1 to +1, where values closer to ±1 indicate a stronger relationship.

Incrementality testing

Incrementality testing answers: would these conversions have happened anyway, even without the ad spend? It does this by comparing a group of markets where ads ran (test markets) against comparable markets where ads were held back (control markets).

Lift % is the headline output. A lift of 15% means the test markets converted 15% more than the control markets, suggesting your spend drove that incremental activity. A lift of 0% means no measurable difference.

Every lift result comes with a 95% confidence interval. If the interval spans zero (for example, −2% to +18%), the result is not statistically significant — the lift could plausibly be due to chance. AdLytics applies a Bonferroni correction when testing multiple market pairs simultaneously, which makes the significance threshold more conservative to reduce false positives.

Minimum requirements: at least 7 days of test data, 5 daily observations per market, and 2 market pairs.

Lifetime Value (LTV) & CAC

The Audience Insights page shows a Lifetime Value proxy for each acquisition channel — how much attributed revenue, on average, each customer is worth over the observation window.

LTV proxyAverage Revenue Per Acquired Customer

Total attributed revenue from a channel divided by the number of unique customers first acquired through that channel.

Σ(attributed_revenue) ÷ unique_customers

Shown as — when: No identity data is available for the channel (identity resolution not enabled).

CACCustomer Acquisition Cost

How much you spent to acquire each customer through a given channel.

Σ(spend) ÷ unique_customers

Shown as — when: No customers have been identified for the channel (identity resolution not enabled).

LTV:CACLifetime Value to Acquisition Cost Ratio

How many dollars of revenue you generate for every dollar spent acquiring a customer. A ratio of 3× or higher is generally considered healthy.

LTV proxy ÷ CAC

Shown as — when: CAC is zero (no spend recorded).

Lifetime (weeks)Expected Active Lifetime

The average number of distinct weeks a customer remains active (appears in at least one impression) after acquisition.

AVG(distinct active weeks per customer)

Shown as — when: Insufficient identity data to compute per-customer week counts.

LTV and CAC figures require identity resolution to be enabled. They are calculated at the acquisition-channel level — the channel where each customer was first seen. These are proxy metrics: revenue is attributed at the channel level, not directly to individual customers.

Customer journey funnel

The journey funnel shows how customers progress through four stages from first exposure to long-term retention. It answers: of everyone who saw your ads, how many clicked, how many converted, and how many came back?

Who this covers, and who it does not. Unlike the attribution models above, this section is built from identity-linked activity, so it describes only the customers your workspace supplies an identity signal for. That is usually a minority of conversions, and it is not a random minority — customers who log in or buy directly are over-represented. Read the funnel as a view of that group, not as a sample of your whole audience, and compare stage-to-stage drop-off within it rather than against totals elsewhere in the product.

Why some numbers are withheld. A stage or a conversion path followed by very few people can identify them, particularly when the sequence of channels is unusual. Any figure below your workspace's minimum cohort size is withheld rather than shown, and surviving counts carry a small amount of statistical noise. Where paths have been withheld the funnel says how many and how many customers they account for, so the paths you can see are never mistaken for all the paths there are.

Where the stages come from. For workspaces supplying identity at ingest, the four stages are counted from the impressions, clicks and conversions on your own records. For clean-room connections they are counted the same way, inside your environment, from an event type on each touchpoint. If your touchpoint table does not carry one, conversion paths still work but the stages cannot be separated — nothing distinguishes someone who saw an ad from someone who clicked it — and the funnel reports itself as unavailable rather than showing counts drawn from a different set of people than the diagram below it.

How a sequence is determined. Activity is stored by the hour, so touches are ordered to the hour and no finer. Repeat visits to the same channel are preserved, but continuous exposure to one channel across consecutive hours counts once. Only activity at or before a customer's first conversion is included — anything after it, such as retargeting someone who has already bought, is not part of the path that led them to buy.

Awareness

A customer received at least one impression in the observation window.

Consideration

A customer had at least one click. Drop-off from Awareness measures how many reached audiences never engaged beyond seeing the ad.

Conversion

A customer had at least one conversion event. Drop-off from Consideration shows how many clickers did not convert.

Retention

A converting customer also appeared in more than one distinct week. This is a signal of sustained engagement, not a one-time purchaser.

Below the funnel, AdLytics shows the most common conversion paths — the ordered sequence of channels a customer touched before converting, with consecutive duplicate channels collapsed. For example: Paid Search → Email → Direct. These paths are derived from identity resolution data and require identity resolution to be enabled.

AI budget recommendations

The Optimize tab surfaces budget reallocation suggestions, pacing alerts, and cross-channel opportunity flags based on your attribution data, halo scores, and current spend pace.

These are recommendations only. AdLytics does not connect to your ad platforms to make changes automatically. When you accept a recommendation, it is recorded in AdLytics for tracking purposes — you apply the actual budget change in your ad platform directly.

Recommendations are computed on demand (not continuously). Run the optimization engine from the Optimize tab to generate a fresh set based on the latest data.