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. It does not receive, store, or reconstruct individual user journey paths, and cannot link one person's exposure across platforms.

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. Results are only shown when there are at least four weeks of overlapping data 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?

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.