___TERMS_OF_SERVICE___ By creating or modifying this file you agree to Google Tag Manager's Community Template Gallery Developer Terms of Service available at https://developers.google.com/tag-manager/gallery-tos (or such other URL as Google may provide), as modified from time to time. ___INFO___ { "displayName": "Pushnews", "categories": [ "ADVERTISING", "LEAD_GENERATION", "MARKETING", "REMARKETING" ], "description": "Pushnews is a Web Push Notifications provider. With Push Notifications you can increase your website traffic by bringing your users back.", "securityGroups": [], "id": "cvt_temp_public_id", "type": "TAG", "version": 1, "brand": { "thumbnail": "data:image/png;base64,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\u003d", "displayName": "Custom template created by Luratic", "id": "brand_dummy" }, "containerContexts": [ "WEB" ] } ___TEMPLATE_PARAMETERS___ [ { "simpleValueType": true, "name": "siteId", "type": "TEXT", "valueValidators": [ { "type": "NON_EMPTY" }, { "type": "REGEX", "args": [ "^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$" ] } ], "displayName": "Site ID", "help": "Your Site\u0027s Pushnews ID. You can get it on Pushnews \u003e My Sites." } ] ___SANDBOXED_JS_FOR_WEB_TEMPLATE___ const log = require('logToConsole'); const injectScript = require('injectScript'); const encodeUriComponent = require('encodeUriComponent'); log('data =', data); const trackingUrl = 'https://cdn.pn.vg/sites/' + encodeUriComponent(data.siteId) + '.js'; injectScript(trackingUrl,data.gtmOnSuccess,data.gtmOnFailure,'pushNewsPx'); ___WEB_PERMISSIONS___ [ { "instance": { "key": { "publicId": "logging", "versionId": "1" }, "param": [ { "key": "environments", "value": { "type": 1, "string": "debug" } } ] }, "isRequired": true }, { "instance": { "key": { "publicId": "inject_script", "versionId": "1" }, "param": [ { "key": "urls", "value": { "type": 2, "listItem": [ { "type": 1, "string": "https://cdn.pn.vg/*" } ] } } ] }, "clientAnnotations": { "isEditedByUser": true }, "isRequired": true } ] ___TESTS___ scenarios: - name: gtmOnSuccess is invoked on injectScript success code: |- // test that gtmOnSuccess() is called when injectScript succeeds mock('injectScript', (url, onInjectionSuccess, onInjectionFailure) => { onInjectionSuccess(); }); // Call runCode to run the template's code. runCode(); // Verify that the tag finished successfully. assertApi('gtmOnSuccess').wasCalled(); - name: gtmOnFailure is invoked when injectScript fails code: |- // test gtmOnFailure() is called when injectScript fails mock('injectScript', (url, onInjectionSuccess, onInjectionFailure) => { onInjectionFailure(); }); // Call runCode to run the template's code. runCode(); // Verify onFailure was called assertApi('gtmOnFailure').wasCalled(); setup: '' ___NOTES___ Pushnews javascript tag template for Google Tag Manager Developed with ❤ by: Alfonso, Txema and Brais. Web: www.luratic.com Linkedin: https://www.linkedin.com/in/braiscalvo/ https://www.linkedin.com/in/alfonsorc/ https://www.linkedin.com/in/txema-s%C3%A1nchez-a48482ba/