From a8854399b9c138c105bf0edab0b54c1e1cd43827 Mon Sep 17 00:00:00 2001 From: naripok Date: Wed, 29 Mar 2023 16:10:51 -0300 Subject: [PATCH 1/3] chore: use provided tag insertion method --- modules/airgridRtdProvider.js | 25 ++++++++++---------- test/spec/modules/airgridRtdProvider_spec.js | 2 ++ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/modules/airgridRtdProvider.js b/modules/airgridRtdProvider.js index 174502d1757..f46ff6cced4 100644 --- a/modules/airgridRtdProvider.js +++ b/modules/airgridRtdProvider.js @@ -13,6 +13,7 @@ import { } from '../src/utils.js'; import { getGlobal } from '../src/prebidGlobal.js'; import { getStorageManager } from '../src/storageManager.js'; +import { loadExternalScript } from '../src/adloader.js'; const MODULE_NAME = 'realTimeData'; const SUBMODULE_NAME = 'airgrid'; @@ -24,6 +25,10 @@ export const storage = getStorageManager({ moduleName: SUBMODULE_NAME, }); +function getModuleUrl(publisherId) { + return `https://cdn.edkt.io/${publisherId}/edgekit.min.js`; +} + /** * Attach script tag to DOM * @param {Object} rtdConfig @@ -32,19 +37,13 @@ export const storage = getStorageManager({ export function attachScriptTagToDOM(rtdConfig) { var edktInitializor = (window.edktInitializor = window.edktInitializor || {}); if (!edktInitializor.invoked) { - edktInitializor.invoked = true; - edktInitializor.accountId = rtdConfig.params.accountId; - edktInitializor.publisherId = rtdConfig.params.publisherId; - edktInitializor.apiKey = rtdConfig.params.apiKey; - edktInitializor.load = function (e) { - var p = e || 'sdk'; - var n = document.createElement('script'); - n.type = 'module'; - n.async = true; - n.src = 'https://cdn.edkt.io/' + p + '/edgekit.min.js'; - document.getElementsByTagName('head')[0].appendChild(n); - }; - edktInitializor.load(edktInitializor.accountId); + const moduleSrc = getModuleUrl(rtdConfig.params.publisherId); + loadExternalScript(moduleSrc, SUBMODULE_NAME, () => { + edktInitializor.invoked = true; + edktInitializor.accountId = rtdConfig.params.accountId; + edktInitializor.publisherId = rtdConfig.params.publisherId; + edktInitializor.apiKey = rtdConfig.params.apiKey; + }); } } diff --git a/test/spec/modules/airgridRtdProvider_spec.js b/test/spec/modules/airgridRtdProvider_spec.js index c587ef1a133..ea019b8a898 100644 --- a/test/spec/modules/airgridRtdProvider_spec.js +++ b/test/spec/modules/airgridRtdProvider_spec.js @@ -2,6 +2,7 @@ import { config } from 'src/config.js'; import { deepAccess } from 'src/utils.js'; import { getAdUnits } from '../../fixtures/fixtures.js'; import * as agRTD from 'modules/airgridRtdProvider.js'; +import { loadExternalScript } from '../../../src/adloader.js'; const MATCHED_AUDIENCES = ['travel', 'sport']; const RTD_CONFIG = { @@ -40,6 +41,7 @@ describe('airgrid RTD Submodule', function () { expect(agRTD.airgridSubmodule.init(RTD_CONFIG.dataProviders[0])).to.equal( true ); + expect(loadExternalScript.called).to.be.true }); it('should attach script to DOM with correct config', function () { From b2d56bae0105553b0ea3a5d3b5883bed3ec3e4b0 Mon Sep 17 00:00:00 2001 From: naripok Date: Wed, 3 May 2023 15:45:36 -0300 Subject: [PATCH 2/3] fix: add `airgrid` to `_approvedLoadExternalJSList` --- src/adloader.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/adloader.js b/src/adloader.js index f0b7f7f3e8c..83667bee185 100644 --- a/src/adloader.js +++ b/src/adloader.js @@ -22,7 +22,8 @@ const _approvedLoadExternalJSList = [ 'improvedigital', 'aaxBlockmeter', 'confiant', - 'arcspan' + 'arcspan', + 'airgrid' ] /** From 320956519140611d8a2610735b278751db18c715 Mon Sep 17 00:00:00 2001 From: naripok Date: Wed, 3 May 2023 15:54:13 -0300 Subject: [PATCH 3/3] fix: use 'sdk' path if no publisherId is provided --- modules/airgridRtdProvider.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/airgridRtdProvider.js b/modules/airgridRtdProvider.js index f46ff6cced4..424dd8c53de 100644 --- a/modules/airgridRtdProvider.js +++ b/modules/airgridRtdProvider.js @@ -26,7 +26,8 @@ export const storage = getStorageManager({ }); function getModuleUrl(publisherId) { - return `https://cdn.edkt.io/${publisherId}/edgekit.min.js`; + const path = publisherId ?? 'sdk'; + return `https://cdn.edkt.io/${path}/edgekit.min.js`; } /**