Skip to content

Commit 0a79fba

Browse files
committed
Do not set the previous session ID reference in cookies if anonymous tracking is enabled (close #1268)
PR #1274
1 parent 53b363b commit 0a79fba

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@snowplow/browser-tracker-core",
5+
"comment": "Do not set the previous session ID reference in cookies if anonymous tracking is enabled (#1268)",
6+
"type": "none"
7+
}
8+
],
9+
"packageName": "@snowplow/browser-tracker-core"
10+
}

libraries/browser-tracker-core/src/tracker/id_cookie.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,14 @@ export function incrementEventIndexInIdCookie(idCookie: ParsedIdCookie) {
256256
* @param idCookie Parsed cookie
257257
* @returns String cookie value
258258
*/
259-
export function serializeIdCookie(idCookie: ParsedIdCookie) {
260-
idCookie.shift();
261-
return idCookie.join('.');
259+
export function serializeIdCookie(idCookie: ParsedIdCookie, configAnonymousTracking: boolean) {
260+
const anonymizedIdCookie: (string | number | undefined)[] = [...idCookie];
261+
if (configAnonymousTracking) {
262+
anonymizedIdCookie[domainUserIdIndex] = '';
263+
anonymizedIdCookie[previousSessionIdIndex] = '';
264+
}
265+
anonymizedIdCookie.shift();
266+
return anonymizedIdCookie.join('.');
262267
}
263268

264269
/**

libraries/browser-tracker-core/src/tracker/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -588,7 +588,7 @@ export function Tracker(
588588
*/
589589
function setDomainUserIdCookie(idCookie: ParsedIdCookie) {
590590
const cookieName = getSnowplowCookieName('id');
591-
const cookieValue = serializeIdCookie(idCookie);
591+
const cookieValue = serializeIdCookie(idCookie, configAnonymousTracking);
592592
return persistValue(cookieName, cookieValue, configVisitorCookieTimeout);
593593
}
594594

libraries/browser-tracker-core/test/id_cookie.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,12 @@ describe('incrementEventIndexInIdCookie', () => {
262262
describe('serializeIdCookie', () => {
263263
it("Doesn't change the original cookie", () => {
264264
let cookie = `def.1653632272.10.1653632282.1653632262.ses.previous.fid.1653632252.9`;
265-
expect(serializeIdCookie(parseIdCookie(cookie, '', '', 0))).toBe(cookie);
265+
expect(serializeIdCookie(parseIdCookie(cookie, '', '', 0), false)).toBe(cookie);
266+
});
267+
268+
it("Doesn't include domain user ID and previous session ID in case of anonymous tracking", () => {
269+
let idCookie = parseIdCookie('def.1653632272.10.1653632282.1653632262.ses.previous.fid.1653632252.9', '', '', 0);
270+
expect(serializeIdCookie(idCookie, true)).toBe('.1653632272.10.1653632282.1653632262.ses..fid.1653632252.9');
266271
});
267272
});
268273

0 commit comments

Comments
 (0)