Now measuring ads inside ChatGPT — among the first to do it

Upload your ad exports. Get a senior analyst's action plan in minutes.

TrailMap is decision support for paid media — not another dashboard. Bring data from six platforms by file upload or one-click API sync, and get back a prioritized plan: what's wasting spend, what's capped, what to fix first, and how much it's worth.

14-day trial · 3 runs · no credit card required.

TrailMap report overview: KPI tiles, prioritized recommendations with effort and impact ratings, and per-channel commentary.
Every number machine-computed and fidelity-checked. The narrative on top reads like it came from an experienced strategist.
One report across every channel you run
Google Ads· Microsoft Ads· Meta· LinkedIn Ads· TikTok Ads· OpenAI Ads (ChatGPT)
How it works

From raw export to ranked action plan

Three steps, and the same canonical schema whether you upload files or connect an API — so a sync and an upload analyze identically.

1

Connect or upload

Upload the CSV/XLSX exports you already pull, or connect any of the six platforms' official APIs and one-click sync the last 90 days. A generic mapper ingests anything else. Every coercion is recorded in a per-upload issue ledger.

Per-upload issue ledger: every coerced and bounded value listed row by row with its raw value and the reason it was bounded.
2

The deterministic engine computes

A rules-based engine normalizes every source and computes the full battery of diagnostics — impression-share loss, search-term waste, creative fatigue, cross-channel reallocation — and fidelity-checks each number before anything else sees it.

Connections screen: adding a platform connector, with Google Ads, Meta, OpenAI Ads, LinkedIn, TikTok and Microsoft Advertising all syncing into the same canonical schema.
3

The analyst narrative prioritizes

A purpose-built paid-media analyst AI ranks the findings for your business, explains the mechanism behind each like a senior analyst, and writes concrete next actions with effort and impact ratings. It is handed numbers — it never derives them.

Report view with prioritized recommendations, each tagged with an effort and impact rating.
What makes it different

Not a prettier chart — the thinking on top of it

Deterministic math — the AI never invents a number

A rules-based engine computes every metric and fidelity-checks it before the model sees it. The LLM writes judgment and priorities, never arithmetic. If a figure is in the report, a machine calculated and verified it.

Measures ChatGPT ads — a channel most tools can't see yet

TrailMap treats OpenAI Ads as a distinct third channel — its own dashboard tab, alongside search and social — and is among the first analytics products to support it, in the same report as Google and Meta.

White-label, single-file client reports

Every run produces a downloadable HTML report that opens anywhere with no login — agencies email it straight to clients under their own brand. Plus a live interactive dashboard.

Guided profile — judged by your economics

A guided setup asks what a senior reviewer would ask: deal value and close rate for lead gen, margin and returns for ecommerce, follow-up speed, capacity. Each answer sets a real engine threshold (your allowable cost per lead, your breakeven ROAS), so findings reflect your numbers, not generic PPC boilerplate.

Six platforms

Upload or connect — every platform, every tier

Upload the exports you already pull, or connect the platform's API (OAuth or token, encrypted at rest) and one-click sync the last 90 days. Both land in the same schema and analyze identically.

Google Ads
Search
UploadAPI
Microsoft Ads
Search
UploadAPI
Meta
Social · Facebook / Instagram
UploadAPI
LinkedIn Ads
Social
UploadAPI
TikTok Ads
Social
UploadAPI
OpenAI Ads
Chat · ads inside ChatGPT
UploadAPI
SA360
Search · cross-engine (enterprise)
UploadAPI Beta
DV360
Display · programmatic (enterprise)
UploadAPI Beta

SA360 (Search Ads 360) and DV360 (Display & Video 360) are newer, enterprise-oriented connectors on Growth and Agency — cross-engine paid search and TrailMap's first programmatic display/video channel, respectively. They work the same way as the six above and are validated against live accounts on request rather than broadly production-certified yet.

Built for accounts that break spreadsheets

