├── package.json ├── README.md ├── LICENSE ├── index.js ├── ActiveCampaing Event Tracking.tpl └── GTMContainerTemplate.json /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cloudfunction", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "author": "", 7 | "license": "ISC", 8 | "dependencies": { 9 | "axios": "^0.21.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ActiveCampaign Event Tracking Proxy for GTM 2 | Send ActiveCampaing Event information with GTM via a Google Cloud Functions proxy. 3 | 4 | ## Description 5 | Send Event Tracking data to ActiveCampaign with Google Tag Manager and a Google Cloud Function. You will need to setup: 6 | 7 | 1. The Google Cloud Function 8 | 2. The GTM Tracking with the ActiveCampaign Event Tracking Template 9 | 3. A way to identify the user (User identifiers: Email, ActiveCampaign User Hash, ActiveCampaign Contact ID) 10 | 11 | ## Testing 12 | 13 | Use this query string attached to your Cloud Functions URL 14 | 15 | ?action=trackEvent&eventName=**EVENTNAME**&eventData=**EVENTDATA**&contactId=**CONTACTID** 16 | 17 | Replace EVENTNAME, EVENTDATA and CONTACTID with your dummy data 18 | 19 | (e.g. https://us-central1-cloud-functions-2939.cloudfunctions.net/EventToActiveCampaign?action=trackEvent&eventName=watched&eventData=true&contactId=65473 ) 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 measureschool 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const APIKEY = '000000000000000000000000000000000000000' //replace the 0s with your AC API Key (e.g. 96ffd43f404e4b10ac701580d68f41c59ff7e9ad56f60f8.....) 2 | const APIURL = '11111111111111111' //replace the 1s with your Active Campaign API URL (e.g https://acurl.api-us1.com) 3 | const EVENTKEY = '222222222222222222222' //replace the 2s with your ActiveCampaign Event Key (e.g. ce450728b48c2e5568e01e38ca1f5b069) 4 | const ACTID = '333333333333333' //repalce the 3s with your AciveCampaign ID (e.g. 251578439) 5 | 6 | 7 | const axios = require('axios') 8 | exports.activeCampaignProxy = async(req, res) => { 9 | let action = req.query.action 10 | let hash = req.query.hash 11 | let contactId = req.query.contactId 12 | let email = req.query.email 13 | let eventName = req.query.eventName 14 | let eventData = req.query.eventData 15 | let tag = req.query.tag 16 | let field = req.query.field 17 | let fieldValue = req.query.fieldValue 18 | 19 | if (action === 'trackEvent' && email) { 20 | 21 | let ac = await sendEvent(email, eventName, eventData) 22 | .then(res.send("all ok")) 23 | .catch(err => res.status(400) 24 | .end(err)) 25 | 26 | } else if (action === 'trackEvent' && contactId) { 27 | console.log("getting contact Info") 28 | let ac = await getEmail(contactId) 29 | .then(data => sendEvent(data, eventName, eventData)) 30 | .then(res.send("sent event")) 31 | .catch(err => res.status(400) 32 | .end(err)) 33 | 34 | } else if (action === 'trackEvent' && hash) { 35 | console.log("getting contact Info from hash") 36 | let ac = await getEmailHash(hash) 37 | .then(data => sendEvent(data, eventName, eventData)) 38 | .then(res.send("sent event")) 39 | .catch(err => res.status(400) 40 | .end(err)) 41 | 42 | } else { 43 | console.log(action) 44 | res.status(400) 45 | 46 | } 47 | 48 | 49 | 50 | 51 | //console.log(ac) 52 | 53 | }; 54 | 55 | async function sendEvent(email, eventName, eventData) { 56 | 57 | return new Promise((resolve, reject) => { 58 | let url = 'https://trackcmp.net/event'; 59 | let data = 'actid=' + ACTID + '&key=' + EVENTKEY + '&event=' + eventName + '&eventdata=' + eventData + '&visit=%7B%22email%22%3A%22' + encodeURIComponent(email) + '%22%7D'; 60 | axios 61 | .post(url, data, { headers: { 'content-type': 'application/x-www-form-urlencoded' } }) 62 | .then(res => { 63 | resolve(res); 64 | }) 65 | .catch(error => { 66 | reject(error); 67 | }) 68 | 69 | }); 70 | 71 | 72 | } 73 | 74 | async function getEmail(contactId) { 75 | 76 | return new Promise((resolve, reject) => { 77 | let url = APIURL + '/api/3/contacts/' + contactId; 78 | axios 79 | .get(url, { headers: { 'Api-Token': APIKEY } }) 80 | .then(res => { 81 | console.log(res); 82 | resolve(res.data.contact.email); 83 | }) 84 | .catch(error => { 85 | reject(error); 86 | }) 87 | 88 | }); 89 | 90 | 91 | } 92 | 93 | async function getEmailHash(hash) { 94 | 95 | return new Promise((resolve, reject) => { 96 | let url = APIURL + '/admin/api.php?api_action=contact_view_hash&api_key=' + APIKEY + '&hash=' + hash + '&api_output=json'; 97 | axios 98 | .get(url, { headers: { 'content-type': 'application/x-www-form-urlencoded' } }) 99 | .then(res => { 100 | console.log(res); 101 | resolve(res.data.email); 102 | }) 103 | .catch(error => { 104 | reject(error); 105 | }) 106 | 107 | }); 108 | 109 | 110 | } 111 | -------------------------------------------------------------------------------- /ActiveCampaing Event Tracking.tpl: -------------------------------------------------------------------------------- 1 | ___TERMS_OF_SERVICE___ 2 | 3 | By creating or modifying this file you agree to Google Tag Manager's Community 4 | Template Gallery Developer Terms of Service available at 5 | https://developers.google.com/tag-manager/gallery-tos (or such other URL as 6 | Google may provide), as modified from time to time. 7 | 8 | 9 | ___INFO___ 10 | 11 | { 12 | "type": "TAG", 13 | "id": "cvt_temp_public_id", 14 | "version": 1, 15 | "securityGroups": [], 16 | "displayName": "ActiveCampaing Event Tracking", 17 | "brand": { 18 | "id": "brand_dummy", 19 | "displayName": "", 20 | "thumbnail": "data:image/png;base64,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\u003d\u003d" 21 | }, 22 | "description": "This template let\u0027s you send event tracking data via an ActiveCampaign Proxy setup on Google Cloud Functions", 23 | "containerContexts": [ 24 | "WEB" 25 | ] 26 | } 27 | 28 | 29 | ___TEMPLATE_PARAMETERS___ 30 | 31 | [ 32 | { 33 | "type": "TEXT", 34 | "name": "proxyUrl", 35 | "displayName": "Cloud Function Proxy URL", 36 | "simpleValueType": true, 37 | "valueValidators": [ 38 | { 39 | "type": "REGEX", 40 | "args": [ 41 | ".*\\.cloudfunctions\\.net\\/.*" 42 | ], 43 | "errorMessage": "This needs to be a cloudfunctions URL", 44 | "enablingConditions": [] 45 | }, 46 | { 47 | "type": "NON_EMPTY" 48 | } 49 | ], 50 | "valueHint": "e.g. https://us-central1-cloud-functions-297809.cloudfunctions.net/", 51 | "help": "This is the Cloud Function URL your data will be sent to to proxy your request to Active Campaign" 52 | }, 53 | { 54 | "type": "SELECT", 55 | "name": "userIdMethod", 56 | "displayName": "User Identification Method", 57 | "macrosInSelect": false, 58 | "selectItems": [ 59 | { 60 | "value": "email", 61 | "displayValue": "Email Address" 62 | }, 63 | { 64 | "value": "contactId", 65 | "displayValue": "Contact ID" 66 | }, 67 | { 68 | "value": "hash", 69 | "displayValue": "User Hash" 70 | } 71 | ], 72 | "simpleValueType": true, 73 | "notSetText": "Choose Method...", 74 | "valueValidators": [ 75 | { 76 | "type": "NON_EMPTY" 77 | } 78 | ], 79 | "help": "To send your event to the right user profile, we need to identify where to send the data. You can use the Email address, Contact ID or User Hash." 80 | }, 81 | { 82 | "type": "TEXT", 83 | "name": "email", 84 | "displayName": "Email Address", 85 | "simpleValueType": true, 86 | "enablingConditions": [ 87 | { 88 | "paramName": "userIdMethod", 89 | "paramValue": "email", 90 | "type": "EQUALS" 91 | } 92 | ], 93 | "valueValidators": [ 94 | { 95 | "type": "NON_EMPTY" 96 | } 97 | ] 98 | }, 99 | { 100 | "type": "TEXT", 101 | "name": "contactId", 102 | "displayName": "Active Campaign Contact ID", 103 | "simpleValueType": true, 104 | "enablingConditions": [ 105 | { 106 | "paramName": "userIdMethod", 107 | "paramValue": "contactId", 108 | "type": "EQUALS" 109 | } 110 | ], 111 | "valueValidators": [ 112 | { 113 | "type": "NON_EMPTY" 114 | } 115 | ] 116 | }, 117 | { 118 | "type": "TEXT", 119 | "name": "hash", 120 | "displayName": "Active Campaign User Hash", 121 | "simpleValueType": true, 122 | "enablingConditions": [ 123 | { 124 | "paramName": "userIdMethod", 125 | "paramValue": "hash", 126 | "type": "EQUALS" 127 | } 128 | ], 129 | "valueValidators": [ 130 | { 131 | "type": "NON_EMPTY" 132 | } 133 | ] 134 | }, 135 | { 136 | "type": "TEXT", 137 | "name": "eventName", 138 | "displayName": "Event Name", 139 | "simpleValueType": true, 140 | "valueValidators": [ 141 | { 142 | "type": "NON_EMPTY" 143 | } 144 | ] 145 | }, 146 | { 147 | "type": "TEXT", 148 | "name": "eventValue", 149 | "displayName": "Event Value", 150 | "simpleValueType": true, 151 | "valueValidators": [ 152 | { 153 | "type": "NON_EMPTY" 154 | } 155 | ] 156 | } 157 | ] 158 | 159 | 160 | ___SANDBOXED_JS_FOR_WEB_TEMPLATE___ 161 | 162 | // Enter your template code here. 163 | const log = require('logToConsole'); 164 | const sendPixel = require('sendPixel'); 165 | const encodeUri = require('encodeUri'); 166 | log('data =', data); 167 | let url; 168 | // Call data.gtmOnSuccess when the tag is finished. 169 | data.gtmOnSuccess(); 170 | 171 | switch(data.userIdMethod){ 172 | case 'email': 173 | url = data.proxyUrl +"?action=trackEvent&eventName="+data.eventName+"&eventData="+data.eventValue+"&email="+ data.email ; 174 | break; 175 | case 'contactId': 176 | url = data.proxyUrl +"?action=trackEvent&eventName="+data.eventName+"&eventData="+data.eventValue+"&contactId="+ data.contactId ; 177 | break; 178 | case 'hash': 179 | url = data.proxyUrl +"?action=trackEvent&eventName="+data.eventName+"&eventData="+data.eventValue+"&hash="+ data.hash ; 180 | break; 181 | } 182 | 183 | log(url); 184 | sendPixel(url, data.gtmOnSuccess(), data.gtmOnFailure()); 185 | 186 | 187 | ___WEB_PERMISSIONS___ 188 | 189 | [ 190 | { 191 | "instance": { 192 | "key": { 193 | "publicId": "logging", 194 | "versionId": "1" 195 | }, 196 | "param": [ 197 | { 198 | "key": "environments", 199 | "value": { 200 | "type": 1, 201 | "string": "debug" 202 | } 203 | } 204 | ] 205 | }, 206 | "isRequired": true 207 | }, 208 | { 209 | "instance": { 210 | "key": { 211 | "publicId": "send_pixel", 212 | "versionId": "1" 213 | }, 214 | "param": [ 215 | { 216 | "key": "allowedUrls", 217 | "value": { 218 | "type": 1, 219 | "string": "specific" 220 | } 221 | }, 222 | { 223 | "key": "urls", 224 | "value": { 225 | "type": 2, 226 | "listItem": [ 227 | { 228 | "type": 1, 229 | "string": "https://*.cloudfunctions.net/" 230 | } 231 | ] 232 | } 233 | } 234 | ] 235 | }, 236 | "clientAnnotations": { 237 | "isEditedByUser": true 238 | }, 239 | "isRequired": true 240 | } 241 | ] 242 | 243 | 244 | ___TESTS___ 245 | 246 | scenarios: [] 247 | 248 | 249 | ___NOTES___ 250 | 251 | Created on 21.4.2021, 15:49:07 252 | 253 | 254 | -------------------------------------------------------------------------------- /GTMContainerTemplate.json: -------------------------------------------------------------------------------- 1 | { 2 | "exportFormatVersion": 2, 3 | "exportTime": "2021-04-22 14:19:55", 4 | "containerVersion": { 5 | "path": "accounts/144483319/containers/6221099/versions/0", 6 | "accountId": "144483319", 7 | "containerId": "6221099", 8 | "containerVersionId": "0", 9 | "container": { 10 | "path": "accounts/144483319/containers/6221099", 11 | "accountId": "144483319", 12 | "containerId": "6221099", 13 | "name": "377ActiveCampaignTracking", 14 | "publicId": "GTM-TPV98QR", 15 | "usageContext": [ 16 | "WEB" 17 | ], 18 | "fingerprint": "1619009677439", 19 | "tagManagerUrl": "https://tagmanager.google.com/#/container/accounts/144483319/containers/6221099/workspaces?apiLink=container" 20 | }, 21 | "tag": [ 22 | { 23 | "accountId": "144483319", 24 | "containerId": "6221099", 25 | "tagId": "31", 26 | "name": "AC - Event - Add to Cart Click", 27 | "type": "cvt_6221099_11", 28 | "parameter": [ 29 | { 30 | "type": "TEMPLATE", 31 | "key": "eventValue", 32 | "value": "{{Page URL}}" 33 | }, 34 | { 35 | "type": "TEMPLATE", 36 | "key": "contactId", 37 | "value": "{{cookie - customCookie7}}" 38 | }, 39 | { 40 | "type": "TEMPLATE", 41 | "key": "proxyUrl", 42 | "value": "https://us-central1-able-starlight-279013.cloudfunctions.net/EventTrackingActiveCampaign" 43 | }, 44 | { 45 | "type": "TEMPLATE", 46 | "key": "userIdMethod", 47 | "value": "contactId" 48 | }, 49 | { 50 | "type": "TEMPLATE", 51 | "key": "eventName", 52 | "value": "click" 53 | } 54 | ], 55 | "fingerprint": "1619099278662", 56 | "firingTriggerId": [ 57 | "13" 58 | ], 59 | "blockingTriggerId": [ 60 | "37" 61 | ], 62 | "tagFiringOption": "ONCE_PER_EVENT", 63 | "monitoringMetadata": { 64 | "type": "MAP" 65 | } 66 | }, 67 | { 68 | "accountId": "144483319", 69 | "containerId": "6221099", 70 | "tagId": "35", 71 | "name": "add cookie - acid", 72 | "type": "cvt_6221099_33", 73 | "parameter": [ 74 | { 75 | "type": "TEMPLATE", 76 | "key": "cookieDescription" 77 | }, 78 | { 79 | "type": "TEMPLATE", 80 | "key": "storageType", 81 | "value": "Add Custom Cookie" 82 | }, 83 | { 84 | "type": "TEMPLATE", 85 | "key": "cookieValue", 86 | "value": "{{url - acid}}" 87 | }, 88 | { 89 | "type": "TEMPLATE", 90 | "key": "cookieName", 91 | "value": "customCookie7" 92 | } 93 | ], 94 | "fingerprint": "1619098886742", 95 | "firingTriggerId": [ 96 | "34" 97 | ], 98 | "tagFiringOption": "ONCE_PER_EVENT", 99 | "monitoringMetadata": { 100 | "type": "MAP" 101 | } 102 | } 103 | ], 104 | "trigger": [ 105 | { 106 | "accountId": "144483319", 107 | "containerId": "6221099", 108 | "triggerId": "13", 109 | "name": "click - addToCart", 110 | "type": "CLICK", 111 | "filter": [ 112 | { 113 | "type": "CONTAINS", 114 | "parameter": [ 115 | { 116 | "type": "TEMPLATE", 117 | "key": "arg0", 118 | "value": "{{Click Text}}" 119 | }, 120 | { 121 | "type": "TEMPLATE", 122 | "key": "arg1", 123 | "value": "Add to cart" 124 | } 125 | ] 126 | } 127 | ], 128 | "fingerprint": "1619082143297" 129 | }, 130 | { 131 | "accountId": "144483319", 132 | "containerId": "6221099", 133 | "triggerId": "34", 134 | "name": "pv - acid is in URL", 135 | "type": "PAGEVIEW", 136 | "filter": [ 137 | { 138 | "type": "EQUALS", 139 | "parameter": [ 140 | { 141 | "type": "TEMPLATE", 142 | "key": "arg0", 143 | "value": "{{url - acid}}" 144 | }, 145 | { 146 | "type": "TEMPLATE", 147 | "key": "arg1", 148 | "value": "undefined" 149 | }, 150 | { 151 | "type": "BOOLEAN", 152 | "key": "negate", 153 | "value": "true" 154 | } 155 | ] 156 | } 157 | ], 158 | "fingerprint": "1619098884177" 159 | }, 160 | { 161 | "accountId": "144483319", 162 | "containerId": "6221099", 163 | "triggerId": "37", 164 | "name": "custom - acid undefined", 165 | "type": "CUSTOM_EVENT", 166 | "customEventFilter": [ 167 | { 168 | "type": "MATCH_REGEX", 169 | "parameter": [ 170 | { 171 | "type": "TEMPLATE", 172 | "key": "arg0", 173 | "value": "{{_event}}" 174 | }, 175 | { 176 | "type": "TEMPLATE", 177 | "key": "arg1", 178 | "value": ".*" 179 | } 180 | ] 181 | } 182 | ], 183 | "filter": [ 184 | { 185 | "type": "EQUALS", 186 | "parameter": [ 187 | { 188 | "type": "TEMPLATE", 189 | "key": "arg0", 190 | "value": "{{cookie - customCookie7}}" 191 | }, 192 | { 193 | "type": "TEMPLATE", 194 | "key": "arg1", 195 | "value": "undefined" 196 | } 197 | ] 198 | } 199 | ], 200 | "fingerprint": "1619099262970" 201 | } 202 | ], 203 | "variable": [ 204 | { 205 | "accountId": "144483319", 206 | "containerId": "6221099", 207 | "variableId": "32", 208 | "name": "url - acid", 209 | "type": "u", 210 | "parameter": [ 211 | { 212 | "type": "TEMPLATE", 213 | "key": "component", 214 | "value": "QUERY" 215 | }, 216 | { 217 | "type": "TEMPLATE", 218 | "key": "queryKey", 219 | "value": "acid" 220 | } 221 | ], 222 | "fingerprint": "1619098716454", 223 | "formatValue": {} 224 | }, 225 | { 226 | "accountId": "144483319", 227 | "containerId": "6221099", 228 | "variableId": "36", 229 | "name": "cookie - customCookie7", 230 | "type": "k", 231 | "parameter": [ 232 | { 233 | "type": "BOOLEAN", 234 | "key": "decodeCookie", 235 | "value": "false" 236 | }, 237 | { 238 | "type": "TEMPLATE", 239 | "key": "name", 240 | "value": "customCookie7" 241 | } 242 | ], 243 | "fingerprint": "1619098987951", 244 | "formatValue": {} 245 | } 246 | ], 247 | "builtInVariable": [ 248 | { 249 | "accountId": "144483319", 250 | "containerId": "6221099", 251 | "type": "PAGE_URL", 252 | "name": "Page URL" 253 | }, 254 | { 255 | "accountId": "144483319", 256 | "containerId": "6221099", 257 | "type": "PAGE_HOSTNAME", 258 | "name": "Page Hostname" 259 | }, 260 | { 261 | "accountId": "144483319", 262 | "containerId": "6221099", 263 | "type": "PAGE_PATH", 264 | "name": "Page Path" 265 | }, 266 | { 267 | "accountId": "144483319", 268 | "containerId": "6221099", 269 | "type": "REFERRER", 270 | "name": "Referrer" 271 | }, 272 | { 273 | "accountId": "144483319", 274 | "containerId": "6221099", 275 | "type": "EVENT", 276 | "name": "Event" 277 | }, 278 | { 279 | "accountId": "144483319", 280 | "containerId": "6221099", 281 | "type": "CLICK_URL", 282 | "name": "Click URL" 283 | }, 284 | { 285 | "accountId": "144483319", 286 | "containerId": "6221099", 287 | "type": "CLICK_TEXT", 288 | "name": "Click Text" 289 | } 290 | ], 291 | "fingerprint": "1619101195525", 292 | "tagManagerUrl": "https://tagmanager.google.com/#/versions/accounts/144483319/containers/6221099/versions/0?apiLink=version", 293 | "customTemplate": [ 294 | { 295 | "accountId": "144483319", 296 | "containerId": "6221099", 297 | "templateId": "11", 298 | "name": "ActiveCampaing Event Tracking", 299 | "fingerprint": "1619081836195", 300 | "templateData": "___INFO___\n\n{\n \"type\": \"TAG\",\n \"id\": \"cvt_temp_public_id\",\n \"version\": 1,\n \"securityGroups\": [],\n \"displayName\": \"ActiveCampaing Event Tracking\",\n \"brand\": {\n \"id\": \"brand_dummy\",\n \"displayName\": \"\",\n \"thumbnail\": \"data:image/png;base64,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\\u003d\\u003d\"\n },\n \"description\": \"This template let\\u0027s you send event tracking data via an ActiveCampaign Proxy setup on Google Cloud Functions\",\n \"containerContexts\": [\n \"WEB\"\n ]\n}\n\n\n___TEMPLATE_PARAMETERS___\n\n[\n {\n \"type\": \"TEXT\",\n \"name\": \"proxyUrl\",\n \"displayName\": \"Cloud Function Proxy URL\",\n \"simpleValueType\": true,\n \"valueValidators\": [\n {\n \"type\": \"REGEX\",\n \"args\": [\n \".*\\\\.cloudfunctions\\\\.net\\\\/.*\"\n ],\n \"errorMessage\": \"This needs to be a cloudfunctions URL\",\n \"enablingConditions\": []\n },\n {\n \"type\": \"NON_EMPTY\"\n }\n ],\n \"valueHint\": \"e.g. https://us-central1-cloud-functions-297809.cloudfunctions.net/\",\n \"help\": \"This is the Cloud Function URL your data will be sent to to proxy your request to Active Campaign\"\n },\n {\n \"type\": \"SELECT\",\n \"name\": \"userIdMethod\",\n \"displayName\": \"User Identification Method\",\n \"macrosInSelect\": false,\n \"selectItems\": [\n {\n \"value\": \"email\",\n \"displayValue\": \"Email Address\"\n },\n {\n \"value\": \"contactId\",\n \"displayValue\": \"Contact ID\"\n },\n {\n \"value\": \"hash\",\n \"displayValue\": \"User Hash\"\n }\n ],\n \"simpleValueType\": true,\n \"notSetText\": \"Choose Method...\",\n \"valueValidators\": [\n {\n \"type\": \"NON_EMPTY\"\n }\n ],\n \"help\": \"To send your event to the right user profile, we need to identify where to send the data. You can use the Email address, Contact ID or User Hash.\"\n },\n {\n \"type\": \"TEXT\",\n \"name\": \"email\",\n \"displayName\": \"Email Address\",\n \"simpleValueType\": true,\n \"enablingConditions\": [\n {\n \"paramName\": \"userIdMethod\",\n \"paramValue\": \"email\",\n \"type\": \"EQUALS\"\n }\n ],\n \"valueValidators\": [\n {\n \"type\": \"NON_EMPTY\"\n }\n ]\n },\n {\n \"type\": \"TEXT\",\n \"name\": \"contactId\",\n \"displayName\": \"Active Campaign Contact ID\",\n \"simpleValueType\": true,\n \"enablingConditions\": [\n {\n \"paramName\": \"userIdMethod\",\n \"paramValue\": \"contactId\",\n \"type\": \"EQUALS\"\n }\n ],\n \"valueValidators\": [\n {\n \"type\": \"NON_EMPTY\"\n }\n ]\n },\n {\n \"type\": \"TEXT\",\n \"name\": \"hash\",\n \"displayName\": \"Active Campaign User Hash\",\n \"simpleValueType\": true,\n \"enablingConditions\": [\n {\n \"paramName\": \"userIdMethod\",\n \"paramValue\": \"hash\",\n \"type\": \"EQUALS\"\n }\n ],\n \"valueValidators\": [\n {\n \"type\": \"NON_EMPTY\"\n }\n ]\n },\n {\n \"type\": \"TEXT\",\n \"name\": \"eventName\",\n \"displayName\": \"Event Name\",\n \"simpleValueType\": true,\n \"valueValidators\": [\n {\n \"type\": \"NON_EMPTY\"\n }\n ]\n },\n {\n \"type\": \"TEXT\",\n \"name\": \"eventValue\",\n \"displayName\": \"Event Value\",\n \"simpleValueType\": true,\n \"valueValidators\": [\n {\n \"type\": \"NON_EMPTY\"\n }\n ]\n }\n]\n\n\n___SANDBOXED_JS_FOR_WEB_TEMPLATE___\n\n// Enter your template code here.\nconst log = require('logToConsole');\nconst sendPixel = require('sendPixel');\nconst encodeUri = require('encodeUri');\nlog('data =', data);\nlet url;\n// Call data.gtmOnSuccess when the tag is finished.\ndata.gtmOnSuccess();\n\nswitch(data.userIdMethod){\n case 'email':\n url = data.proxyUrl +\"?action=trackEvent&eventName=\"+data.eventName+\"&eventData=\"+data.eventValue+\"&email=\"+ data.email ;\n break;\n case 'contactId':\n url = data.proxyUrl +\"?action=trackEvent&eventName=\"+data.eventName+\"&eventData=\"+data.eventValue+\"&contactId=\"+ data.contactId ;\n break;\n case 'hash':\n url = data.proxyUrl +\"?action=trackEvent&eventName=\"+data.eventName+\"&eventData=\"+data.eventValue+\"&hash=\"+ data.hash ;\n break;\n}\n\nlog(url);\nsendPixel(url, data.gtmOnSuccess(), data.gtmOnFailure());\n\n\n___WEB_PERMISSIONS___\n\n[\n {\n \"instance\": {\n \"key\": {\n \"publicId\": \"logging\",\n \"versionId\": \"1\"\n },\n \"param\": [\n {\n \"key\": \"environments\",\n \"value\": {\n \"type\": 1,\n \"string\": \"debug\"\n }\n }\n ]\n },\n \"isRequired\": true\n },\n {\n \"instance\": {\n \"key\": {\n \"publicId\": \"send_pixel\",\n \"versionId\": \"1\"\n },\n \"param\": [\n {\n \"key\": \"allowedUrls\",\n \"value\": {\n \"type\": 1,\n \"string\": \"specific\"\n }\n },\n {\n \"key\": \"urls\",\n \"value\": {\n \"type\": 2,\n \"listItem\": [\n {\n \"type\": 1,\n \"string\": \"https://*.cloudfunctions.net/\"\n }\n ]\n }\n }\n ]\n },\n \"clientAnnotations\": {\n \"isEditedByUser\": true\n },\n \"isRequired\": true\n }\n]\n\n\n___TESTS___\n\nscenarios: []\n\n\n___NOTES___\n\nCreated on 21.4.2021, 15:49:07\n\n\n" 301 | }, 302 | { 303 | "accountId": "144483319", 304 | "containerId": "6221099", 305 | "templateId": "33", 306 | "name": "Custom Cookie Tag", 307 | "fingerprint": "1619098814360", 308 | "templateData": "___TERMS_OF_SERVICE___\n\nBy creating or modifying this file you agree to Google Tag Manager's Community\nTemplate Gallery Developer Terms of Service available at\nhttps://developers.google.com/tag-manager/gallery-tos (or such other URL as\nGoogle may provide), as modified from time to time.\n\n\n___INFO___\n\n{\n \"displayName\": \"Custom Cookie Tag\",\n \"categories\": [\n \"ANALYTICS\",\n \"TAG_MANAGEMENT\"\n ],\n \"description\": \"This tag will help to Add or Remove a cookie\",\n \"securityGroups\": [],\n \"id\": \"cvt_temp_public_id\",\n \"type\": \"TAG\",\n \"version\": 1,\n \"brand\": {\n \"thumbnail\": \"data:image/png;base64,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\\u003d\",\n \"displayName\": \"GrowthSavvy\",\n \"id\": \"github.com_GrowthSavvy\"\n },\n \"containerContexts\": [\n \"WEB\"\n ]\n}\n\n\n___TEMPLATE_PARAMETERS___\n\n[\n {\n \"selectItems\": [\n {\n \"displayValue\": \"Add Custom Cookie\",\n \"value\": \"Add Custom Cookie\"\n },\n {\n \"displayValue\": \"Remove Custom Cookie\",\n \"value\": \"Remove Custom Cookie\"\n }\n ],\n \"displayName\": \"Add or Remove Cookie\",\n \"simpleValueType\": true,\n \"name\": \"storageType\",\n \"type\": \"SELECT\"\n },\n {\n \"selectItems\": [\n {\n \"displayValue\": \"Custom Cookie 1\",\n \"value\": \"customCookie1\"\n },\n {\n \"displayValue\": \"Custom Cookie 2\",\n \"value\": \"customCookie2\"\n },\n {\n \"displayValue\": \"Custom Cookie 3\",\n \"value\": \"customCookie3\"\n },\n {\n \"displayValue\": \"Custom Cookie 4\",\n \"value\": \"customCookie4\"\n },\n {\n \"displayValue\": \"Custom Cookie 5\",\n \"value\": \"customCookie5\"\n },\n {\n \"displayValue\": \"Custom Cookie 6\",\n \"value\": \"customCookie6\"\n },\n {\n \"displayValue\": \"Custom Cookie 7\",\n \"value\": \"customCookie7\"\n },\n {\n \"displayValue\": \"Custom Cookie 8\",\n \"value\": \"customCookie8\"\n },\n {\n \"displayValue\": \"Custom Cookie 9\",\n \"value\": \"customCookie9\"\n },\n {\n \"displayValue\": \"Custom Cookie 10\",\n \"value\": \"customCookie10\"\n }\n ],\n \"displayName\": \"Cookie Name\",\n \"simpleValueType\": true,\n \"name\": \"cookieName\",\n \"type\": \"SELECT\"\n },\n {\n \"help\": \"Enter a short description of the cookie usage\",\n \"displayName\": \"Optional: Description\",\n \"simpleValueType\": true,\n \"name\": \"cookieDescription\",\n \"type\": \"TEXT\",\n \"canBeEmptyString\": true\n },\n {\n \"enablingConditions\": [\n {\n \"paramName\": \"storageType\",\n \"type\": \"EQUALS\",\n \"paramValue\": \"Add Custom Cookie\"\n }\n ],\n \"valueValidators\": [\n {\n \"type\": \"NON_EMPTY\"\n }\n ],\n \"displayName\": \"Cookie value\",\n \"simpleValueType\": true,\n \"name\": \"cookieValue\",\n \"type\": \"TEXT\"\n }\n]\n\n\n___SANDBOXED_JS_FOR_WEB_TEMPLATE___\n\nconst storageType = data.storageType;\nconst customCookieName = data.cookieName;\nconst customCookieValue = data.cookieValue;\nconst queryPermission = require('queryPermission');\nconst setCookie = require('setCookie');\nconst getCookieValues = require('getCookieValues');\n\nvar options = {\n\t'domain': 'auto',\n 'path': 'auto',\n 'max-age': 60*60*24*365,\n 'secure': true\n};\n\nif(storageType == 'Add Custom Cookie'){\n if(queryPermission('get_cookies', customCookieName) && getCookieValues(customCookieName)[0] !== customCookieValue){\n if (queryPermission('set_cookies', customCookieName, options)) {\n setCookie(customCookieName, customCookieValue, options);\n }\n }\n}\nelse if(storageType == 'Remove Custom Cookie'){\n if(queryPermission('get_cookies', customCookieName) && getCookieValues(customCookieName)[0] !== undefined){\n options = {\n 'domain': 'auto',\n 'path': 'auto',\n 'max-age': 0,\n 'secure': true\n };\n if (queryPermission('set_cookies', customCookieName, options)) {\n setCookie(customCookieName, '', options);\n }\n }\n}\n\n// Call data.gtmOnSuccess when the tag is finished.\ndata.gtmOnSuccess();\n\n\n___WEB_PERMISSIONS___\n\n[\n {\n \"instance\": {\n \"key\": {\n \"publicId\": \"set_cookies\",\n \"versionId\": \"1\"\n },\n \"param\": [\n {\n \"key\": \"allowedCookies\",\n \"value\": {\n \"type\": 2,\n \"listItem\": [\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie1\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie1\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie2\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie2\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie3\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie3\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie4\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie4\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie5\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie5\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie6\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie6\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie7\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie7\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie8\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie8\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie9\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie9\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie10\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ]\n },\n {\n \"type\": 3,\n \"mapKey\": [\n {\n \"type\": 1,\n \"string\": \"name\"\n },\n {\n \"type\": 1,\n \"string\": \"domain\"\n },\n {\n \"type\": 1,\n \"string\": \"path\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"session\"\n }\n ],\n \"mapValue\": [\n {\n \"type\": 1,\n \"string\": \"customCookie10\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"*\"\n },\n {\n \"type\": 1,\n \"string\": \"secure\"\n },\n {\n \"type\": 1,\n \"string\": \"non_session\"\n }\n ]\n }\n ]\n }\n }\n ]\n },\n \"clientAnnotations\": {\n \"isEditedByUser\": true\n },\n \"isRequired\": true\n },\n {\n \"instance\": {\n \"key\": {\n \"publicId\": \"get_cookies\",\n \"versionId\": \"1\"\n },\n \"param\": [\n {\n \"key\": \"cookieAccess\",\n \"value\": {\n \"type\": 1,\n \"string\": \"any\"\n }\n }\n ]\n },\n \"clientAnnotations\": {\n \"isEditedByUser\": true\n },\n \"isRequired\": true\n }\n]\n\n\n___TESTS___\n\nscenarios: []\n\n\n___NOTES___\n\nCreated on 24.06.2019, 20:21:44\n\n\n", 309 | "galleryReference": { 310 | "host": "github.com", 311 | "owner": "GrowthSavvy", 312 | "repository": "CustomCookieTag", 313 | "version": "60c412501013211658307b68c64a8093e1820ba1", 314 | "signature": "518fa174a69c4678653087e2699f304f683fbb2600a197ba66ab3fb64b0519e9" 315 | } 316 | } 317 | ] 318 | } 319 | } --------------------------------------------------------------------------------