From 499acf5ad9c047303e4a83b98b5d5caa6532044d Mon Sep 17 00:00:00 2001 From: Guillermo Tamanaha Date: Mon, 20 Oct 2025 15:12:19 -0300 Subject: [PATCH 1/5] git push --- src/Rokt-Kit.js | 15 +++++++++++++++ test/src/tests.js | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/Rokt-Kit.js b/src/Rokt-Kit.js index 1730adf..ecb19f4 100644 --- a/src/Rokt-Kit.js +++ b/src/Rokt-Kit.js @@ -20,6 +20,9 @@ var constructor = function () { var self = this; var EMAIL_SHA256_IDENTITY = 'emailsha256'; var OTHER_IDENTITY = 'other'; + var PerformanceMarks = { + RoktScriptAppended: 'RoktScriptAppended', + }; self.name = name; self.moduleId = moduleId; @@ -137,6 +140,7 @@ var constructor = function () { }; target.appendChild(script); + captureTimings(PerformanceMarks.RoktScriptAppended); } else { console.warn('Unable to find Rokt on the page'); } @@ -444,6 +448,17 @@ var constructor = function () { var LOCAL_LAUNCHER_TEST_GROUP_THRESHOLD = 0.5; return Math.random() > LOCAL_LAUNCHER_TEST_GROUP_THRESHOLD; } + + function captureTimings(metricName) { + if ( + window && + window.mParticle && + window.mParticle.captureTiming && + metricName + ) { + window.mParticle.captureTiming(metricName); + } + } }; function generateIntegrationName(customIntegrationName) { diff --git a/test/src/tests.js b/test/src/tests.js index fc073a4..0337b39 100644 --- a/test/src/tests.js +++ b/test/src/tests.js @@ -541,6 +541,9 @@ describe('Rokt Forwarder', () => { window.mParticle.Rokt = window.Rokt; window.mParticle.Rokt.attachKitCalled = false; + // Ensure currentLauncher is undefined to trigger script appending + window.Rokt.currentLauncher = undefined; + // Set attachKit as async to allow for await calls in the test // This is necessary to simiulate a race condition between the // core sdk and the Rokt forwarder @@ -567,6 +570,24 @@ describe('Rokt Forwarder', () => { }; window.mParticle.config = undefined; Math.random = () => 1; + + window.mParticle.captureTiming = function (metricName) { + window.mParticle.Rokt.capturedPerformanceMetric = metricName; + }; + }); + + it('should add a performance marker when the script is appended', async () => { + await window.mParticle.forwarder.init( + { accountId: '123456' }, + reportService.cb, + false, + null, + {} + ); + + window.mParticle.Rokt.capturedPerformanceMetric.should.equal( + 'RoktScriptAppended' + ); }); it('should create a remote launcher if the partner is not in the local launcher test group', async () => { From 6ddee6fcf34a9776c617ee637a235e1c86eb0617 Mon Sep 17 00:00:00 2001 From: Guillermo Tamanaha Date: Mon, 20 Oct 2025 16:25:06 -0300 Subject: [PATCH 2/5] fix: Update performance metric naming convention for consistency --- src/Rokt-Kit.js | 2 +- test/src/tests.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Rokt-Kit.js b/src/Rokt-Kit.js index ecb19f4..c61fc3a 100644 --- a/src/Rokt-Kit.js +++ b/src/Rokt-Kit.js @@ -21,7 +21,7 @@ var constructor = function () { var EMAIL_SHA256_IDENTITY = 'emailsha256'; var OTHER_IDENTITY = 'other'; var PerformanceMarks = { - RoktScriptAppended: 'RoktScriptAppended', + RoktScriptAppended: 'mp:RoktScriptAppended', }; self.name = name; diff --git a/test/src/tests.js b/test/src/tests.js index 0337b39..87367ef 100644 --- a/test/src/tests.js +++ b/test/src/tests.js @@ -586,7 +586,7 @@ describe('Rokt Forwarder', () => { ); window.mParticle.Rokt.capturedPerformanceMetric.should.equal( - 'RoktScriptAppended' + 'mp:RoktScriptAppended' ); }); From ba68228a6437eb738ac19980895440901621b7be Mon Sep 17 00:00:00 2001 From: Guillermo Tamanaha Date: Wed, 22 Oct 2025 11:23:07 -0300 Subject: [PATCH 3/5] refactor: Replace PerformanceMarks with mParticle.PerformanceMarkType for improved consistency --- src/Rokt-Kit.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Rokt-Kit.js b/src/Rokt-Kit.js index c61fc3a..35427c5 100644 --- a/src/Rokt-Kit.js +++ b/src/Rokt-Kit.js @@ -20,9 +20,6 @@ var constructor = function () { var self = this; var EMAIL_SHA256_IDENTITY = 'emailsha256'; var OTHER_IDENTITY = 'other'; - var PerformanceMarks = { - RoktScriptAppended: 'mp:RoktScriptAppended', - }; self.name = name; self.moduleId = moduleId; @@ -140,7 +137,7 @@ var constructor = function () { }; target.appendChild(script); - captureTimings(PerformanceMarks.RoktScriptAppended); + captureTimings(mParticle.PerformanceMarkType.RoktScriptAppended); } else { console.warn('Unable to find Rokt on the page'); } From 2353fed6f7b4afa52fe25dd719949fb643113a10 Mon Sep 17 00:00:00 2001 From: Guillermo Tamanaha Date: Wed, 22 Oct 2025 16:33:11 -0300 Subject: [PATCH 4/5] refactor: Rename captureTimings to captureTiming for consistency in performance metrics --- src/Rokt-Kit.js | 4 ++-- test/src/tests.js | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Rokt-Kit.js b/src/Rokt-Kit.js index 35427c5..dce25e2 100644 --- a/src/Rokt-Kit.js +++ b/src/Rokt-Kit.js @@ -137,7 +137,7 @@ var constructor = function () { }; target.appendChild(script); - captureTimings(mParticle.PerformanceMarkType.RoktScriptAppended); + captureTiming(mParticle.PerformanceMarkType.RoktScriptAppended); } else { console.warn('Unable to find Rokt on the page'); } @@ -446,7 +446,7 @@ var constructor = function () { return Math.random() > LOCAL_LAUNCHER_TEST_GROUP_THRESHOLD; } - function captureTimings(metricName) { + function captureTiming(metricName) { if ( window && window.mParticle && diff --git a/test/src/tests.js b/test/src/tests.js index 87367ef..4704a80 100644 --- a/test/src/tests.js +++ b/test/src/tests.js @@ -540,6 +540,9 @@ describe('Rokt Forwarder', () => { window.Rokt = new MockRoktForwarder(); window.mParticle.Rokt = window.Rokt; window.mParticle.Rokt.attachKitCalled = false; + window.mParticle.PerformanceMarkType = { + RoktScriptAppended: 'mp:RoktScriptAppended', + }; // Ensure currentLauncher is undefined to trigger script appending window.Rokt.currentLauncher = undefined; From 1217c1b232271d57f6d1a731767b23279603ca10 Mon Sep 17 00:00:00 2001 From: Guillermo Tamanaha Date: Wed, 22 Oct 2025 17:37:17 -0300 Subject: [PATCH 5/5] refactor: Introduce PerformanceMarks object for performance metric consistency --- src/Rokt-Kit.js | 5 ++++- test/src/tests.js | 3 --- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Rokt-Kit.js b/src/Rokt-Kit.js index dce25e2..f92bca2 100644 --- a/src/Rokt-Kit.js +++ b/src/Rokt-Kit.js @@ -20,6 +20,9 @@ var constructor = function () { var self = this; var EMAIL_SHA256_IDENTITY = 'emailsha256'; var OTHER_IDENTITY = 'other'; + var PerformanceMarks = { + RoktScriptAppended: 'mp:RoktScriptAppended', + }; self.name = name; self.moduleId = moduleId; @@ -137,7 +140,7 @@ var constructor = function () { }; target.appendChild(script); - captureTiming(mParticle.PerformanceMarkType.RoktScriptAppended); + captureTiming(PerformanceMarks.RoktScriptAppended); } else { console.warn('Unable to find Rokt on the page'); } diff --git a/test/src/tests.js b/test/src/tests.js index 4704a80..87367ef 100644 --- a/test/src/tests.js +++ b/test/src/tests.js @@ -540,9 +540,6 @@ describe('Rokt Forwarder', () => { window.Rokt = new MockRoktForwarder(); window.mParticle.Rokt = window.Rokt; window.mParticle.Rokt.attachKitCalled = false; - window.mParticle.PerformanceMarkType = { - RoktScriptAppended: 'mp:RoktScriptAppended', - }; // Ensure currentLauncher is undefined to trigger script appending window.Rokt.currentLauncher = undefined;