TrailMap syncs directly from the ad platforms in the background — a 300,000-ad-group account is a normal Tuesday. Connectors pull in bounded pages, absorb the platforms' rate limits instead of dying on them, and an interrupted sync picks up where it left off instead of starting over. And account size is never a line item: you're billed on analysis runs, seats, and client workspaces, not on rows or ad spend.

Cross-check · Beta

GA4 — not a platform, a referee

GA4 (Google Analytics 4) connects read-only on Growth and Agency, but it isn't a ninth platform to analyze — it has no spend and no campaigns of its own. It pulls the conversions GA4's own attribution model has already assigned to each paid channel, so TrailMap can show what a platform claims next to what GA4 credits it: "Meta claims 100 conversions; GA4 attributes 62 to Paid Social." An independent second opinion, never blended into claimed totals. Also in beta — validated against live properties on request.

Early to the channel most tools can't see

You can't be early to a channel you can't measure. TrailMap is among the first analytics products to support ads inside ChatGPT — daily spend, impressions, clicks, and CPM/CPC/CTR trends on a dedicated Chat tab, feeding the same cross-channel reallocation view as Google and Meta. Spend and traffic come through out of the box; once you've set up OpenAI's conversion measurement, conversions sync too, and chat gets a real CPA next to your search and social numbers. One honest bound: OpenAI reports conversion counts without revenue, so there's no chat ROAS.

The analysis engine

12+ finding families, computed on every run

The deterministic engine runs across all six platforms and three channels — search, social, and chat — surfacing not just what happened, but which findings matter and what they're worth. The DV360 enterprise connector (beta) adds a fourth channel, display — CPM outliers, viewability, frequency saturation, and video-completion rate. The GA4 cross-check (beta) isn't a channel of its own — it's an optional overlay that compares any channel's claimed conversions against what GA4 attributes.

Impression-share loss
Budget vs. rank decomposition — opposite prescriptions, separated.
Search-term waste
Spend on irrelevant queries, isolated by conversion.
Negative-keyword themes
Wasteful terms mined into ready-to-apply clusters.
Creative fatigue
Rising frequency alongside falling CTR, flagged early.
Creative concentration
Over-reliance on one asset — a fragility risk.
Budget fragmentation
Ad sets spread too thin to clear the learning threshold.
Budget-limited winners
Capped high performers leaving conversions unclaimed.
Anomaly detection
Robust median/MAD z-scores — no single freak day poisons it.
Period-over-period trends
What's moving, and whether cost or conversion drove it.
Cross-channel reallocation
Shift budget toward the channel with better marginal ROI.
Wasted-spend totals
Dollars recoverable now, quantified.
Rank / quality signals
Where position — not budget — is the bottleneck.

Findings interlock: broad-match concentration explains the search-term waste; a fatiguing hero creative explains why one asset sank an ad set; a capped search campaign and a failing social ad set together make the reallocation obvious. Assembling that connective narrative is the judgment task the analyst layer is for.

Analysis you can audit

The AI never invents a number.

Every figure — impression-share loss, wasted spend, ROAS deltas, reallocation amounts — is computed by a deterministic engine and fidelity-checked before the narrative is generated. The model only writes explanation and prioritization around numbers it's handed. Any number in a TrailMap report traces back through the payload to a computation to a cell in your export. If a stakeholder challenges a figure, you can show your work — because there is work to show.

Pre-computed only

The model sees a findings payload of answers, not your raw export. There is nothing for it to add up.

Schema-validated

Output must return ranked findings, explanations, and actions in named fields. Free-form responses are rejected.

Numeric-fidelity check

Every figure in the prose is verified against the payload. A number the engine didn't compute gets the response rejected.

Because the dashboard renders directly from the deterministic findings, the analysis doesn't depend on the model being available — if the LLM is down or disabled, you still get every metric, every finding, every chart. Read the whitepaper →

A downloaded single-file HTML report opened offline: KPI tiles, charts, and prioritized recommendations — every number traceable to the source export.
A single-file HTML report, opened offline with no login — the same renderer as the in-app dashboard. Every figure traces back through the findings payload to a cell in your export.
White-label settings: set brand name, accent color, and logo; the dashboard and exported HTML report carry the tenant's brand.
For agencies & fractional CMOs

