Est.

Building an Internal Dashboard for AI Ad Campaign Reporting

Conversational AI ads need different metrics because keywords and clicks don't apply.

· 11 min read
Cover illustration for “Building an Internal Dashboard for AI Ad Campaign Reporting”
Measurement & Reporting · October 13, 2026 · 11 min read · 2,542 words

A media buyer pulls up the standard paid search template to report on an AI ad campaign and finds the columns empty or meaningless. That failure is the subject of this piece: building a dashboard for conversational AI ad campaigns requires a different metrics layer altogether, because the signals legacy dashboards depend on either don't exist in this channel or don't mean what they used to mean. Every legacy paid media dashboard runs on three pillars: keyword-level data, click events, and impression share. All three assume a static sequence, a query typed, a result clicked, a conversion logged, and conversational interfaces rarely produce that sequence. Inside ChatGPT, the ad a user sees is a labeled sponsored card below the answer, not a search result tied to a query; no keyword triggered it, and the path from that conversation to an eventual purchase can cross multiple sessions and multiple devices before any conversion event fires. Microsoft Copilot compounds the problem by weighing an entire conversation within a session, not the last prompt alone, to decide which ad to show, which makes a dashboard column labeled "matched keyword" structurally meaningless on that surface. Google AI Overviews and AI Mode have no segmented reporting at all, so ad spend running through Search, Shopping, and Performance Max campaigns disappears into those AI surfaces, and no dashboard can trace it.

What a conversational session actually produces as data

A conversational session doesn't produce data shaped like a search session. Conversational intent unfolds across multiple turns, building across an entire conversation arc instead of intent expressed at a single moment in a single query. A targeting system reading that conversation has to interpret not just what the user typed in the current turn but the full trajectory: what came up three exchanges earlier, how the assistant responded, which follow-up questions surfaced, and where the exchange seems to be heading. Early data on this targeting shows it reaching users four to six turns deep into a research conversation, well before the point at which those same users would have typed a search query, which places the ad at the pre-discovery stage of a purchase journey rather than the mid-funnel position search ads typically occupy. A user might never name a product category outright and still reveal strong purchase intent through a string of questions about trade-offs, constraints, and priorities. That signal is semantic rather than lexical, so no keyword report could ever have captured it. None of this data arrives as identifiable individual behavior, either. Because relevance is derived from the live conversation rather than a stored browsing history, the data available to advertisers is aggregated and pseudonymized before it becomes usable. Brands receive modeled audience intelligence rather than a one-to-one user record, and there is no individual-level targeting log to build a dashboard against. What the auction actually reads is the context hint, the ad copy, and the landing page, which tells the dashboard builder that the variables worth tracking are creative-level relevance signals and hint performance, not match types. Because relevance weighting counts for more than bid size in this auction, a precisely written hint from a small-budget advertiser can beat a vague hint backed by a much larger budget, which makes hint quality itself a performance variable the dashboard has to surface rather than an input the dashboard can take for granted.

The tier and surface constraints that determine what data you can see

Each AI ad surface exposes its own reporting layer, and some of those layers are missing by design rather than by oversight, so the dashboard architecture has to be built around the gaps rather than assume they'll close. ChatGPT ads reach only logged-in adult users on the Free and Go tiers; Plus, Pro, Business, Enterprise, and Education remain ad-free. That creates a blind spot no dashboard column can fill: the users most likely to carry employer-paid plans, often the exact B2B buyers a campaign is trying to reach, are the users an ad will never touch. Free-tier users can also opt out of ads in exchange for fewer daily free messages and reduced access to tools like image generation, and that opt-out segment never appears in platform reporting. Microsoft Copilot has no reporting surface of its own; Microsoft Advertising does not currently report Copilot-specific metrics, so impressions, clicks, CTR, conversions, conversion rate, CPC, and ROAS only exist at the campaign level, combined across all placements. Copilot's segment can only be isolated from the rest of the campaign manually, since ads there are auto-served from existing Microsoft Ads accounts with no Copilot-specific opt-in and no clean report exists to pull. Anthropic's Claude carries no advertising, and Gemini on a standalone basis carries none either, so neither surface gives you any paid placement data to report on. What this leaves a cross-surface dashboard working with is two or three real data feeds, ChatGPT, Copilot, and a blended Google feed, each with its own column structure, its own attribution window, and its own level of granularity. You can't normalize those feeds into something comparable as an enhancement to add later. It's the condition the dashboard has to meet before a single row of data can be trusted.

