From cbb9fed6953aa17295090f596e37ff1f6396111d Mon Sep 17 00:00:00 2001 From: Eiman Eltigani Date: Mon, 9 Mar 2026 10:51:24 -0600 Subject: [PATCH 1/7] Fix Google Secure Signals UI detection for client-server and server-side --- .../client-server/server.js | 7 +++--- .../client-server/views/index.html | 25 ++++++++++--------- .../server-side/views/index.html | 18 ++++++------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/web-integrations/google-secure-signals/client-server/server.js b/web-integrations/google-secure-signals/client-server/server.js index 8623964b..ebf31979 100644 --- a/web-integrations/google-secure-signals/client-server/server.js +++ b/web-integrations/google-secure-signals/client-server/server.js @@ -19,6 +19,7 @@ const uidJsSdkName = process.env.UID_JS_SDK_NAME || '__uid2'; // Secure Signals configuration const secureSignalsSdkUrl = process.env.UID_SECURE_SIGNALS_SDK_URL || 'https://cdn.integ.uidapi.com/uid2SecureSignal.js'; +const secureSignalsStorageKey = process.env.UID_SECURE_SIGNALS_STORAGE_KEY || '_GESPSK-uidapi.com'; // UI/Display configuration const identityName = process.env.IDENTITY_NAME; @@ -48,7 +49,7 @@ app.get('/', (req, res) => { uidJsSdkUrl, uidJsSdkName, secureSignalsSdkUrl, - secureSignalsStorageKey: process.env.UID_SECURE_SIGNALS_STORAGE_KEY, + secureSignalsStorageKey, identityName, docsBaseUrl }); @@ -147,7 +148,7 @@ app.post('/login', async (req, res) => { uidJsSdkUrl, uidJsSdkName, secureSignalsSdkUrl, - secureSignalsStorageKey: process.env.UID_SECURE_SIGNALS_STORAGE_KEY, + secureSignalsStorageKey, identityName, docsBaseUrl }); @@ -173,7 +174,7 @@ app.post('/login', async (req, res) => { uidJsSdkUrl, uidJsSdkName, secureSignalsSdkUrl, - secureSignalsStorageKey: process.env.UID_SECURE_SIGNALS_STORAGE_KEY, + secureSignalsStorageKey, identityName, docsBaseUrl }); diff --git a/web-integrations/google-secure-signals/client-server/views/index.html b/web-integrations/google-secure-signals/client-server/views/index.html index 3583adb2..51b6e6bb 100644 --- a/web-integrations/google-secure-signals/client-server/views/index.html +++ b/web-integrations/google-secure-signals/client-server/views/index.html @@ -25,8 +25,10 @@ $("#login_required").html(sdk.isLoginRequired() ? "yes" : "no"); $("#identity_state").html(String(JSON.stringify(payload, null, 2))); - // Update Secure Signals values displayed in the GUI updateSecureSignals(); + if (sdk.getAdvertisingToken()) { + setTimeout(updateSecureSignals, 1000); + } <% if (isOptout) { %> $("#login_form").hide(); @@ -35,7 +37,6 @@ $("#optout_banner").show(); $('#googleAdContainer').hide(); <% } else { %> - // before token generation, show login form if (sdk.isLoginRequired()) { $("#login_form").show(); $("#logout_form").hide(); @@ -43,7 +44,6 @@ $("#optout_banner").hide(); $('#googleAdContainer').hide(); } else { - // Success case - token generated, show logout form $("#login_form").hide(); $("#logout_form").show(); $("#optout_form").hide(); @@ -55,12 +55,14 @@ function updateSecureSignals() { try { - // Read from localStorage const secureSignalsStorageKey = '<%- secureSignalsStorageKey %>'; const secureSignalsStorage = localStorage[secureSignalsStorageKey]; - + const token = sdk.getAdvertisingToken(); + if (token && !secureSignalsStorage) { + location.reload(); + return; + } const secureSignalsStorageJson = secureSignalsStorage && JSON.parse(secureSignalsStorage); - if (secureSignalsStorageJson && secureSignalsStorageJson[1]) { $("#secure_signals_loaded").html("yes"); $("#secure_signals_value").html(JSON.stringify(secureSignalsStorageJson, null, 2)); @@ -83,12 +85,14 @@ $("#logout").click(() => { window.googletag.secureSignalProviders.clearAllCache(); sdk.disconnect(); + localStorage.removeItem('<%- secureSignalsStorageKey %>'); window.location.href = '/'; }); $("#try_another").click(() => { window.googletag.secureSignalProviders.clearAllCache(); sdk.disconnect(); + localStorage.removeItem('<%- secureSignalsStorageKey %>'); window.location.href = '/'; }); @@ -103,16 +107,12 @@ sdk.callbacks.push((eventType, payload) => { if (eventType === 'InitCompleted') { <% if (identity !== null && typeof identity !== 'undefined') { %> - // Server provided an identity, set it if (sdk.isLoginRequired()) { sdk.setIdentity(<%- JSON.stringify(identity) %>); } else { - // Identity already exists, just update GUI updateGuiElements(payload); } <% } else { %> - // No identity from server (including opt-out case) - // SDK will naturally remain in "login required" state updateGuiElements(payload); <% if (isOptout) { %> $("#optout_banner").show(); @@ -160,6 +160,7 @@

