Cross-platform competitive intelligence for teams competing in many markets at once. It collects LinkedIn, Meta and Google ads from the public transparency libraries, labels every creative and landing page for funnel stage, offer, audience and claim, then reads the strategy per market, per platform and across all three.
At PingPong we competed with enterprises running paid programs in dozens of countries at once. For a performance marketer, knowing what those companies are actually doing is not optional. It sets your positioning, your budget split, and the markets you can realistically win.
The information was public and still unusable. A single competitor had hundreds of live creatives across LinkedIn, Meta and Google, in market after market. Opening an ad library gives you a scroll of cards with no country cut, no funnel read, and no way to see how the three platforms divide the work between them. I read forty cards by hand once and stopped, because forty cards out of several hundred is an anecdote.
Two views were missing and both mattered: what a competitor runs in one country, and how their channels coordinate across all of them.
LinkedIn, Meta and Google each publish their own, in their own format, with no shared competitor record between them.
3 tabs, no exportOne creative at a time, in the order the library feels like showing them. No country cut, no funnel read, no way to sort by anything that matters.
~40 read by handMessage, offer, destination and market, keyed in by hand, with the categories invented differently every time somebody new does it.
an afternoonA single competitor was running several hundred live creatives. Any read off the fraction you managed to log is a guess wearing a spreadsheet.
no defensible answerThree options were on the table before I built anything. Each one answered a different question well and the same question badly.
Broad creative capture with format breakdowns and spend estimates, packaged for an enterprise buyer.
Priced for a team that already has a research function, uneven coverage outside the US, and it reports format rather than intent. Knowing a rival runs video on Meta is not knowing that Meta is carrying their conversion load.
RejectedThe source of truth, free, current, and legitimate to read. Every live creative a competitor is running.
Built for disclosure rather than analysis. One card at a time, no country cut, no funnel read, and nothing that survives being closed.
Kept as inputA sharp read on any single creative, instantly, with no setup and no cost worth counting.
No memory of the other three hundred. It answers what one card says, and the question was what the set does.
RejectedAll three failed in the same direction. They read creatives one at a time, and strategy only exists in the aggregate.
The idea came from Snorkel and programmatic data labeling. If you can label a corpus cheaply and consistently, the labels themselves become the dataset you reason over. An ad library is a corpus nobody had labeled.
So the pipeline works bottom up: a small model answers one narrow question at a time about one ad, and the summary of a competitor is assembled from those answers rather than asked for directly. Everything the tool claims at the top is traceable to labels at the bottom.
Each creative and its landing page go to DeepSeek: funnel stage, offer type, audience, claim, proof used. Cheap enough to run on the whole set rather than a sample.
Labels roll up per placement and per country, which is where a real pattern first shows: the same brand runs a different funnel in Germany than in Singapore.
With clean labels underneath, a stronger model reads one platform at a time and states the role it plays, backed by counts instead of impressions.
The top layer compares the three and reports how they divide the funnel, what repeats everywhere, and where the gaps are.
Sources are the platforms' own transparency libraries, which exist so that anyone can inspect what is running. Nothing private is touched, and no spend is estimated.
Cost is what decides whether you label the whole corpus or a sample, and a sample is what makes competitive research wrong. Labeling runs on DeepSeek at a price that lets every creative through. Only the synthesis layers, where reasoning actually pays, run on a frontier model.
Each platform carries a quality gate, because coverage differs by source and a confident report over thin data is worse than no report. A workspace shows what was collected, what was labeled, and what is still short, so the analysis stays honest about its own evidence.
Share of each platform's placements by funnel stage, offer and proof, with a marker on any 25-point divergence so the split is visible without reading numbers.
The audience each platform is written for, which is usually where the strategy is most obvious and least stated.
The recurring claims, ranked by how often they repeat. Repetition is the tell for what a competitor believes is working.
Destination and offer: product page, report, trial, signup. Where each platform is asked to close and where it is only asked to warm.
A worked example on Stripe: conversion placements sit at 5% on LinkedIn against 37% on Google, and awareness inverts, at 43% on LinkedIn against 3% on Google. That single row is the channel strategy, and it took a scroll of the ad library to be invisible.
The workspace is arranged so the strategy layer never starts from a blank prompt. Context grounds the labels, labels feed the pattern read, the pattern read feeds the response, and a quality check sits at the end to say how much of it the evidence actually carries.
Every layer stays open for inspection. If a claim in the strategy report looks wrong, you can walk back down through the pattern that produced it to the individual creatives it was counted from, and read those in their original form.
Company, category, products, buyers, markets and the competitive frame, written down before any ad is classified.
Public advertising records with creative, copy, active dates, markets, CTAs and destinations, searchable and still linked to the original artifact.
Distribution across theme, persona, pain, proof, offer, CTA, landing intent and funnel stage. This is where concentration becomes visible.
The dominant play, funnel bias, proof system, weak spot and the response options worth testing against them.
Missing offer signals, thin landing context and low-confidence classifications, surfaced before anyone trusts the strategy.
Holding the layers together is a shared taxonomy, so every ad becomes a comparable record rather than a paragraph of prose: market (persona, industry, geography, pain point), message (theme, value promise, pillar, campaign topic), journey (funnel stage, offer type, CTA, landing intent), proof (quantified ROI, customer story, benchmark data, product detail) and creative (format, hook, visual system, destination). Five groups, twenty fields, filled the same way on every ad from every platform.
The tool is organised around the decision, then the evidence that decision needs. Four workflows cover most of what a campaign team asks a competitor set for.
Map the messages already occupying the category, read the offer and funnel structure behind them, then choose whether to challenge a crowded belief or enter a neglected one. Output: territory, counter-position, proof requirement, first hypothesis.
Baseline a competitor, refresh the evidence set, and review the delta. A refresh matters when audience, message, offer, proof or funnel behaviour moved, which is a much narrower alert than "they posted new creative".
Pair format with campaign intent, name the category's proof conventions, then set the test boundary: what should feel familiar enough to read, and what has to be distinctive enough to matter.
Advertising shows the positions a competitor is actively paying to put in front of the market. Measure the repeated beliefs, audit the proof under each, and find the claims with heavy competition and weak substantiation.
The report is built to be read by six different functions without being rewritten for any of them, which is the reason the taxonomy is shared rather than per-team. An analyst verifies source quality, paid media reads funnel and offer patterns, demand gen picks the territory, product marketing sharpens the message hierarchy, creative turns patterns into test hypotheses, and leadership reads the category movement. Each takes a different decision out of one evidence base.
Public advertising reveals campaign patterns. It says nothing about account economics or internal intent, and a tool that blurs the two is worse than no tool. So the report separates its three tiers on the page, and the quality gate refuses to publish a confident read over thin coverage.
Every competitor now has one workspace holding all three platforms, their labeled creatives, and the strategy read at each level. Answering "what is this company doing in this market" takes a minute, and the answer cites the ads it came from.
What that buys for go-to-market is a positioning decision made against evidence: which claims are already crowded, which funnel stage a rival has left thin, and which market they have not bothered to enter properly yet.
Meta Ad LibraryPublic source for Meta creative.
Google Ads TransparencyPublic source for search and display evidence.
ResendReport-ready and access notifications.
The split is a cost decision. Labeling every ad on a frontier model would have priced out the whole-corpus pass, and a sampled pass is what makes competitive research wrong.
Nine systems shipped, compliance, reporting, intelligence, content.