Attributed revenue, orders, average order value and share per answer for a "How did you hear about us?" style question, bucketed by day, week or month (weeks start Monday), with the same figures for the previous window of equal length so change can be shown. Also returns a cross-tab of the answers against one field recorded on the responses (groupBy): the Shopify last-click source by default, or sourceType, landingPage, referrerUrl and shopify_order_discount_codes from the order, or the fields the on-site embed reads off the arrival URL: utm_source, utm_medium, utm_campaign, utm_content, utm_term, utm_source_platform, utm_creative_format, utm_marketing_tactic, original-referrer, landing-page, campaign_name, adset_name, ad_name, placement, site_source_name, gad_source. Two more fields are not traffic fields at all: attribution_channel and attribution_source are read from the customer's own answer to the survey's attribution question, write-ins and follow-up questions included, and written to the response within minutes of the submission. attribution_channel is one of a fixed vocabulary (podcast, tiktok, influencer, word_of_mouth, search, other, ...) and attribution_source is the normalized name the answer gave, when it gave one ("The Daily", "@somehandle", "Wirecutter"). For these two, (none) means the response had no answer to an attribution question (or named no source), not unattributed traffic. Common spellings of a channel are folded into one row (raw lists what was merged); (none) is the bucket of responses without the field, which for source fields is the unattributed share. Revenue is the order total credited to each selected answer in the shop's presentment currency, so multi-select questions can exceed store revenue; aov divides by answers that carry an order value. Synthetic research responses are excluded. Defaults to a trailing 90-day window. presentations is how many customers the survey was shown to in the window and responseRate the question's responses over it. When the window can be projected honestly (projectionBlocker is null: views recorded, at least 30 responses, a answer rate of 5% or more, and no more answers than views), every byAnswer and bySource row carries projected (count and revenue lifted from those who answered to everyone surveyed, at the responders' proportions and AOV) and totals.projected sums them; otherwise projected is null and a note explains why. When grouping the attribution question itself by attribution_channel, answers from before the channel was recorded are given the channel of the option chosen, exactly as it would have been stored; filledAtRead counts them and unreadWriteIns counts the earlier write-ins that remain in (none). bySource holds the limit (50) most frequent values; truncated is true when there were more, in which case share and revenueShare on those rows are of the rows returned, not of all responses, and a note says so.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
403API access requires the Premium plan or higher
422slideId is required, or the date range is inverted
