AI Traffic counts say when they are partial
API v2 and MCP mark each AI Traffic and Referrals count as measured, a lower bound or unmeasured, matching the app.
AI Traffic and Referrals counts in API v2 and MCP now say how complete they are, the same way the app does. A count from a window we only partly covered is a lower bound, shown in the app as 1,234+. A zero from a partly covered window is unmeasured, not 0.
New fields
Each status is measured, lower_bound or unmeasured.
GET /projects/{projectId}/traffic/summaryanddevtune_get_traffic_summary:totalEventsStatus,botEventsStatus,referralEventsStatus,uniqueSessionsStatus,botSessionsStatusandreferralSessionsStatus, beside each window total.GET /projects/{projectId}/traffic/referralsanddevtune_get_ai_referrals:currentStatusandpreviousStatusonengines.items[].sessions,engines.items[].conversions,engines.totals.sessions,engines.totals.conversions,overview.metrics.humanReferralSessionsandoverview.metrics.humanConversions.
comparisonAvailable stays, and is true only when both statuses are measured. Conversion rates stay null unless both of their counts are measured.
Values that change
Fully covered windows return the same numbers as before.
- A zero from a partly covered window is now
null, with statusunmeasured. This applies to the six traffic summary totals when that count'scoverage.coveredDaysis belowcoverage.windowDaysorcoverageisnull, and to the Referrals engine counts, engine totals and overview counts when their coverage flag for that window is false. - Engine totals keep what was counted.
engines.totalswasnullwhenever any platform's count was missing. It is now the sum of the counts that were recorded, with statuslower_bound, unless every platform is fully measured. It isnullonly when nothing was counted.
If your code treats 0 as "no traffic", check the status first: only a measured zero means none. The API migration guide lists what to change.