Matching offline conversions in GA4 after 72 hours

This case study covers a GA4 Measurement Protocol scenario where a user starts the journey online, reserves a product, and completes the purchase offline several days later.

The main challenge was to send the offline purchase back to GA4 and still keep useful attribution, even when the original GA4 session was older than 72 hours.

The challenge

The ecommerce flow allowed users to reserve a product online and then pick it up in person. For example, a user could reserve an item on Monday and complete the purchase on Friday.

The problem is that GA4 has a 72-hour limitation around the session ID when submitting events that start online and finish offline. After that window, the purchase can no longer be connected to the original online session in the same way.

The business question was simple: how can an offline purchase be sent to GA4 through Measurement Protocol while still keeping the correct user and source / medium context?

What I investigated

  • GA4 Measurement Protocol purchase events
  • How the session ID behaves after the 72-hour window
  • Client ID and user ID availability from the CRM
  • Source, medium and campaign values stored with the user journey
  • GA4 reporting behavior for online-to-offline purchases
  • BigQuery validation for event parameters and attribution fields

For the implementation to work correctly, the most important values to store were session ID, client ID, user ID, source / medium and campaign.

Important parameters for GA4 Measurement Protocol offline conversions
Important parameters to store before sending offline conversions to GA4.

The solution

I mapped three implementation options, depending on when the offline purchase is sent and which attribution values are available.

Option 1: Send the purchase within 72 hours

The first option is to send the purchase through Measurement Protocol while the original session ID can still be used. This is the cleanest option when the offline conversion happens within the available time window.

Measurement Protocol request and GA4 result within 72 hours
Option 1: sending the purchase event within the 72-hour window.

Option 2: Send the purchase after 72 hours with source, medium and campaign

The second option is used when the purchase happens after the 72-hour window. In this case, the purchase event can include the same client ID together with source, medium and campaign values collected from the original journey.

Measurement Protocol purchase after 72 hours with source medium and campaign parameters
Option 2: sending the purchase event with source, medium and campaign values.

Option 3: Send a campaign details event before the purchase

The third option is to send an additional Measurement Protocol event before the purchase. This event carries campaign details such as source, medium and campaign, and helps create a clearer attribution context before the purchase event is sent.

Campaign details event sent before offline purchase event
Option 3: sending a campaign details event before the purchase event.

Validation

Each option was validated in GA4 reporting and BigQuery. GA4 was used to confirm whether the purchase appeared with the expected source / medium and campaign values, while BigQuery was used to inspect the event parameters and confirm that the values were collected as expected.

BigQuery validation for Measurement Protocol offline conversion parameters
BigQuery validation for the offline conversion and attribution parameters.

Result

The project created a clear implementation path for matching offline conversions back to GA4 when the customer journey starts online and finishes offline.

The solution clarified when to rely on the original session ID, when to pass source / medium and campaign values directly, and when to send an additional campaign details event before the purchase.

This gave the business a more reliable way to evaluate offline revenue in GA4 and connect purchase activity back to the original digital journey.

← Back to case studies