<%- identityName %> Integration Status

+

Note: This is a test-only integration environment—it does not collect data or generate production-level tokens.

@@ -237,7 +238,7 @@

Google Secure Signals Status

- + - +
no
@@ -251,7 +252,7 @@

Google Secure Signals Status

undefined
diff --git a/web-integrations/google-secure-signals/server-side/views/index.html b/web-integrations/google-secure-signals/server-side/views/index.html index a9a3e561..db896a06 100644 --- a/web-integrations/google-secure-signals/server-side/views/index.html +++ b/web-integrations/google-secure-signals/server-side/views/index.html @@ -7,24 +7,22 @@ - - - + + + + - - - - -
@@ -331,5 +211,125 @@

What's Happening?

+ + + + + diff --git a/web-integrations/google-secure-signals/server-side/server.js b/web-integrations/google-secure-signals/server-side/server.js index a529f138..acc0631a 100644 --- a/web-integrations/google-secure-signals/server-side/server.js +++ b/web-integrations/google-secure-signals/server-side/server.js @@ -16,7 +16,6 @@ const uidClientSecret = process.env.UID_CLIENT_SECRET; // Secure Signals configuration const secureSignalsSdkUrl = process.env.UID_SECURE_SIGNALS_SDK_URL || 'https://cdn.integ.uidapi.com/uid2SecureSignal.js'; -// Fallback so the template always gets the correct localStorage key (matches what the SDK uses). const secureSignalsStorageKey = process.env.UID_SECURE_SIGNALS_STORAGE_KEY || '_GESPSK-uidapi.com'; // UI/Display configuration diff --git a/web-integrations/google-secure-signals/server-side/views/index.html b/web-integrations/google-secure-signals/server-side/views/index.html index fe6666ee..5e13745d 100644 --- a/web-integrations/google-secure-signals/server-side/views/index.html +++ b/web-integrations/google-secure-signals/server-side/views/index.html @@ -6,68 +6,6 @@ - - - - - - -
@@ -292,5 +230,66 @@

What's Happening?

+ + + + + + From 24a3b6ccd188bbf20d16cf705ba2692dc769f47c Mon Sep 17 00:00:00 2001 From: Eiman Eltigani Date: Mon, 9 Mar 2026 12:30:17 -0600 Subject: [PATCH 4/7] Revert: keep scripts in head --- .../client-server/views/index.html | 241 +++++++++--------- .../server-side/views/index.html | 122 ++++----- 2 files changed, 182 insertions(+), 181 deletions(-) diff --git a/web-integrations/google-secure-signals/client-server/views/index.html b/web-integrations/google-secure-signals/client-server/views/index.html index c2e22f6f..47d7c49b 100644 --- a/web-integrations/google-secure-signals/client-server/views/index.html +++ b/web-integrations/google-secure-signals/client-server/views/index.html @@ -6,6 +6,127 @@ + + + + +
@@ -211,125 +332,5 @@

