From 2a2c125e0f9991baafde0356bd0586190ab98457 Mon Sep 17 00:00:00 2001 From: Akinsola Lawanson <106528085+akinsola-guardian@users.noreply.github.com> Date: Tue, 10 Dec 2024 19:10:40 +0000 Subject: [PATCH 1/6] Add section to guardian.config.page --- @types/window.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/@types/window.d.ts b/@types/window.d.ts index ae4cad9a4..675772a85 100644 --- a/@types/window.d.ts +++ b/@types/window.d.ts @@ -20,6 +20,7 @@ declare global { tests?: ServerSideTests; page?: { isPreview: boolean; + section?: string; }; stage?: string; isDev?: boolean; From 5fd1208bb2474b305924301325780747f460c590 Mon Sep 17 00:00:00 2001 From: Akinsola Lawanson <106528085+akinsola-guardian@users.noreply.github.com> Date: Tue, 10 Dec 2024 19:10:57 +0000 Subject: [PATCH 2/6] Add excludePage to targetingParams --- .../libs/src/consent-management-platform/types/window.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/@guardian/libs/src/consent-management-platform/types/window.d.ts b/libs/@guardian/libs/src/consent-management-platform/types/window.d.ts index 26d1c4d2a..d66c44fcd 100644 --- a/libs/@guardian/libs/src/consent-management-platform/types/window.d.ts +++ b/libs/@guardian/libs/src/consent-management-platform/types/window.d.ts @@ -45,6 +45,7 @@ declare global { gdpr?: { targetingParams?: { framework: ConsentFramework; + excludePage: boolean; }; }; usnat?: { From c6d438167c48ff154e1213ec5cf4896d9339195a Mon Sep 17 00:00:00 2001 From: Akinsola Lawanson <106528085+akinsola-guardian@users.noreply.github.com> Date: Tue, 10 Dec 2024 19:11:27 +0000 Subject: [PATCH 3/6] create and use isExcludedFromCMP func --- .../consent-management-platform/exclusionList.ts | 6 ++++++ .../consent-management-platform/sourcepoint.ts | 15 ++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 libs/@guardian/libs/src/consent-management-platform/exclusionList.ts diff --git a/libs/@guardian/libs/src/consent-management-platform/exclusionList.ts b/libs/@guardian/libs/src/consent-management-platform/exclusionList.ts new file mode 100644 index 000000000..adac13718 --- /dev/null +++ b/libs/@guardian/libs/src/consent-management-platform/exclusionList.ts @@ -0,0 +1,6 @@ +const sectionExclusionList = ['info', 'help', 'community', 'identity']; + +export const isExcludedFromCMP = (pageSection: string): boolean => { + console.log('pageSection', pageSection); + return sectionExclusionList.some((section) => section === pageSection); +}; diff --git a/libs/@guardian/libs/src/consent-management-platform/sourcepoint.ts b/libs/@guardian/libs/src/consent-management-platform/sourcepoint.ts index 2f6a5f4c3..fc16b4ea3 100644 --- a/libs/@guardian/libs/src/consent-management-platform/sourcepoint.ts +++ b/libs/@guardian/libs/src/consent-management-platform/sourcepoint.ts @@ -1,4 +1,5 @@ import { log } from '../logger/logger'; +import { isExcludedFromCMP } from './exclusionList'; import { setCurrentFramework } from './getCurrentFramework'; import { isGuardianDomain } from './lib/domain'; import { mark } from './lib/mark'; @@ -194,11 +195,15 @@ export const init = (framework: ConsentFramework, pubData = {}): void => { switch (framework) { case 'tcfv2': - window._sp_.config.gdpr = { - targetingParams: { - framework, - }, - }; + { + const pageSection = window.guardian?.config?.page?.section as string; + window._sp_.config.gdpr = { + targetingParams: { + framework, + excludePage: isExcludedFromCMP(pageSection), + }, + }; + } break; case 'usnat': window._sp_.config.usnat = { From 5ab35ec7c293d810cb5a06779b057758ebf99e87 Mon Sep 17 00:00:00 2001 From: Akinsola Lawanson <106528085+akinsola-guardian@users.noreply.github.com> Date: Wed, 11 Dec 2024 09:13:59 +0000 Subject: [PATCH 4/6] Add changeset --- .changeset/wise-dancers-travel.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/wise-dancers-travel.md diff --git a/.changeset/wise-dancers-travel.md b/.changeset/wise-dancers-travel.md new file mode 100644 index 000000000..e7cf22023 --- /dev/null +++ b/.changeset/wise-dancers-travel.md @@ -0,0 +1,5 @@ +--- +'@guardian/libs': minor +--- + +Stop showing CMP on info pages From 1b9a5d232ffda220306265fddd098ce9f71604d1 Mon Sep 17 00:00:00 2001 From: Akinsola Lawanson <106528085+akinsola-guardian@users.noreply.github.com> Date: Wed, 11 Dec 2024 09:28:26 +0000 Subject: [PATCH 5/6] Add test for isExcludedFromCMP --- .../exclusionList.test.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 libs/@guardian/libs/src/consent-management-platform/exclusionList.test.js diff --git a/libs/@guardian/libs/src/consent-management-platform/exclusionList.test.js b/libs/@guardian/libs/src/consent-management-platform/exclusionList.test.js new file mode 100644 index 000000000..b37eeeb5f --- /dev/null +++ b/libs/@guardian/libs/src/consent-management-platform/exclusionList.test.js @@ -0,0 +1,15 @@ +import { isExcludedFromCMP } from './exclusionList.ts'; + +describe('isExcludedFromCMP', () => { + test('should return false if empty', () => { + expect(isExcludedFromCMP('')).toBe(false); + }); + + test('should return false if param not in sectionExclusionList', () => { + expect(isExcludedFromCMP('foo')).toBe(false); + }); + + test('should return true if param in sectionExclusionList', () => { + expect(isExcludedFromCMP('info')).toBe(true); + }); +}); From 9c2e7f28e6c62fa7dfd2f3047b0fa3cc0e3e5c58 Mon Sep 17 00:00:00 2001 From: Akinsola Lawanson <106528085+akinsola-guardian@users.noreply.github.com> Date: Wed, 11 Dec 2024 12:59:08 +0000 Subject: [PATCH 6/6] Added excludePage --- .../libs/src/consent-management-platform/sourcepoint.ts | 2 ++ .../libs/src/consent-management-platform/types/window.d.ts | 1 + 2 files changed, 3 insertions(+) diff --git a/libs/@guardian/libs/src/consent-management-platform/sourcepoint.ts b/libs/@guardian/libs/src/consent-management-platform/sourcepoint.ts index fc16b4ea3..a71594dc0 100644 --- a/libs/@guardian/libs/src/consent-management-platform/sourcepoint.ts +++ b/libs/@guardian/libs/src/consent-management-platform/sourcepoint.ts @@ -74,6 +74,7 @@ export const init = (framework: ConsentFramework, pubData = {}): void => { log('cmp', `framework: ${framework}`); log('cmp', `frameworkMessageType: ${frameworkMessageType}`); + const pageSection = window.guardian?.config?.page?.section as string; window._sp_queue = []; /* istanbul ignore next */ @@ -84,6 +85,7 @@ export const init = (framework: ConsentFramework, pubData = {}): void => { propertyHref: getPropertyHref(framework), targetingParams: { framework, + excludePage: isExcludedFromCMP(pageSection), }, pubData: { ...pubData, cmpInitTimeUtc: new Date().getTime() }, diff --git a/libs/@guardian/libs/src/consent-management-platform/types/window.d.ts b/libs/@guardian/libs/src/consent-management-platform/types/window.d.ts index d66c44fcd..dd43b4b6a 100644 --- a/libs/@guardian/libs/src/consent-management-platform/types/window.d.ts +++ b/libs/@guardian/libs/src/consent-management-platform/types/window.d.ts @@ -36,6 +36,7 @@ declare global { propertyId?: number; targetingParams: { framework: ConsentFramework; + excludePage: boolean; }; ccpa?: { targetingParams?: {