Skip to content

Commit 79b61ad

Browse files
authored
Merge pull request #2925 from segmentio/ga4-updates
Update GA4 Docs Session ID and Session Number
2 parents b241fd2 + bd8dba1 commit 79b61ad

File tree

1 file changed

+16
-0
lines changed
  • src/connections/destinations/catalog/actions-google-analytics-4

1 file changed

+16
-0
lines changed

src/connections/destinations/catalog/actions-google-analytics-4/index.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,22 @@ The Google Analytics 4 reports only display active users who engage with your si
8181

8282
If you choose to integrate with Google Analytics 4 client-side (using Gtag outside of Segment) _and_ also use Segment's Google Analytics 4 destination to send events through the API, you can track sessions server-side. When using Gtag, [Google generates a `session_id` and `session_number` when a session begins](https://support.google.com/analytics/answer/9191807?hl=en){:target='_blank'}. The `session_id` and `session_number` generated on the client can be passed as Event Parameters to stitch events sent through the API with the same session that was collected client-side.
8383

84+
You can double-check your session_id and session_number with the [Google Site Tag function](https://developers.google.com/tag-platform/gtagjs/reference){:target='_blank'} or by running this script in your JavaScript console and replacing `G-xxxxxxxxxx` with your GA4 measurement ID:
85+
86+
```java
87+
const sessionIdPromise = new Promise(resolve => {
88+
gtag('get', 'G-xxxxxxxxxx', 'session_id', resolve)
89+
});
90+
const sessionNumPromise = new Promise(resolve => {
91+
gtag('get', 'G-xxxxxxxxxx', 'session_number', resolve)
92+
});
93+
94+
Promise.all([sessionIdPromise, sessionNumPromise]).then(function(session_data) {
95+
console.log("session ID: "+session_data[0]);
96+
console.log("session Number: "+session_data[1]);
97+
});
98+
```
99+
84100
> info "Session tracking limitations"
85101
> Session tracking server-side only works if you're also sending data to Google Analytics 4 client-side. This is because the `session_id` must match a value that was previously collected on the client. For events to stitch properly, they must arrive within a 48 hour window of when the client-side events arrived.
86102
>

0 commit comments

Comments
 (0)