Skip to content

Commit

Permalink
Do not set the previous session ID reference in cookies if anonymous …
Browse files Browse the repository at this point in the history
…tracking is enabled (close #1268)

PR #1274
  • Loading branch information
matus-tomlein authored Dec 14, 2023
1 parent 665e5c2 commit a658efb
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"changes": [
{
"packageName": "@snowplow/browser-tracker-core",
"comment": "Do not set the previous session ID reference in cookies if anonymous tracking is enabled (#1268)",
"type": "none"
}
],
"packageName": "@snowplow/browser-tracker-core"
}
11 changes: 8 additions & 3 deletions libraries/browser-tracker-core/src/tracker/id_cookie.ts
Original file line number Diff line number Diff line change
Expand Up @@ -256,9 +256,14 @@ export function incrementEventIndexInIdCookie(idCookie: ParsedIdCookie) {
* @param idCookie Parsed cookie
* @returns String cookie value
*/
export function serializeIdCookie(idCookie: ParsedIdCookie) {
idCookie.shift();
return idCookie.join('.');
export function serializeIdCookie(idCookie: ParsedIdCookie, configAnonymousTracking: boolean) {
const anonymizedIdCookie: (string | number | undefined)[] = [...idCookie];
if (configAnonymousTracking) {
anonymizedIdCookie[domainUserIdIndex] = '';
anonymizedIdCookie[previousSessionIdIndex] = '';
}
anonymizedIdCookie.shift();
return anonymizedIdCookie.join('.');
}

/**
Expand Down
2 changes: 1 addition & 1 deletion libraries/browser-tracker-core/src/tracker/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -588,7 +588,7 @@ export function Tracker(
*/
function setDomainUserIdCookie(idCookie: ParsedIdCookie) {
const cookieName = getSnowplowCookieName('id');
const cookieValue = serializeIdCookie(idCookie);
const cookieValue = serializeIdCookie(idCookie, configAnonymousTracking);
return persistValue(cookieName, cookieValue, configVisitorCookieTimeout);
}

Expand Down
7 changes: 6 additions & 1 deletion libraries/browser-tracker-core/test/id_cookie.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,12 @@ describe('incrementEventIndexInIdCookie', () => {
describe('serializeIdCookie', () => {
it("Doesn't change the original cookie", () => {
let cookie = `def.1653632272.10.1653632282.1653632262.ses.previous.fid.1653632252.9`;
expect(serializeIdCookie(parseIdCookie(cookie, '', '', 0))).toBe(cookie);
expect(serializeIdCookie(parseIdCookie(cookie, '', '', 0), false)).toBe(cookie);
});

it("Doesn't include domain user ID and previous session ID in case of anonymous tracking", () => {
let idCookie = parseIdCookie('def.1653632272.10.1653632282.1653632262.ses.previous.fid.1653632252.9', '', '', 0);
expect(serializeIdCookie(idCookie, true)).toBe('.1653632272.10.1653632282.1653632262.ses..fid.1653632252.9');
});
});

Expand Down

0 comments on commit a658efb

Please sign in to comment.