Skip to main content
Lists the brand’s posted content (anything generated in Citable with a posted_url) with GA4 traffic per page: sessions, pageViews and users (GA4 “Users”, activeUsers) over the trailing window. trafficWindow gives the exact dates, in the GA4 property’s time zone, matching GA4’s own “Last N days” range. A number is only ever a GA4 measurement. Each item has a trafficStatus:
  • “joined”: read from GA4. 0 means GA4 recorded nothing for that page in the window.
  • “not_on_site”: posted on another site (e.g. LinkedIn), which the brand’s GA4 cannot see. Traffic is null: unknown, not zero.
  • “not_joined”: GA4 was not read (no connection, or the read failed; the note says which). Traffic is null. Never report a null as 0. The top-level trafficStatus is “joined” when GA4 was read. totals are de-duplicated by GA4 across the pages (not the sum of the rows) and are null when nothing was measured. hasGaConnection says whether GA4 is connected; without it the note points to /connectors.
Use this when the user asks:
  • “Which of my blogs is actually driving traffic?”
  • “What content has worked in the last 30 days?”
  • “How many sessions did the posts we published get?”
Skip when the user wants AI visibility (use get_brand_visibility) or the to-do list (use get_geo_priorities). Response shape: { windowDays, items: [{ contentId, title, platform, postedUrl, postedAt, pagePath, sessions, pageViews, users, trafficStatus }], totals: { totalContent, sessionsAttributed, pageViewsAttributed, usersAttributed }, hasGaConnection, trafficStatus, trafficWindow: { startDate, endDate, timeZone } | null, note? }. Example: calling with { windowDays: 30, limit: 10 } returns the 10 most recently posted URLs with their GA4 traffic over GA4’s last 30 days.

Inputs