Email your client a report that opens anywhere.

Every analysis renders as an interactive dashboard and downloads as a single, self-contained HTML file — no server, no login. It opens in any modern browser, fully offline, with no network fetches. White-labeling flows into both surfaces, so your brand is in front of the client, never ours.

  • One file, offline. The report payload is embedded — email it and it just works, on any machine.
  • Full white-label on Growth and Agency: your logo, your accent color, on the dashboard and the export.
  • One renderer, two surfaces. The in-app view and the standalone export are produced by the same code, so they can never drift.
  • Goals-first client view. One toggle swaps the analyst report for a client-facing view built on your North Star metric, with a computed verdict against the target you set. Moves below your materiality bar stay out of the story.
  • Agency brand palette. Four anchor colors set the report's full color ramp, contrast-checked to WCAG AA before saving, applied in the app, the HTML export, and the PDF.
For teams, agencies & enterprises

Grows from one seat to a whole agency

Invite your team, run every client in its own space, wire it into your stack, and clear a security review — without changing tools.

Teams with real roles

Invite teammates by email and assign owner, admin, analyst, or viewer roles. Seats are 3, 10, or 25 by tier and pool across your whole account — a viewer-only client contact never needs a full seat.

Agency multi-workspace

One subscription runs many isolated client workspaces — each with its own data and its own white-label brand — off a pooled run allowance, with a portfolio view across every client. Up to 3 workspaces on Growth, 25 on Agency.

Public REST API

On Growth and up, trigger runs and pull report payloads with scoped API keys — wire TrailMap into Zapier, a BI tool, or your own dashboard. Programmatic runs draw from the same allowance, not a separate meter.

Enterprise identity & audit

SSO via OIDC — Okta, Azure AD, or Google Workspace — on the Agency tier, plus a tenant-scoped audit log of who did what on every plan. The controls a security team asks for before approving a new tool.

Self-host & data privacy

Run TrailMap in your own environment with a Docker deployment, and keep control of your data with export and full account deletion (GDPR/CCPA). Your data is never pooled and never used to train a model.

Works in your language

Locale packs read Spanish, German, and French Google Ads and Meta exports natively — translated headers and European number formats parsed correctly, so 1.234,56 is never mistaken for a smaller number.

What it finds

Two illustrative examples

The vignettes below are illustrative, not results from a specific customer.

Plumbing company — lead-gen

TrailMap flags $1.9k/quarter in search-term waste — spend on "plumbing salary," "plumbing school," and DIY queries — and bundles them into three ready-to-apply negative-keyword themes. It also surfaces a budget-limited winner: the emergency-repair campaign is capped at 68% impression share on budget, not rank, so every extra dollar there converts. Action plan: add the negatives, shift the recovered spend into the capped winner. CPL framing throughout.

DTC apparel brand — ecommerce

TrailMap detects a fatigued hero creative — the top video's ROAS has slid 34% over six weeks while still absorbing 41% of spend — and identifies a reallocation opportunity: Meta prospecting is over-funded relative to a Google Shopping segment running at 2.3× the ROAS. Action plan: refresh the hero creative, trim its budget share, move spend to the higher-ROAS Shopping segment. ROAS and revenue framing throughout.

Plans

Simple pricing. All six platforms on every tier.

The metered unit is the analysis run — a decision-grade report you act on — not a per-connector charge. Annual billing is two months free.

Starter
$79/mo
$790/yr billed annually — 2 months free

Solo advertiser or in-house marketer.

  • 10 analysis runs / mo
  • 3 team members · 1 workspace
  • All six platforms — upload + API
  • Standard analysis
  • TrailMap-branded exports
  • Audit log
Start free
Agency
$499/mo
$4,990/yr billed annually — 2 months free

Agencies, fractional CMOs & enterprises at scale.

  • 150 analysis runs / mo
  • 25 team members · 25 workspaces
  • All six platforms — upload + API
  • + SA360 & DV360 (enterprise, beta)
  • + GA4 cross-check (beta)
  • Deep analysis
  • Public REST API + full white-label
  • SSO (OIDC) + priority support
