Issue Identified:
An app tracking Google Shopping Ads performance across 1,000+ Shopify stores began experiencing null CustomerJourney data starting November 1, 2023. Testing confirmed the issue affects some stores consistently while others continue functioning normally, even when orders include proper UTM tracking parameters.
Root Cause:
Shopify released a GDPR update in November that changed data availability. CustomerJourney data now returns null unless:
The store has an up-to-date Shopify theme with integrated GDPR cookie consent
The customer actively agrees to tracking consent before placing an order
Current Limitations:
The API provides no way to distinguish between orders with no UTM tracking versus orders where customers declined cookie consent—both return null
Shopify Support confirmed no alternative API options exist to check consent status
Workaround:
Merchants can set Customer privacy to “Collect before consent” in store preferences (https://admin.shopify.com/store/online_store/preferences), though this option is expected to be removed entirely in the near future, making “Collect after consent” the permanent default.
Status: Resolved via Support Ticket #43440934. CustomerJourney data can no longer be relied upon for accurate tracking going forward.
Summarized with AI on November 13.
AI used: claude-sonnet-4-5-20250929.
Since the beginning of November 2023, we have noticed a number of stores now return “null” for the CustomerJourney data related to their orders.
The Shopify API continues to return correct CustomerJourney data for some stores, however many stopped from 1st November. We have tested across a number of stores placing real orders with utm_ tracking querystrings added (example: ?utm_campaign=orderlegend&utm_source=testUTMTracking).
All tests were down in clean browsers (no existing Shopify cookies), in a standard setup of our UAT environment that we know previously successfully tracks utm data. In this environment, some stores consistently function as expected (tracking the utm data correctly in the order CustomerJourney), however others consistently return “null”.
We are aware the CustomerJourney is not populated real-time when the order is placed. Delayed API calls to request CustomerJourney data always return “null” for orders we know had utm_ tracking. We tested both direct API calls and request bulk job data and both have the same result.
Is there any configuration, or reason why this data would not be returned for some stores?
Example GQL order query to return Customer Journey data, using API version 2023-04:
How long is the interval between the order being completed and when you are querying for CustomerJourney? When some stores are returning null, is it for all orders on that store or only some orders?
How long is the interval between the order being completed and when you are querying for CustomerJourney?
We have tested from 5 mins after the order is placed, and retried again at various times for the next +48 hours. From previous documentation I understood the CustomerJourney data can take up to 48 hours to populate.
When some stores are returning null, is it for all orders on that store or only some orders?
From our testing, after 1 November some stores return “null” for all orders.
Let me know if I can provide you with any further data.
I’m not seeing other reports of the same issue on other stores - you may need to contact support directly with examples of stores where this is happening so that our API support team can dig into the actual API calls and headers to see what might be happening here.
Posting this for anyone who has the same issue. The reason for this was related to a GDPR update released by Shopify in November which changed the data which is available.
Unless the store has the correct GDPR plugin/cookie-acceptance set up, and the customer has agreed to this, the CustomerJourney defaults to “null”. There is currently no way to determine if an order has no utm tracking, or there was utm data but the customer did not click the cookie consent before placing the order. In both these scenarios the API only returns “null” and Shopify Support has confirmed there is no other option available in the API to check if the customer agreed/disagreed to tracking consent.
There is an option for the Merchant to disable this behaviour by the Merchant by setting the Customer privacy option to “Collect before consent” in: https://admin.shopify.com/store/<shopify_store>/online_store/preferences
However I believe this option is defaulted to “Collect after consent” since the update (and on new stores), and I understand from Shopify Support the ability to disable this functionality is going to be removed entirely in the near future so that “Collect after consent” will always be enabled.
In Summary, the CustomerJourney data returned by the API cannot be relied on to be accurate from this time onwards. It will only be populated under the following scenario:
The store has an up-to-date Shopify theme that integrates with the GDPR consent option provided by Shopify (many of the stores with our app installed have themes 2-3 years old).
The customer clicks/agrees to tracking:
a) when there is utm data in the URL and
b) before placing an order/putting items in the cart.