I want to run a Report in Shopify showing the First Attribution per order number with dollar value of each sale. Currently I am manually going through each order and finding out where the customer first came from. Normal path is that they found us on Google Ads & then came back direct and purchased. Then in the Sales attributed to Marketing and a couple other reports it is just showing these return visitors as direct purchasers. Has anyone created a report based on first contact attribution. Does anyone know if the first contact attribution tag has a time span eg. expires after 30 days etc
Topic summary
A user needs to track first-touch attribution at the order level with sales values, instead of manually checking each order. Currently, their reports show returning customers as “direct” rather than crediting the original source (e.g., Google Ads).
Solutions offered:
-
Built-in Shopify report: “Sales by first marketing channel” (Advanced/Plus plans) aggregates by channel but doesn’t break down individual orders.
-
GraphQL Admin API: Pull order-level data including
firstMarketingAttribution(source, medium, campaign, timestamp) andtotalPriceSet. Can be queried via GraphiQL or custom integration and exported to CSV. -
Third-party apps: Tools like EZ Exporter, Data Export, or Report Pundit can extract first-attribution fields and generate scheduled reports. Report Pundit specifically offers filtering by days-to-purchase and automated daily emails.
Important limitation: Shopify’s first-touch cookie expires after 30 days. Visitors returning after this window are treated as new first touches. Extending the lookback window requires Google Analytics or a dedicated attribution platform.
Hello @bigsafety
- First, if you’re on Advanced Shopify or Plus, there’s a built-in report under Analytics → Reports called “Sales by first marketing channel.” You can’t break it down by order number there, only by channel aggregates.
- If you need the order-level detail—order name, dollar value, and that order’s first contact—you can pull it via the GraphQL Admin API. Every Order node exposes a firstMarketingAttribution object alongside its price. For example:
{
orders(first: 50) {
edges {
node {
name
totalPriceSet {
shopMoney { amount, currencyCode }
}
firstMarketingAttribution {
source
medium
campaign
timestamp
}
}
}
}
}
- That returns each order’s ID, total sale amount, and exactly how that customer first found you. You can run this in the Shopify GraphiQL explorer or your own integration and export it to CSV.
If you don’t want to code, apps like EZ Exporter, Data Export, or Report Pundit can grab those same fields (first_marketing_attribution.source, etc.) from Shopify’s order object and build you a scheduled report.
One more thing: the “first touch” cookie Shopify sets by default has a 30-day lifespan. If a customer clicks your ad, leaves, and comes back after 30 days, Shopify treats that return as a fresh first touch. If you need a longer window you’ll have to pair with Google Analytics or a dedicated attribution platform that lets you extend that lookback.
@bigsafety , We at Report Pundit can meet your requirement for the sales report by adding the visitors’ first and last source, along with the number of days it takes to make an order. Then, we can filter the report with a 1-day duration and display it as a first-click attribution sales report.
Once you set up this report, it will automatically pull the data and email you every day. You can also customize the schedule.