Start free

All six platforms — Google, Microsoft, Meta, LinkedIn, TikTok, and OpenAI Ads — are included on every tier, by upload and by API, at no per-source charge. Growth and Agency add two enterprise connectors in beta — SA360 and DV360 — plus, also in beta, the GA4 conversion cross-check: a read-only referee, not a seventh platform. See the full comparison →

FAQ

Questions, answered straight

How do I know the AI isn't making up numbers?

By design, the model never does arithmetic. Every figure — impression-share loss, wasted spend, ROAS deltas, reallocation amounts — is computed by the deterministic engine and fidelity-checked before the narrative is generated. The LLM only writes the explanation and prioritization around numbers it's handed. If a number is in the report, a machine calculated and verified it.

Do I have to connect my ad accounts, or share credentials?

No. You can simply upload the report files you already pull — no account connection required. If you'd rather skip the export step, connecting a platform's official API is optional; those credentials are read-only reporting access, encrypted at rest, and never displayed back or echoed in errors. TrailMap makes no changes to your ad accounts.

Our account is huge. Is there a size limit?

Not one you're likely to hit, and not one that changes by tier. Connectors sync in the background in bounded pages and resume where they left off if a sync is interrupted, so a 300,000-ad-group account connects like any other and analyzes the same on Starter as on Agency. Pricing is runs, seats, and client workspaces — never rows, spend, or connectors. Direct file upload is capped at 100 MB per file on every paid plan (25 MB on the trial); that's the on-ramp for a quick look or a one-off export. Anything ongoing or large goes through a connection.

Why pay for this when Google already gives me free recommendations?

Google's recommendations optimize for Google's objective and score you on adopting them. TrailMap is independent and cross-channel — it decomposes impression-share loss, mines search-term waste into negative-keyword themes, flags creative fatigue, and finds reallocation across all six platforms in one report — and hands you a prioritized action plan with effort/impact ratings, not a scored to-do list that nudges your budget up.

What's the GA4 connector — another platform to analyze?

No — GA4 is deliberately not another platform. It connects read-only (Growth/Agency, beta) and has no spend of its own; it pulls the conversions Google Analytics has already attributed to each paid channel, so you can see what a platform claims next to what GA4 credits it. Think of it as a neutral referee you can add to any analysis, not a channel to configure. GA4 rows are never blended into a platform's claimed totals.

Isn't per-run pricing just a meter running?

It isn't usage-billing; it's a flat monthly subscription with a generous run allowance (10 / 40 / 150). Runs don't cost you per click or per dollar of spend, and you always know your bill in advance. Most Starter users run well under 10 a month; if you consistently need more, that's a signal to move up a tier.

What about data handling and where my data lives?

TrailMap is multi-tenant with per-tenant data isolation — your analysis runs against your data alone, never pooled. Money is stored as integer micros, "not reported" is kept distinct from zero, and bounded values stay bounded, all recorded in a per-upload issue ledger. LLM keys are server-side only, and Agency plans can point TrailMap at a self-hosted, OpenAI-compatible endpoint so prompt content never leaves your infrastructure.

Can my whole team use it? What about agencies with many clients?

Yes. Invite teammates by email with owner / admin / analyst / viewer roles (3, 10, or 25 seats by tier). Agencies run each client in its own isolated, white-labeled workspace — up to 3 on Growth, 25 on Agency — off a pooled run allowance, with a portfolio view across every client. On Growth and up, a public REST API lets you wire it into your own stack; SSO (OIDC) and a self-host option cover enterprise needs.

Can I cancel anytime?

Yes. Start with a 14-day trial — 3 runs, no credit card. Subscriptions are managed through Stripe's customer portal: upgrade, downgrade, or cancel whenever you like. Upgrades apply instantly; downgrades take effect at the end of the billing period.

Analyze your first account free.

14-day trial, 3 runs, no credit card. Convert on the strength of the first report, not a paywall.