Rydell · Not built yet

How the numbers would arrive later

Nothing here sends email. No vendor note, no digest, and no message to Ben or Morgan is created or sent from this page. Josh sends those himself when he wants to.

Back to campaign results

  1. What can feed itself

    A later pass can check Meta, Google Ads, YouTube, and GA4 for a real export, and ask what AET can deliver on a schedule. Radio and the other vendors are more likely to stay on emailed schedules and affidavits than on a live feed.
  2. Questions for vendors

    Notes for Josh to send when he chooses. Not drafted and not sent from here.
    • What the schedule and the affidavit look like, and how often they arrive.
    • Whether each station, daypart, and day is listed.
    • Whether reach is measured or projected, and the method behind it.
  3. A mailbox that files the reports

    Later, a mail worker or a Zoho check could read vendor files and file them. That is a design note only. This build does not connect to a mailbox and does not send mail.
  4. Expected cadence

    Each source would have an expected rhythm. The dashboard would show “no data since” on the row when that rhythm slips. That flag is not built yet, and it would stay on the page rather than going out as email.
  5. Booked versus aired

    Compare the order with the affidavit and show only the exceptions, such as three spots booked and two aired. Spot counts themselves stay unmarked. This check is not built yet.
  6. Meta and Google, when someone signs in mid-flight

    Not built. No Worker yet. The page would read one file, and that file would be marked Sample until a read-only pull replaces it.
    • Meta Insights: one call for the whole flight (do not add daily reach together), then a separate call for the single day and a separate call for the last 7 days. Impressions, reach, and frequency. A frequency breakdown is in Meta’s docs and is not confirmed for these ads. Insights does not work on a sandbox where ads do not serve.
    • Google Ads video: unique users and average impression frequency for up to 92 days, and counts of people reached 2 through 10 or more times for up to 31 days. Reach can be suppressed. The definition changed on June 2, 2026. Test accounts return empty serving numbers.
    • Setup, done by Josh or Morgan: read-only access to the ad accounts, a Meta app with Marketing API access, and a Google developer token.
    • The file shape the page would read, one object per ad and medium:
    {
      "campaign": "Chevy Silverado APR Offer",
      "medium": "Meta - Static",
      "sample": true,
      "asOf": "2026-09-28",
      "flight": {"imp": 0, "reach": 0, "frequency": 0},
      "day": {"date": "2026-09-28", "imp": 0, "reach": 0, "frequency": 0},
      "window7": {"end": "2026-09-28", "imp": 0, "reach": 0, "frequency": 0}
    }

    Radio spots and AET daily impressions already come from the schedule file. They are not Sample. Meta and YouTube stay without a depth number until a file like this exists. Nothing here fetches an account or sends a message.

  7. Files instead of numbers buried in the page

    The snapshot already keeps a lifetime record per ad (medium runs, source, as-of date, and any daily series). A later step can load that from files instead of from the script in the page.

Households that own a given make are a separate question for Ben and Morgan. The mail row stays breadth-only until that answer exists. This page does not ask them.