___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": "Amazon", "description": "This is an unofficial Google Tag Manager template for Amazon Advertising", "categories": [ "ADVERTISING","REMARKETING"], "securityGroups": [], "id": "cvt_temp_public_id", "type": "TAG", "version": 1, "brand": { "thumbnail": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEmBAMAAAAqyLAgAAAAJFBMVEX0qUPtpkbhoUrdn0tKRDw8NzExMTErKyslJSUeHh4aGhr7rEHsZRNdAAAACnRSTlPcllwlEAA/g7/t5QXfrgAADEZJREFUeNrtnc9SI7cTx2U4+mJD5cRlySb3Hx58ymnXHrPXxGP2BYwNvzOLIWcCZh8AsF8gzJyGs18umrGB+SO1WpqWhgOqVGq3ajEft1qt1lctiY0qtX5/MpvN5oukzfmfLsb9EUVjlaAm0/ndYhG9tITtdjKuFSsYTC/vFsuo0Bbh7Wzs14UVDGZ3i0jcwsfbSb8WrP70bhkB7XE2do8VTC4XEdwW84u+Y6zB9GekbovbsVOswWWEauHD2CHW4HIZIbkejYekLlYwvYvw7fHCEdaRDhXnOneCNdCj4lxjB1jaVKZcWliDq0i/PZxYxgouDaii8Ma3ihWcLiMjrgurWAaOtXGvE4tYwZUhlUk3MttdmHKdW8My7sJ0NPqWsMxGobG5sFhHyypY2uZitv3dzFzMibG4uWxgVTVWFD2NLWBVNlYU3dBjVTeWrtOjsAY/q2PpOT0K6zQiaDfUWMEdBZZWLzI3Dp/04g9arOAsImnXtFjHP2mwHmixaPqQR1SfFIuoD6NwTIkVEPWhlnMxZ30YRfeUWKdUVNG/Ph0WxXyo7/OMIjxwhRnT0+EJHdZ31S/kAu5sMuXavJrrBx3WN9XadDbp+8m+wVQtx52TYSlcK7yd+Bn1mWwoskquFeZk22CqsNe9T4YFU51orbwfyLCOtKQrRZc/kWGd6q1m4PQaHyGY+TwtEmLg3IwMC5qnH0S7J4MlSYLKjAeieCkDe9c5FdZSV6oFx8g/RFhAVnNhEOiuibDkU8+TxH2Dvx1gnemHxjOK2UeBdaX/xaFslghL3iPy9cKxA6yf+gkw5PMPNFjyb35vYGEHWNcm/hj9axkLmkbOasQ6McJ6sOzyUOb0zbq1pH7yUC/W0UI/ADnAkmXn12Z5NhXWaDCbC6qhQNn4uwOsUdAfTNN6NvRawQnWemU6mOSsBm6nAvIAMdbaarPZprwNrm1wivVqtdl8fjF6X1hrNEWdUT1YyvaB9YH1gfWB9YFF0o6i94YV9Hld/9W7wuLT+GR6OZ9DpeFusbiJ1qniIlTskTnDSk9jiBLrGrGCfpK14vdBnWBxpsvFItJo9rH4YYxLLSQXWPzYikbfucIaTOeh0W61Taz+dG66iW4Ra6DvU/axgqk5lT2sAHWYxjVWcLqI3h9WBbeyiIU/4uMSa3BVtQrIBlZlW1nBCqpT2dC3TqtTWcCaLqJ3iDUgKYmlxiIqLqPGmi7fIxZNF1JjBVRli7RYFPXy9Fh0xZSkWHQFsZRYhJWnlFh4Y4XhAi5BpcTCVYCHi8f5fHYxmUwunWBhhmG4uOVEXNxyJ7upY1Y4n2UvzXAiUqqPrfA7A3zn2qnS4R+LNyy4wFIdWxFcY+AC61jRh4LLFVxgKfpQtD3sAgvuQ+EFBg6w4GMr4U1NuxhwH4pLTx1ggbFUcnDUPhacPEiKNOxjgSW3slO29rFA17qvbeMOOrYirUqyjgXOPNKCN/tYRtXc1rGgOmB5LaX1+i3I4+XVw9at9c2oxty6tc4MxqEDa12ZuJb1JQY0EIGiRdt1p9BAfBjVhmV4fME6ltkZFNtYULJ1bvRjJFhQfPhh9GMkWGbxoU6spxOjH6PAgo6gAGEL+jH0OXRGHk3fKdax2Y+hsaAgD2EtzVySAgs4InK0NBvAFFiAk0BBmALre2SE9X/bWEbWAhfi6KPC5NYCV0voi5IMrfVkssCI8IdfDa0lx/oGYt3XZC2FBPxg2VonRvIhevYxxJKOdIUEjA3zhp0oHemKq0nCE7vWOjfcTju3iiUb6coLlW6sdqJspCt3iJDXjZhiST5eucuHdC5TLHHgUl+KhZx+oMQG/PixUR9i47xhviX2eUx1CS6gMkNRXjiNoLa1f1TEgh1FFK9RpTg3VrEEvosrxUGFCMPlayS4hwlZt4TqRWixD2OVtnywdUs3FbGutD4efTcxJoswFJLK5tIoAL2uhqW6Py17SVKgUT2IcHpTkXK9Ve2/UWlUDyKc3lRpXn/+poyFH67RKpZVX1XOTPde11yPvA5pwN+p0auHUzs9uF3wt/o3JFVbd7p1xeo0wnRzpVq7qYR1ZgtLORaNN+5qxPq+tIT1VAmL6nJfYqzg7l12ojWfv680EuEVrHmrGLfU049hH55Uw8LEeRvGMr8JD/7F82UVh69Y7Sb/xdATO5iFdaXaQCChArJCzAss1Sop5UtbeSRGCYIV606l2ad01wD3XE3VKl1Ru4W+D+6NJmWptf5ZmvWKSPJ9qgtJhr246SWJQF9dDURsLUG9JPw+2DdOyO+Xf+0l0QwRYh/HUGMd601Ab70kWGaj30pDnFzROm2X+cXl0IV/+gvzAMWVtr9LdqXoLtvW9K5cVCr+XEh3kbuWRFTwncIg1nmODHcQEBnqi76TN9cj6bsYeK8vmSNnLq2n7pBvRWE0tfDWh74O+cM5uFgvoMr+WKj1hhX6XPWVkmoMDmKFv/eHnhf42liq6w2K7wUUBzHwBiwH2m+3240G/9+O19XDgrnCW8lTvRtVXO7vQ2+fseZq05qs7elhAVdncFHQhweLzN+DTjuOV9kWxztdvWsqJM8uLx6hB6pTI8tCFrfUqtTiHV/vUo9gcFkEC/lb4/DVmfxn5ufif9FrNVeCFv+ifTPLJHNR7JILp/z1c0U84pdhSf6J11qJ25avf71O+ij7ul2kz62Yts6ehGoVd82ubgpGPv9vVKn1pFS8Fy1c0Idrw9ZK3rbrwhp+agJYWwmWXwPWAUS1emZJRNvx3lUXplgJd+Oza2OtFFjDdEA0Dt1ifVJhbTrZLddwT4X1wu2Ua9hUYb1ybx2+J6zm28TddYe1QmO55NKwFufadcUV7KF9ize26yrg/y+TjTLGs/hW1j6rBstFkNgV19fmmihZVHiHnt/3vOx0tM2+NPNcjnrxgPHVxGevmzHDXharENkarrg6v3qFmTiHVZzLmevpUYS1y0qTeW1cb1jxbzzf6hSCSKMerkzQSHP54FOJq47EcFjAKs/n7Lc6sN6M85wuyIJSBltHP2ax1svXcgrrqB8Db/81Yf8rEx82q+pOc1WHvYJOqxm//KYvZaygnMQ64AoOsgl7Jr3ffdEgBCsR61y9F7lmO3WYP94G4u+v0ohg3cbs+ldv/y0eJKZrZeLDK5Zo4WZ1fvTeRCQuHOWi1HNG3/oqSBiZtbxweJCNldv5+LCdld1EK0pb+WrvIKcCJlh/NjMen8Hqidbf8Y6N9ZDXzuulW/n48EtOO+2I8v6Yfv3YO9grqX+5NDov6QbCFXjc8KhHYOnrb+WW/9zjc9qpREYhnYiSwF5W2XJpTQLJEKITI3OwQKh4Jz4+zHl8HiuQCClUjs9NJfz437PxKT4sYolHY+pgBB0pMRV3pm42PCV/K+ryUu2wckdKodaLwE+5IFbECqR6WMWOHHZasm/c6OY8fleAJe3GtCONQ36v02bSz93NTT3pvF3eXAEkYFMwD4Da6At/NbOhVYAV7ANKiomH9bwWJButZ5Ev+T4UbEWB2jQ3mKfn6AeApZIP/JxXcOJDCRawRbQGQ6v4Qa+z3wKhXqSYt5G27kPhxh28w8DBdjFgPuhSLxTdwtJ1k3ky/S0GvqPcaHuewqE67VZTBZXGhpyW+tyVY6m5EpMV1KnXxhW0TrvN1Eyc6uW7veaA2yMAS5x6FcHiRDfz+L6in9L5/A8cyfu1xdgK1d40vj8zsyOAFRw0UZ8bx0nxQjvB20//0GKFjXqQyi9ibXVBLMV2X9nZeFtptmQD/6Vtomn8Kskws501grbVLckijZEKSxG9qrdGt5QhZPRk+abwQdMiVNzIz65fWV59Z4BwYZGruJ7igjjL7u0AW+iabq9FVZZdPC9rP2hnf9hqurFVuYEFBz07wxGx8mQKWcUGFUIwVpRn0IeJuI3JJFVVI9Rc8RYq71bemE7Lhd3hVZfxU3KhdTxE6Q8dF14lxryLQcQVa2jXqArwDkWcYDqFA7j6LYL4pSeuIMvKvIrzUNzWk3yw1W7DfVYB6llXscYX4XWYua9ry68az6N1zDqSr3b1hQudkkWTjoyfjSr89CoptT2fGZYdahZ49vb38GAxH3+GEqL2I5geFqzJpR1jHVi/HFauzeahdqvsfphU6Splq7Sqp5IubVhqnehETCaYVGUaVXnqmKshRW2myZhMXnKFlWiQXDVayzRpwVpaIkbBxNt/cZvuU4NosukAAAAASUVORK5CYII\u003d", "displayName": "Custom template created by Luratic", "id": "brand_dummy" }, "containerContexts": [ "WEB" ] } ___TEMPLATE_PARAMETERS___ [ { "alwaysInSummary": true, "simpleValueType": true, "name": "d", "type": "TEXT", "displayName": "d:", "valueValidators": [ { "type": "NON_EMPTY" } ] }, { "alwaysInSummary": true, "simpleValueType": true, "name": "exFargs", "type": "TEXT", "displayName": "ex-fargs:", "valueValidators": [ { "type": "NON_EMPTY" } ] }, { "alwaysInSummary": true, "simpleValueType": true, "name": "exFch", "type": "TEXT", "displayName": "ex-fch", "valueValidators": [ { "type": "NON_EMPTY" } ] }, { "alwaysInSummary": true, "simpleValueType": true, "name": "exSrc", "type": "TEXT", "displayName": "ex-src", "valueValidators": [ { "type": "NON_EMPTY" } ] }, { "alwaysInSummary": true, "simpleValueType": true, "name": "exHargs", "type": "TEXT", "displayName": "ex-hargs", "valueValidators": [ { "type": "NON_EMPTY" } ] } ] ___SANDBOXED_JS_FOR_WEB_TEMPLATE___ // Introduzca aquí su código de plantilla. //var log = require('logToConsole'); const sendPixel = require('sendPixel'); const getTimestamp = require('getTimestamp'); const encodeUriComponent = require('encodeUriComponent'); const dParameter = encodeUriComponent(data.d); const exFargs = encodeUriComponent(data.exFargs); const exFch = encodeUriComponent(data.exFch); const exSrc = encodeUriComponent(data.exSrc); const exHargs = encodeUriComponent(data.exHargs); var trackingUrl = 'https://aax-eu.amazon-adsystem.com/s/iui3?d=' + dParameter + '&ex-fargs=' + exFargs + '&ex-fch=' + exFch + '&ex-src=' + exSrc + '&ex-hargs=' + exHargs; sendPixel(trackingUrl,data.gtmOnSuccess,data.gtmOnFailure); ___WEB_PERMISSIONS___ [ { "instance": { "key": { "publicId": "send_pixel", "versionId": "1" }, "param": [ { "key": "allowedUrls", "value": { "type": 1, "string": "specific" } }, { "key": "urls", "value": { "type": 2, "listItem": [ { "type": 1, "string": "https://aax-eu.amazon-adsystem.com/" } ] } } ] }, "clientAnnotations": { "isEditedByUser": true }, "isRequired": true } ] ___TESTS___ scenarios: - name: gtmOnSuccess is invoked on sendPixel success code: |- // test that gtmOnSuccess() is called when sendPixel succeeds mock('sendPixel', (url, onSuccess, onFailure) => { onSuccess(); }); // Call runCode to run the template's code. runCode(); // Verify that the tag finished successfully. assertApi('gtmOnSuccess').wasCalled(); - name: gtmOnFailure is invoked when sendPixel fails code: |- // test gtmOnFailure() is called when sendPixel fails mock('sendPixel', (url, onSuccess, onFailure) => { onFailure(); }); // Call runCode to run the template's code. runCode(); // Verify onFailure was called assertApi('gtmOnFailure').wasCalled(); ___NOTES___ 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/