The core metrics layer: what to measure when clicks and keywords are absent

Diagram: Four Metrics Categories That Replace Keywords and Impression Share. Visualizes: Show the four categories of the new conversational AI dashboard metrics layer, presented as a ranked or stepped structure that replaces the three legacy…

A dashboard built for conversational AI campaigns needs a metrics layer organized around four categories: context hint performance, conversation-depth signals, post-click quality, and surface-normalized spend efficiency. These four categories replace the keyword and impression-share columns that structured every legacy dashboard before this channel existed. Context hint performance tracks impression volume by hint, CPM by hint, and the relative win rate of each hint against others in the same ad group, and together these show you which descriptions of the target conversation are actually matching and winning auctions. Teams that write hints as flat, comma-separated topic lists tend to see poor matching, so the dashboard should flag any hint winning low impression share relative to its bid level as a relevance problem rather than a budget problem: throwing more spend at a vague hint rarely fixes what the hint itself got wrong. Conversation-depth signals address a question legacy dashboards never had to ask: not whether a user saw the ad, but where in the conversation that impression landed. Early data shows this targeting reaching users four to six turns deep into a conversation, so an impression served at turn two carries a different intent-match than one served at turn six, and the dashboard should track that distribution rather than collapse it into a single impression count. Copilot's ad-matching mechanism operates on the whole session rather than the last prompt, so you should read Copilot impression data against the length of the session it came from, not treat it as equivalent to a single search impression. Post-click quality metrics matter because raw click counts understate what this channel actually delivers: users referred from ChatGPT convert at roughly one-and-a-half times the rate of other referral channels, so conversion rate and downstream quality need their own place in the dashboard, separate from volume. The conversation gap makes last-click attribution unreliable on its own, so the dashboard should lean on creative-level UTM tags and, where feasible, holdout tests rather than take platform-attributed conversions at face value. On publisher sites running Dappier's Sponsored Conversations format, roughly half of users who engage with the brand agent go on to click the call-to-action, which gives this channel a measurable engagement-to-CTA signal that has no real equivalent in search reporting. Surface-normalized spend efficiency exists because CPM, CPC, and CPA aren't interchangeable units across these surfaces: a $60 CPM on ChatGPT's pilot rate isn't the same efficiency measure as a CPC-basis buy on that same platform's self-serve system, and neither compares cleanly to a blended CPA pulled from Copilot without adjustment. ChatGPT's self-serve tools allow both Reach (CPM) and Clicks (CPC) objectives, so the dashboard has to record which objective ran on each campaign before any cross-surface efficiency comparison means anything. From there, the dashboard should compute a normalized cost-per-qualified-outcome that folds conversion quality into the number, rather than reporting a bare CPM or CPC that tells only half the story.

Attribution in a channel where the conversion path is invisible by design

Attribution in this channel isn't just hard to pin down; it's broken by the structure of the channel itself, and a dashboard that treats platform-reported conversions as the full picture will undercount what the channel is actually doing. The conversation gap sits at the center of the problem: a user can ask several follow-up questions in one session, leave the chat, come back hours or days later, and convert on a different device, and a last-click model assigns zero credit to the ad impression that started that research. Platform-reported conversions on ChatGPT only capture what fires inside the platform's own attribution window and what its conversion API can actually observe, and the longer a purchase cycle runs, the wider the gap grows between what the platform reports and what actually happened. Google AI Overviews and AI Mode offer no segmented reporting whatsoever, so any conversion that touched an AI Overview ad can't be separated from organic or standard search attribution without building an external model to do the separating. None of the available mitigations close this gap; they shrink it. Creative-level UTM tagging, tagging every ad creative with its surface, its hint group, and a session-depth bucket, lets post-click behavior in GA4 or a comparable analytics tool get traced back to the conversational context it came from, even though the underlying gap in platform data remains. Holdout testing, withholding the ad from a matched audience segment and measuring the resulting difference in conversion rate, produces an incrementality estimate that doesn't depend on last-click logic at all, offering a cleaner read on the channel's actual effect. Multi-touch modeling treats the AI ad impression as a first-touch or assist event instead of forcing it into a last-touch framework, so the dashboard has to ingest impression timestamps alongside conversion timestamps, not clicks alone. None of these three approaches solves attribution. They are the best tools available given a channel that was not built to expose its own conversion path, and a dashboard built on this channel should present them as exactly that.

Blending AI surface data with legacy channel benchmarks inside a single dashboard view

