Last verified: September 11, 2026
What You Can Now Do
Context Memo now pulls campaign status directly from OpenAI on every sync, so what you see in the dashboard reflects what's actually serving. Paused campaigns read as paused. Reactivated ones read as active. Alongside that, a new Landed column puts destination-side arrivals in the same row as the platform's click counts, so you can compare what OpenAI reported with what reached your property. The task this changes: you stop diagnosing creative performance on campaigns that weren't running, and you stop treating platform-reported clicks as arrivals.
Where It Is in Context Memo
Both changes live in the OpenAI Ads area of the reporting dashboard, on the campaign list. Status is a synced field now, not an import-time snapshot, and Landed appears as a column next to the platform-reported click metrics for each campaign row.
How to Use It
- Open the OpenAI Ads campaign list. Status values now reflect the last successful sync rather than the state at import, so scan the column for campaigns whose status differs from what you expected.
- Sort or scan by the Landed column against reported clicks. Each row gives you a pair of numbers from two different measurement points: the platform's side and yours.
- Pick the campaigns with the widest gap between reported clicks and landed sessions. That delta is your diagnostic queue, not a rounding error.
- Work the gap causes in order: bot filtering, redirect loss, blocked tracking, slow destination pages, prefetching. Each one leaves a different signature in your own server and analytics logs, and each one is fixable on your side.
- Before you act on a spend anomaly, confirm status first. A flat spend line on a campaign that reads active but was paused is a scheduling question, not a creative question.
- Re-check the list after the next sync. Because status now updates on every pull, a campaign you paused or reactivated should reflect that change without a re-import.
Why We Built It
The complaint we heard was about decisions made against data that looked fine. A campaign paused on a Friday afternoon still read "active" on Monday morning. Spend appeared flat, so the conclusion was that the creative had stalled, and the next move was a rewrite. The campaign simply wasn't serving. The reverse error cost more: a reactivated campaign still displaying as paused gets skipped in the weekly review while it spends.
There was a second, quieter problem. Integration jobs that pull from an evolving ads API break in one specific way. The API returns a status value or a field shape the importer didn't expect, the job throws, and the whole batch fails. Not one campaign. All of them. The dashboard then serves yesterday's numbers, or last week's, and nobody notices, because a stale dashboard looks exactly like a fresh one. The sync now tolerates unfamiliar status values and field shapes instead of failing the batch, which means the numbers on screen have a known age.
The Landed column exists because ad platforms report impressions, clicks, and spend from their own side of the transaction. Those are the platform's numbers, measured by the platform, inside the platform's attribution window. Landed sessions are measured on your property. The gap between the two is diagnosable once you can see it in one row, and invisible when the two figures live in separate tools.
What It Does Not Do Yet
The Landed column reports the delta. It does not attribute the delta to a cause. Separating bot filtering from redirect loss from prefetching still means checking your own server logs and analytics configuration against the campaign's destination URL. We surface the signal and the row it belongs to; the root-cause work stays manual for now.
Status sync also depends on what OpenAI exposes through the API. If a state transition isn't represented in the payload, we can't display it, and the column will show the last value the API returned rather than inferring one.
One more thing worth flagging for teams building out reporting: paid placements inside AI assistants sit adjacent to the organic AI visibility you're already tracking in Context Memo, but they're measured separately. Citation share and landed ad sessions answer different questions. A campaign that drives arrivals tells you nothing about whether the model cites you when nobody is paying, and citation volume tells you nothing about paid reach. Read the two side by side rather than rolling them into a single number.