What's Happening?

- - - - - diff --git a/web-integrations/google-secure-signals/server-side/views/index.html b/web-integrations/google-secure-signals/server-side/views/index.html index 5e13745d..528cc1b3 100644 --- a/web-integrations/google-secure-signals/server-side/views/index.html +++ b/web-integrations/google-secure-signals/server-side/views/index.html @@ -6,6 +6,67 @@ + + + + + +
@@ -230,66 +291,5 @@

What's Happening?

- - - - - - From cc9305feef94253353480a2639d55f3c7509f528 Mon Sep 17 00:00:00 2001 From: Eiman Eltigani Date: Mon, 9 Mar 2026 12:35:33 -0600 Subject: [PATCH 5/7] remove comment from client seerver --- .../google-secure-signals/client-server/views/index.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web-integrations/google-secure-signals/client-server/views/index.html b/web-integrations/google-secure-signals/client-server/views/index.html index 47d7c49b..b1067619 100644 --- a/web-integrations/google-secure-signals/client-server/views/index.html +++ b/web-integrations/google-secure-signals/client-server/views/index.html @@ -6,6 +6,7 @@ + @@ -23,7 +24,6 @@ $("#advertising_token").html(String(sdk.getAdvertisingToken())); $("#login_required").html(sdk.isLoginRequired() ? "yes" : "no"); $("#identity_state").html(String(JSON.stringify(payload, null, 2))); - updateSecureSignals(); // Token is set from the server (or refreshed by the SDK); Secure Signals may write to localStorage after a short delay, so re-check once. if (sdk.getAdvertisingToken()) { @@ -37,6 +37,7 @@ $("#optout_banner").show(); $('#googleAdContainer').hide(); <% } else { %> + // Before token generation, show login form. if (sdk.isLoginRequired()) { $("#login_form").show(); $("#logout_form").hide(); @@ -44,6 +45,7 @@ $("#optout_banner").hide(); $('#googleAdContainer').hide(); } else { + // Success case - token generated, show logout form. $("#login_form").hide(); $("#logout_form").show(); $("#optout_form").hide(); @@ -53,10 +55,12 @@ <% } %> } + // Update Secure Signals values displayed in the GUI. // Update Secure Signals values displayed in the GUI. function updateSecureSignals() { try { const secureSignalsStorageKey = '<%- secureSignalsStorageKey %>'; + // Read from localStorage. const secureSignalsStorage = localStorage[secureSignalsStorageKey]; const token = sdk.getAdvertisingToken(); // Token valid but Secure Signals not yet written; reload so the SDK gets another chance. @@ -64,6 +68,7 @@ location.reload(); return; } + const secureSignalsStorageJson = secureSignalsStorage && JSON.parse(secureSignalsStorage); if (secureSignalsStorageJson && secureSignalsStorageJson[1]) { $("#secure_signals_loaded").html("yes"); From e59ca1c61698f2adbf66fd6b4e984e3a64f20529 Mon Sep 17 00:00:00 2001 From: Eiman Eltigani Date: Mon, 9 Mar 2026 12:53:17 -0600 Subject: [PATCH 6/7] update formatting --- .../client-server/views/index.html | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/web-integrations/google-secure-signals/client-server/views/index.html b/web-integrations/google-secure-signals/client-server/views/index.html index b1067619..ecd61c26 100644 --- a/web-integrations/google-secure-signals/client-server/views/index.html +++ b/web-integrations/google-secure-signals/client-server/views/index.html @@ -11,6 +11,7 @@ +