A dashboard like this earns its value by placing AI ad data in context next to legacy channel performance, but that only works once the normalization logic accounts for the structural gap between a keyword-triggered click and a conversational impression. A CPM figure from ChatGPT and a CPC figure from Copilot cannot sit in the same cost column without a buy-type flag attached, so the dashboard needs to record whether each campaign ran on a Reach or a Clicks objective before you compute any efficiency comparison. Copilot's native reporting, impressions, clicks, CTR, conversions, conversion rate, CPC, and ROAS, maps most directly onto legacy search columns, but it should carry a flag marking these as session-context impressions rather than query-match impressions, since the mechanism behind them is fundamentally different even where the column names look familiar. ChatGPT's own reporting stops at CPM and CPC, so any conversion data beyond that has to come from the UTM layer and GA4 rather than the platform itself, and the dashboard should make that source distinction visible to whoever is reading the report rather than blending platform and third-party numbers into one undifferentiated column. Google AI Overview spend stays invisible at the platform level entirely, so the dashboard's best option is an "estimated AI Overview exposure" column, derived from impression share on qualifying campaign types and AI Max enrollment status, clearly labeled as a model. Evaluating any of this requires a reference frame, and confirmed 2026 baselines for legacy channels supply one: Google Search averages a CTR of roughly three and a half percent and a CVR just above four percent, Amazon Sponsored Products averages a CVR just below ten percent, and Meta averages a CTR just above two percent with a CVR below two percent. ChatGPT's early placements have shown CTRs well below the Google Search baseline, but a raw CTR comparison misleads on its own, since users referred from ChatGPT convert at a meaningfully higher rate than users from other referral channels once they do click through. The dashboard should show both the volume metric, CTR and impressions, and the quality metric, conversion rate and cost per qualified outcome, for every surface in the same row, so that the AI channel's lower volume and higher quality are visible together. Structurally, that means building the dashboard in layers: a surface layer with one row per active surface, ChatGPT, Copilot, and a third surface carrying an estimated-exposure figure, carrying buy type, reported metrics, and a data-source label; a creative and hint layer with one row per context hint group, carrying impression volume, win rate, and downstream quality signals as the conversational equivalent of keyword-level reporting; a quality layer normalizing conversion rate, qualified outcome rate, and post-click engagement into a single cost-per-qualified-outcome figure usable across surfaces; and an attribution layer that lists platform-reported conversions, UTM-tracked conversions, and, wherever holdout tests exist, the incrementality estimate, each one labeled separately so the reader knows which number to trust and in which context to trust it.

Diagram: The Four-Layer Dashboard Structure. Visualizes: Illustrate the four structural layers of the recommended conversational AI campaign dashboard as a stacked architecture diagram.

What the dashboard cannot yet answer honestly

A well-built dashboard of this kind narrows the measurement gap substantially, but several attribution and signal problems remain structurally unsolved as of 2026, and a dashboard that states its own limits gives its reader real insight. The B2B blind spot can't be designed around: paid tiers on ChatGPT stay ad-free, so the users most likely to carry employer-paid enterprise plans sit permanently outside the measurable audience, and no reporting layer, however well built, can recover a segment the platform never exposes. Google AI Overview attribution remains opaque at the platform level, and any figure the dashboard assigns to it is a modeling estimate rather than a measured fact, so that column needs a label that says so and should never be reported as confirmed spend. The conversation gap in attribution gets smaller with UTM tagging and holdout testing, not eliminated by them, and long-cycle purchases where a user researches inside ChatGPT and converts weeks later on a different device will keep being undercounted no matter how carefully the dashboard is built. Perplexity's exit from advertising stands as the clearest evidence that trust dynamics inside AI answers remain a live, unsettled variable. If another major platform follows that path, the surface map underneath this entire dashboard can contract overnight, so the architecture should be built to drop a surface cleanly rather than hardcoded to the surfaces that exist today. This conversational usage data flowing through ChatGPT ads exists nowhere else, and that opportunity is genuine but not yet realized: the dashboard, as it stands, is a measurement instrument, not yet the kind of audience intelligence source that search behavior data eventually became for Google Ads. The practitioner who builds this dashboard now, with its limits stated on the page, is measuring a paid channel with its own data layer while most of the field is still treating the same traffic as an open question about organic visibility.

Sources

  1. Evaluating and Pricing Advertisements in AI-Generated Responses
  2. Token-Level Advertising

More in Measurement & Reporting