The effect of webhooks on the channel distribution of your purchase events in GA4

Tobias Pennings
May 13, 2025

At AdPage, we regularly see that implementing eCommerce backend webhooks not only has a significant effect on the number of purchases measured, but also on the channel distribution of your purchase events in Google Analytics 4. Both effects can be perceived as negative and as positive. Hence, in this article we explain the main aspects of this phenomenon and why a sending webhooks from the backend of your CMS at the time of a new order is crucial for the most reliable data possible within your GA4 property.

What are backend webhooks?

Before we delve deeper into the effects, it's good to take a moment to consider exactly what backend webhooks are. We already explained this in detail in a previous blog article"Using Webhooks for accurate conversion tracking," but a brief reiteration is in order. Backend webhooks are HTTP callbacks that enable real-time communication between different web applications. In simple language, webhooks allow systems to automatically send messages to other systems when certain events occur. In the case of eCommerce tracking, webhooks are set up on your webshop's backend to immediately send all relevant data to your server container when a new order is placed. Where regular tracking depends on scripts running in your visitor's browser (client side), with webhooks the communication takes place directly between CMS and AdPage server container (server side). This makes data collection more reliable because it no longer depends on factors such as browser behavior, cookie blocking or early user abandonment.

The increase in unassigned purchase events

When you implement webhooks, you will see an increase in the number of purchase events in your GA4 reports, and thus also an increase in "unassigned" purchase events. This is a logical consequence of the fact that you can now also record the purchases of visitors who have rejected cookies.

The big advantage of this is that you can display 100% of the number of orders made in GA4, which is hugely valuable for eCommerce dashboarding purposes. It gives you a complete picture of your sales and products purchased, something that is not possible with a tracking setup without backend webhooks (except in the backend of your own CMS system).

The downside is that a purchase event without an identifiable client ID, session ID and session count is considered unassignable (unassigned) by GA4. These events cannot be attributed to a specific channel or campaign. But rest assured that this increase in unassigned events is a positive development, it simply means that you are now collecting data that you were completely missing before. If you have no use for these unassigned purchase events from cookie-rejecting visitors, you can simply filter them out on the sGTM container. In each webhook, the GCS parameter is sent along so that on the sGTM container you can filter out these webhooks.

Why without webhooks you are missing crucial conversion data

The impact of webhooks goes far beyond simply registering cookie refusers. Without backend webhooks, you are guaranteed to miss three essential groups of visitors whose purchases can provide valuable attribution data.

The first group consists of early dropouts. These are visitors who do not return to the thank you page within the browser after paying in a payment app, but immediately close the payment app and do not return to the thank you page in the browser. Their conversion is never recorded in your analytics and marketing platforms, despite the fact that they did purchase. These missed purchase events can be significant, especially if you have a lot of mobile shoppers. With webhooks, these purchases are still recorded correctly because the conversion data is sent directly from your CMS to GA4, regardless of the user's post-payment behavior.

The second group is formed by impatient buyers. These are visitors who close the thank-you page before it has fully loaded and all tracking scripts have been activated. Their purchase also remains unregistered to your analytics and marketing platforms if you try to measure the purchase event client-side. With today's expectations of fast online experiences, and because you receive a confirmation email by default with every purchase, it's not uncommon for users not to wait for a page to fully load. Webhooks capture this group by sending transaction and user data server-side, regardless of how long or how short a user stays on the thank-you page.

The third group consists of browser changers. These are visitors who complete their customer journey in Google Chrome or Facebook's in-app browser, for example, but after payment by the payment app are redirected to the default browser according to the device settings, which is different from the browser they were shopping in. Google Analytics will see this as two different sessions since the visitor's client_id, session_id and session_count will be re-generated, resulting in a complete loss of attribution. Even if you set up webhooks on the thank you page, so not from the backend of your CMS, you're still not going to be able to attribute the purchase events of these visitors.

If the customer journey takes place in Google Chrome but the thank you page is opened in Safari, the purchase will be assigned to a new session from a new user

Missing these conversions not only leads to underestimating your overall conversions, but more importantly to a distorted view of which marketing channels are effective. This can result in wrong budget decisions and missed growth opportunities. Moreover, it can lead to frustration within marketing teams if campaigns that are actually performing well are undervalued because of incomplete data.

More accurate channel distribution

One of the most striking effects of a Server-Side Tagging setup including backend webhooks compared to a setup without these webhooks is the breakdown of purchase events across different channels by Google Analytics 4. Without webhooks, many purchases are wrongly assigned to Direct traffic. At AdPage, we observe weekly that after the implementation of our webhooks, the share of Direct traffic in purchase events decreases significantly, while the share of channels such as Organic Search, Paid Search, Organic Social and Paid Social actually increases.

This phenomenon can be logically explained. Without webhooks, attribution data often gets lost due to cookie loss, session interruptions or browser changes. By default, these conversions are then attributed to Direct traffic, leading to an overrepresentation of this channel in your reports. By using webhooks, these conversions are correctly attributed to the actual sources that generated the purchase.

For marketing teams, this shift in channel attribution is invaluable. You get a much more realistic picture of which marketing initiatives actually contribute to your revenue. This allows you to allocate your marketing budget more efficiently, investing more in channels that have proven results but were previously undervalued in your reports. Moreover, this more accurate attribution helps optimize your marketing strategy over the long term. You can identify patterns in purchase behavior across channels and tailor your content strategy accordingly to achieve maximum impact at each stage of the customer journey.

Purchase channel attribution for backend webhooks implementation (and proper consent processing)

Purchase channel attribution after backend webhooks implementation

Conclusion

Implementing webhooks is not a luxury but a necessity for any eCommerce entrepreneur or marketer who wants to collect reliable conversion data in GA4. Although you will see an increase in unassigned events, this far outweighs the benefits: a complete picture of your sales and a more accurate distribution across marketing channels. Curious about how webhooks can improve your GA4 data? Contact AdPage for a no-obligation consultation.