{
    "exportFormatVersion": 2,
    "exportTime": "2026-06-25 08:42:13",
    "containerVersion": {
        "path": "accounts/58687/containers/256279490/versions/0",
        "accountId": "58687",
        "containerId": "256279490",
        "containerVersionId": "0",
        "container": {
            "path": "accounts/58687/containers/256279490",
            "accountId": "58687",
            "containerId": "256279490",
            "name": "Seznam SEM Demo",
            "publicId": "GTM-5WT6RZ2R",
            "usageContext": [
                "WEB"
            ],
            "fingerprint": "1782219617166",
            "tagManagerUrl": "https://tagmanager.google.com/#/container/accounts/58687/containers/256279490/workspaces?apiLink=container",
            "features": {
                "supportUserPermissions": true,
                "supportEnvironments": true,
                "supportWorkspaces": true,
                "supportGtagConfigs": false,
                "supportBuiltInVariables": true,
                "supportClients": false,
                "supportFolders": true,
                "supportTags": true,
                "supportTemplates": true,
                "supportTriggers": true,
                "supportVariables": true,
                "supportVersions": true,
                "supportZones": true,
                "supportTransformations": false
            },
            "tagIds": [
                "GTM-5WT6RZ2R"
            ]
        },
        "tag": [
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "8",
                "name": "Consent - Default State",
                "type": "cvt_256279490_7",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "default_ad_user_data",
                        "value": "denied"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "loadConsentVariable",
                        "value": "{{Consent - Current State}}"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "adStorageAsMarketing",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "default_security_storage",
                        "value": "denied"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "default_functionality_storage",
                        "value": "denied"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "action",
                        "value": "default"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "default_analytics_storage",
                        "value": "denied"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "default_personalization_storage",
                        "value": "denied"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "source",
                        "value": "variable"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "default_ad_storage",
                        "value": "denied"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "default_ad_personalization",
                        "value": "denied"
                    }
                ],
                "fingerprint": "1782216061337",
                "firingTriggerId": [
                    "2147479572"
                ],
                "parentFolderId": "4",
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "9",
                "name": "Consent - Orestbida",
                "type": "html",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "html",
                        "value": "<script src=\"https://www.sabatka.net/consent/script.js\"></script>\n<link rel=\"stylesheet\" href=\"https://www.sabatka.net/consent/layout.css\">\n<script>\n(function(){\n\nvar cookieParser = {{Consent - Cookie Parser}};\nwindow.dataLayer = window.dataLayer || [];\n\nwindow.CookieConsent.run({\n    guiOptions: {\n        consentModal: {\n            layout: \"cloud\",\n            position: \"middle center\",\n            equalWeightButtons: true,\n            flipButtons: false\n        },\n        preferencesModal: {\n            layout: \"box\",\n            position: \"right\",\n            equalWeightButtons: true,\n            flipButtons: false\n        }\n    },\n    categories: {\n        necessary: {\n            readOnly: true\n        },\n        analytics: {},\n        marketing: {}\n    },\n    language: {\n        default: \"cs\",\n        autoDetect: \"browser\",\n        translations: {\n            cs: {\n                consentModal: {\n                    title: \"Můžeme používat cookies\",\n                    description: \"Pro zlepšení chodu a obsahu webu sbíráme údaje o jeho provozu a vašem chování. S vaším souhlasem pak můžeme spouštět také marketingové skripty a vybrané osobní údaje předávat marketingovým partnerům, aby vám nabídky co nejlépe seděly.\",\n                    closeIconLabel: \"X\",\n                    acceptAllBtn: \"Povolit vše\",\n                    acceptNecessaryBtn: \"Povolit pouze nezbytné\",\n                    showPreferencesBtn: \"Nastavení\",\n                    footer: \"<a href=\\\"/cs/privacy-policy/\\\">Zpracování osobních údajů</a>\"\n                },\n                preferencesModal: {\n                    title: \"Nastavení zpracování údajů\",\n                    closeIconLabel: \"Zavřít\",\n                    acceptAllBtn: \"Povolit vše\",\n                    acceptNecessaryBtn: \"Povolit pouze nezbytné\",\n                    savePreferencesBtn: \"Uložit\",\n                    serviceCounterLabel: \"Služba|Služby\",\n                    sections: [\n                        {\n                            title: \"Nezbytně nutné <span class=\\\"pm__badge\\\">Vždy povoleno</span>\",\n                            description: \"Některé soubory cookie a další úložiště jsou vyžadovány, aby byla zajištěna základní funkčnost. Bez těchto cookies nebude web fungovat správně. Ve výchozím nastavení jsou povoleny a nelze je zakázat.\",\n                            linkedCategory: \"necessary\"\n                        },\n                        {\n                            title: \"Analytické účely\",\n                            description: \"Analytické soubory cookie nám pomáhají vylepšovat naše webové stránky shromažďováním informací a podáváním zpráv o jeho používání. Pro účely vyhodnocování výkonnosti webu a marketingu můžeme také předávat analytickým platformám pseudonymizované osobní údaje.\",\n                            linkedCategory: \"analytics\"\n                        },\n                        {\n                            title: \"Marketingové účely\",\n                            description: \"S tímto souhlasem můžeme využívat cookies, které nám pomáhají personalizovat marketingové kampaně a vyhodnocovat jejich výkonnost. Pro účely cílení a vyhodnocení marketingu můžeme také předávat reklamním platformám pseudonymizované osobní údaje. Některé cookies, které využíváme, mohou být sdílené napříč webovými stránkami. Cookies mohou sloužit k personalizaci reklam na základě chování na webu.\",\n                            linkedCategory: \"marketing\"\n                        },\n                        {\n                            title: \"Více informací\",\n                            description: \"V případě jakýchkoli dotazů týkajících se mé politiky ohledně souborů cookie a vašich možností výběru prosím <a class=\\\"cc__link\\\" href=\\\"/cs/kontakt/\\\">kontaktujte mě</a>.\"\n                        }\n                    ]\n                }\n            },\n            en: {\n                consentModal: {\n                    title: \"May we use cookies?\",\n                    description: \"To improve our website’s performance and content, we collect data about its traffic and your behaviour. With your consent, we may also run marketing scripts and share selected personal data with marketing partners so our offers fit you best.\",\n                    closeIconLabel: \"X\",\n                    acceptAllBtn: \"Allow all\",\n                    acceptNecessaryBtn: \"Allow necessary only\",\n                    showPreferencesBtn: \"Preferences\",\n                    footer: \"<a href=\\\"/en/privacy-policy/\\\">Personal Data Processing</a>\"\n                },\n                preferencesModal: {\n                    title: \"Data processing settings\",\n                    closeIconLabel: \"Close\",\n                    acceptAllBtn: \"Allow all\",\n                    acceptNecessaryBtn: \"Allow necessary only\",\n                    savePreferencesBtn: \"Save\",\n                    serviceCounterLabel: \"Service|Services\",\n                    sections: [\n                        {\n                            title: \"Strictly necessary <span class=\\\"pm__badge\\\">Always enabled</span>\",\n                            description: \"Certain cookies and storage are required for basic functionality. Without them the site will not work properly. They are enabled by default and cannot be disabled.\",\n                            linkedCategory: \"necessary\"\n                        },\n                        {\n                            title: \"Analytics purposes\",\n                            description: \"Analytics cookies help us improve our website by collecting information and reporting on its usage. For site and marketing performance evaluation, we may also share pseudonymised personal data with analytics platforms.\",\n                            linkedCategory: \"analytics\"\n                        },\n                        {\n                            title: \"Marketing purposes\",\n                            description: \"With this consent, we may use cookies that help us tailor marketing campaigns and measure their performance. For targeting and evaluation, pseudonymised personal data may be shared with advertising platforms. Some cookies we use can be shared across websites, and they may personalise ads based on your site behaviour.\",\n                            linkedCategory: \"marketing\"\n                        },\n                        {\n                            title: \"More information\",\n                            description: \"If you have any questions about my cookie policy and your choices, please <a class=\\\"cc__link\\\" href=\\\"/cs/kontakt/\\\">contact me</a>.\"\n                        }\n                    ]\n                }\n            }\n\n        }\n    },\n    onModalShow: function(modalName) {\n      window.dataLayer.push({\n        'event': 'consent_modal_show'\n      });\n    },\n    onFirstConsent: function(cookie) {\n      var consent = cookieParser(cookie.cookie);\n      window.dataLayer.push({\n        'consent': consent,\n        'event': 'consent_granted'\n      });\n    },\n    onChange: function(cookie, changedCategories, changedServices) {\n      var consent = cookieParser(cookie.cookie);\n      window.dataLayer.push({\n        'consent': cookieParser(cookie.cookie),\n        'consent_change': {\n          'categories': changedCategories,\n          'services': changedServices\n        },\n        'event': 'consent_change'\n      });\n    },\n});\n\nvar getPageLanguage = function() {\n  // Get the first segment of the path\n  var path = window.location.pathname.toLowerCase(); // e.g. \"/en/privacy-policy/\"\n  var segments = path.split('/'); // [\"en\", \"privacy-policy\"]\n  var lang = segments[1] || '';\n  \n  return /^[a-z]{2}$/i.test(lang) ? lang : 'cs';\n}\nwindow.CookieConsent.setLanguage(getPageLanguage(), true);\n  \n})(); // anonymous function\n</script>"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "supportDocumentWrite",
                        "value": "false"
                    }
                ],
                "fingerprint": "1782216089699",
                "firingTriggerId": [
                    "2147479572"
                ],
                "parentFolderId": "4",
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "11",
                "name": "Consent - Update State",
                "type": "cvt_256279490_7",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "loadConsentVariable",
                        "value": "{{Consent - Current State}}"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "adStorageAsMarketing",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "action",
                        "value": "update"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "source",
                        "value": "variable"
                    }
                ],
                "fingerprint": "1782216061337",
                "firingTriggerId": [
                    "10"
                ],
                "parentFolderId": "4",
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "23",
                "name": "GA4 - Config",
                "type": "googtag",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "tagId",
                        "value": "{{GA4 - ID}}"
                    },
                    {
                        "type": "LIST",
                        "key": "configSettingsTable",
                        "list": [
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "send_page_view"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "false"
                                    }
                                ]
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233611621",
                "firingTriggerId": [
                    "2147479573"
                ],
                "parentFolderId": "44",
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "monitoringMetadataTagNameKey": "name",
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "27",
                "name": "GA4 - Contact",
                "type": "gaawe",
                "priority": {
                    "type": "INTEGER",
                    "value": "100"
                },
                "parameter": [
                    {
                        "type": "BOOLEAN",
                        "key": "sendEcommerceData",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "eventName",
                        "value": "contact"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "measurementIdOverride",
                        "value": "{{GA4 - ID}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "eventSettingsVariable",
                        "value": "{{GA4 - Shared Params}}"
                    }
                ],
                "fingerprint": "1782233611620",
                "firingTriggerId": [
                    "41"
                ],
                "parentFolderId": "44",
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "monitoringMetadataTagNameKey": "name",
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "29",
                "name": "GA4 - Ecommerce",
                "type": "gaawe",
                "parameter": [
                    {
                        "type": "BOOLEAN",
                        "key": "sendEcommerceData",
                        "value": "false"
                    },
                    {
                        "type": "LIST",
                        "key": "eventSettingsTable",
                        "list": [
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "items"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Ecommerce - Items}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "currency"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Page - Currency}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "value"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Ecommerce - Value}}"
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "eventName",
                        "value": "{{Event}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "measurementIdOverride",
                        "value": "{{GA4 - ID}}"
                    }
                ],
                "fingerprint": "1782233611622",
                "firingTriggerId": [
                    "14",
                    "20",
                    "15",
                    "21",
                    "17",
                    "19",
                    "18",
                    "40"
                ],
                "parentFolderId": "44",
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "monitoringMetadataTagNameKey": "name",
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "38",
                "name": "GA4 - Ecommerce - Purchase",
                "type": "gaawe",
                "parameter": [
                    {
                        "type": "BOOLEAN",
                        "key": "sendEcommerceData",
                        "value": "false"
                    },
                    {
                        "type": "LIST",
                        "key": "eventSettingsTable",
                        "list": [
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "items"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Ecommerce - Items}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "currency"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Page - Currency}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "value"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Ecommerce - Value}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "customer_type"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{User - Customer Type}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "transaction_id"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Transaction - ID}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "coupon"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Transaction - Coupon}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "shipping"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Transaction - Shipping}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "tax"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Transaction - Tax}}"
                                    }
                                ]
                            },
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "items"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Ecommerce - Items}}"
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "eventName",
                        "value": "{{Event}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "measurementIdOverride",
                        "value": "{{GA4 - ID}}"
                    }
                ],
                "fingerprint": "1782233611622",
                "firingTriggerId": [
                    "16"
                ],
                "parentFolderId": "44",
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "monitoringMetadataTagNameKey": "name",
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "57",
                "name": "Seznam SEM - Page View",
                "type": "cvt_T9C52",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "eventName",
                        "value": "PageView"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "currency",
                        "value": "CZK"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "id",
                        "value": "{{Seznam SEM - ID}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "contentType",
                        "value": "product"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "usingConsentModeV2",
                        "value": "true"
                    }
                ],
                "fingerprint": "1782372893589",
                "firingTriggerId": [
                    "39"
                ],
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "60",
                "name": "Seznam SEM - View Content",
                "type": "cvt_T9C52",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "eventName",
                        "value": "ViewContent"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "currency",
                        "value": "CZK"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "id",
                        "value": "{{Seznam SEM - ID}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "contentType",
                        "value": "product"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "usingConsentModeV2",
                        "value": "true"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "products",
                        "value": "{{Ecommerce - Items}}"
                    }
                ],
                "fingerprint": "1782373046575",
                "firingTriggerId": [
                    "19"
                ],
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "61",
                "name": "GA4 - Page View",
                "type": "gaawe",
                "priority": {
                    "type": "INTEGER",
                    "value": "100"
                },
                "parameter": [
                    {
                        "type": "BOOLEAN",
                        "key": "sendEcommerceData",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "eventName",
                        "value": "page_view"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "measurementIdOverride",
                        "value": "{{GA4 - ID}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "eventSettingsVariable",
                        "value": "{{GA4 - Shared Params}}"
                    }
                ],
                "fingerprint": "1782373431600",
                "firingTriggerId": [
                    "39"
                ],
                "parentFolderId": "44",
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "monitoringMetadataTagNameKey": "name",
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "64",
                "name": "Seznam SEM - Purchase",
                "type": "cvt_T9C52",
                "parameter": [
                    {
                        "type": "LIST",
                        "key": "customParams",
                        "list": [
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "name",
                                        "value": "shipping"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "value",
                                        "value": "120"
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "eventName",
                        "value": "Purchase"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "reviewEmail",
                        "value": "{{Seznam SEM - Review Email}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "currency",
                        "value": "CZK"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "id",
                        "value": "{{Seznam SEM - ID}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "contentType",
                        "value": "product"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "user",
                        "value": "{{User}}"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "usingConsentModeV2",
                        "value": "true"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "products",
                        "value": "{{Ecommerce - Items}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "order",
                        "value": "{{Transaction}}"
                    }
                ],
                "fingerprint": "1782375051817",
                "firingTriggerId": [
                    "16"
                ],
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "tagId": "65",
                "name": "Seznam SEM - Contact",
                "type": "cvt_T9C52",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "eventName",
                        "value": "Contact"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "currency",
                        "value": "CZK"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "id",
                        "value": "{{Seznam SEM - ID}}"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "contentType",
                        "value": "product"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "user",
                        "value": "{{User}}"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "usingConsentModeV2",
                        "value": "true"
                    }
                ],
                "fingerprint": "1782374447400",
                "firingTriggerId": [
                    "41"
                ],
                "tagFiringOption": "ONCE_PER_EVENT",
                "monitoringMetadata": {
                    "type": "MAP"
                },
                "consentSettings": {
                    "consentStatus": "NOT_NEEDED"
                }
            }
        ],
        "trigger": [
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "10",
                "name": "Consent - Update Event",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "MATCH_REGEX",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "consent_user_updated"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782216215865",
                "parentFolderId": "4"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "13",
                "name": "Consent - Modal Show",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "consent_modal_show"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233667708",
                "parentFolderId": "4"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "14",
                "name": "Ecommerce - Add To Cart",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "add_to_cart"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660911",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "15",
                "name": "Ecommerce - Promo Click",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "productClick"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660912",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "16",
                "name": "Ecommerce - Purchase",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "purchase"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660912",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "17",
                "name": "Ecommerce - View Cart",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "view_cart"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660912",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "18",
                "name": "Ecommerce - View Item List",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "view_item_list"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660913",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "19",
                "name": "Ecommerce - View Item",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "view_item"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660914",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "20",
                "name": "Ecommerce - Begin Checkout",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "begin_checkout"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660914",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "21",
                "name": "Ecommerce - Select Item",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "select_item"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660914",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "39",
                "name": "Page - View",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "page_view_event"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233739128",
                "parentFolderId": "46"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "40",
                "name": "Ecommerce - View Promotion",
                "type": "CUSTOM_EVENT",
                "customEventFilter": [
                    {
                        "type": "EQUALS",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{_event}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "view_promotion"
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233660914",
                "parentFolderId": "45"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "triggerId": "41",
                "name": "Contact",
                "type": "LINK_CLICK",
                "filter": [
                    {
                        "type": "MATCH_REGEX",
                        "parameter": [
                            {
                                "type": "TEMPLATE",
                                "key": "arg0",
                                "value": "{{Click URL}}"
                            },
                            {
                                "type": "TEMPLATE",
                                "key": "arg1",
                                "value": "^(mailto|calto|tel):"
                            },
                            {
                                "type": "BOOLEAN",
                                "key": "ignore_case",
                                "value": "true"
                            }
                        ]
                    }
                ],
                "waitForTags": {
                    "type": "BOOLEAN",
                    "value": "false"
                },
                "checkValidation": {
                    "type": "BOOLEAN",
                    "value": "false"
                },
                "waitForTagsTimeout": {
                    "type": "TEMPLATE",
                    "value": "2000"
                },
                "uniqueTriggerId": {
                    "type": "TEMPLATE"
                },
                "fingerprint": "1782233739130",
                "parentFolderId": "46"
            }
        ],
        "variable": [
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "5",
                "name": "Consent - Cookie Parser",
                "type": "jsm",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "javascript",
                        "value": "function() {\n  return function(cookie) {\n    var consent = {};\n    if (!cookie || !cookie.categories) return consent;\n    \n    var categories = cookie.categories;\n\n\n    if (categories.indexOf('necessary') > -1) consent.functionality_storage = 'granted';\n    if (categories.indexOf('analytics') > -1) consent.analytics_storage = 'granted';\n    if (categories.indexOf('marketing') > -1) {\n      consent.ad_storage = 'granted';\n      consent.ad_personalization = 'granted';\n      consent.ad_user_data = 'granted';\n    }\n    \n  \n    return consent;\n  }\n}"
                    }
                ],
                "fingerprint": "1782216061336",
                "parentFolderId": "4",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "6",
                "name": "Consent - Current State",
                "type": "jsm",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "javascript",
                        "value": "function() {\n  \n  var cookieGet = function(name) {\n      var nameEQ = name + \"=\";\n      var ca = document.cookie.split(';');\n      for(var i=0;i < ca.length;i++) {\n        var c = ca[i];\n        while (c.charAt(0)==' ') c = c.substring(1,c.length);\n        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\n      }\n    return null;\n  };\n  \n  var cookie = cookieGet('cc_cookie');\n  if (!cookie) return {};\n  \n  cookie = JSON.parse(decodeURIComponent(cookie));\n  return {{Consent - Cookie Parser}}(cookie);\n}"
                    }
                ],
                "fingerprint": "1782216061336",
                "parentFolderId": "4",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "22",
                "name": "GA4 - ID",
                "type": "c",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "value",
                        "value": "G-JT0HPHESZX"
                    }
                ],
                "fingerprint": "1782233611623",
                "parentFolderId": "44",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "24",
                "name": "Page - Type",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "page.type"
                    }
                ],
                "fingerprint": "1782233739129",
                "parentFolderId": "46",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "25",
                "name": "GA4 - Shared Params",
                "type": "gtes",
                "parameter": [
                    {
                        "type": "LIST",
                        "key": "eventSettingsTable",
                        "list": [
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameter",
                                        "value": "content_type"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "parameterValue",
                                        "value": "{{Page - Type}}"
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "type": "LIST",
                        "key": "userProperties",
                        "list": [
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "name",
                                        "value": "unique_user_id"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "value",
                                        "value": "{{User - ID}}"
                                    }
                                ]
                            }
                        ]
                    }
                ],
                "fingerprint": "1782233611624",
                "parentFolderId": "44"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "26",
                "name": "User - ID",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "user.id"
                    }
                ],
                "fingerprint": "1782374155750",
                "parentFolderId": "46",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "28",
                "name": "User - Email",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "user.email"
                    }
                ],
                "fingerprint": "1782373790218",
                "parentFolderId": "46",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "30",
                "name": "Page - Currency",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "page.currencyCode"
                    }
                ],
                "fingerprint": "1782233739130",
                "parentFolderId": "46",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "31",
                "name": "Ecommerce - Value",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "ecommerce.value"
                    }
                ],
                "fingerprint": "1782233660915",
                "parentFolderId": "45",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "32",
                "name": "Ecommerce - Items",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "ecommerce.items"
                    }
                ],
                "fingerprint": "1782233660915",
                "parentFolderId": "45",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "33",
                "name": "User - Customer Type",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "user.segment"
                    }
                ],
                "fingerprint": "1782233739130",
                "parentFolderId": "46",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "34",
                "name": "Transaction - ID",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "ecommerce.transaction_id"
                    }
                ],
                "fingerprint": "1782233660915",
                "parentFolderId": "45",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "35",
                "name": "Transaction - Coupon",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "ecommerce.coupon"
                    }
                ],
                "fingerprint": "1782233660915",
                "parentFolderId": "45",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "36",
                "name": "Transaction - Shipping",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "ecommerce.shipping"
                    }
                ],
                "fingerprint": "1782233660916",
                "parentFolderId": "45",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "37",
                "name": "Transaction - Tax",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "ecommerce.tax"
                    }
                ],
                "fingerprint": "1782233660916",
                "parentFolderId": "45",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "42",
                "name": "Transaction",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "ecommerce"
                    }
                ],
                "fingerprint": "1782233660914",
                "parentFolderId": "45",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "56",
                "name": "Seznam SEM - ID",
                "type": "c",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "value",
                        "value": "XXXXXXXXXXXXXXX"
                    }
                ],
                "fingerprint": "1782376916509",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "62",
                "name": "Consent - Send Zbozi Review Mail",
                "type": "c",
                "parameter": [
                    {
                        "type": "TEMPLATE",
                        "key": "value",
                        "value": "granted"
                    }
                ],
                "fingerprint": "1782373471926",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "63",
                "name": "Seznam SEM - Review Email",
                "type": "smm",
                "parameter": [
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "input",
                        "value": "{{Consent - Send Zbozi Review Mail}}"
                    },
                    {
                        "type": "LIST",
                        "key": "map",
                        "list": [
                            {
                                "type": "MAP",
                                "map": [
                                    {
                                        "type": "TEMPLATE",
                                        "key": "key",
                                        "value": "granted"
                                    },
                                    {
                                        "type": "TEMPLATE",
                                        "key": "value",
                                        "value": "{{User - Email}}"
                                    }
                                ]
                            }
                        ]
                    }
                ],
                "fingerprint": "1782373695431",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "66",
                "name": "User - Phone",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "user.phone"
                    }
                ],
                "fingerprint": "1782374174215",
                "parentFolderId": "46",
                "formatValue": {}
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "variableId": "67",
                "name": "User",
                "type": "v",
                "parameter": [
                    {
                        "type": "INTEGER",
                        "key": "dataLayerVersion",
                        "value": "2"
                    },
                    {
                        "type": "BOOLEAN",
                        "key": "setDefaultValue",
                        "value": "false"
                    },
                    {
                        "type": "TEMPLATE",
                        "key": "name",
                        "value": "user"
                    }
                ],
                "fingerprint": "1782374186214",
                "parentFolderId": "46",
                "formatValue": {}
            }
        ],
        "folder": [
            {
                "accountId": "58687",
                "containerId": "256279490",
                "folderId": "4",
                "name": "✅Consent",
                "fingerprint": "1782216061336"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "folderId": "44",
                "name": "🟧Google Analytics",
                "fingerprint": "1782233610077"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "folderId": "45",
                "name": "🛒Ecommerce",
                "fingerprint": "1782233634169"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "folderId": "46",
                "name": "⚙️Core",
                "fingerprint": "1782233727120"
            }
        ],
        "builtInVariable": [
            {
                "accountId": "58687",
                "containerId": "256279490",
                "type": "EVENT",
                "name": "Event"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "type": "CLICK_URL",
                "name": "Click URL"
            }
        ],
        "fingerprint": "1782376933595",
        "tagManagerUrl": "https://tagmanager.google.com/#/versions/accounts/58687/containers/256279490/versions/0?apiLink=version",
        "customTemplate": [
            {
                "accountId": "58687",
                "containerId": "256279490",
                "templateId": "7",
                "name": "Consent - Default State and Update",
                "fingerprint": "1782216061337",
                "templateData": "___INFO___\n\n{\n  \"type\": \"TAG\",\n  \"id\": \"cvt_temp_public_id\",\n  \"version\": 1,\n  \"securityGroups\": [],\n  \"displayName\": \"Consent - Default State and Update\",\n  \"brand\": {\n    \"id\": \"brand_dummy\",\n    \"displayName\": \"\",\n    \"thumbnail\": \"data:image/png;base64,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\"\n  },\n  \"description\": \"Set or update consent state of GTM\",\n  \"containerContexts\": [\n    \"WEB\"\n  ]\n}\n\n\n___TEMPLATE_PARAMETERS___\n\n[\n  {\n    \"type\": \"SELECT\",\n    \"name\": \"action\",\n    \"displayName\": \"Consent Action\",\n    \"macrosInSelect\": false,\n    \"selectItems\": [\n      {\n        \"value\": \"default\",\n        \"displayValue\": \"Default\"\n      },\n      {\n        \"value\": \"update\",\n        \"displayValue\": \"Update\"\n      }\n    ],\n    \"simpleValueType\": true,\n    \"alwaysInSummary\": true,\n    \"defaultValue\": \"default\"\n  },\n  {\n    \"type\": \"GROUP\",\n    \"name\": \"consentSource\",\n    \"displayName\": \"Consent Source\",\n    \"groupStyle\": \"ZIPPY_OPEN\",\n    \"subParams\": [\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"source\",\n        \"displayName\": \"Consent state source\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"datalayer\",\n            \"displayValue\": \"Data Layer\"\n          },\n          {\n            \"value\": \"variable\",\n            \"displayValue\": \"From variable\"\n          },\n          {\n            \"value\": \"none\",\n            \"displayValue\": \"None\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"defaultValue\": \"variable\"\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"loadConsentVariable\",\n        \"displayName\": \"GTM Variable\",\n        \"macrosInSelect\": true,\n        \"selectItems\": [],\n        \"simpleValueType\": true,\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"source\",\n            \"paramValue\": \"variable\",\n            \"type\": \"EQUALS\"\n          }\n        ],\n        \"valueValidators\": [\n          {\n            \"type\": \"NON_EMPTY\"\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"type\": \"GROUP\",\n    \"name\": \"defaultState\",\n    \"displayName\": \"Consent Default States\",\n    \"groupStyle\": \"ZIPPY_OPEN\",\n    \"subParams\": [\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"default_functionality_storage\",\n        \"displayName\": \"functionality_storage\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"denied\",\n            \"displayValue\": \"denied\"\n          },\n          {\n            \"value\": \"granted\",\n            \"displayValue\": \"granted\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"defaultValue\": \"denied\",\n        \"alwaysInSummary\": true\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"default_analytics_storage\",\n        \"displayName\": \"analytics_storage\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"denied\",\n            \"displayValue\": \"denied\"\n          },\n          {\n            \"value\": \"granted\",\n            \"displayValue\": \"granted\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"defaultValue\": \"denied\",\n        \"alwaysInSummary\": true\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"default_ad_storage\",\n        \"displayName\": \"ad_storage\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"denied\",\n            \"displayValue\": \"denied\"\n          },\n          {\n            \"value\": \"granted\",\n            \"displayValue\": \"granted\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"defaultValue\": \"denied\",\n        \"alwaysInSummary\": true\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"default_ad_user_data\",\n        \"displayName\": \"ad_user_data\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"denied\",\n            \"displayValue\": \"denied\"\n          },\n          {\n            \"value\": \"granted\",\n            \"displayValue\": \"granted\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"alwaysInSummary\": true,\n        \"defaultValue\": \"denied\"\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"default_ad_personalization\",\n        \"displayName\": \"ad_personalization\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"denied\",\n            \"displayValue\": \"denied\"\n          },\n          {\n            \"value\": \"granted\",\n            \"displayValue\": \"granted\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"alwaysInSummary\": true,\n        \"defaultValue\": \"denied\"\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"default_personalization_storage\",\n        \"displayName\": \"personalization_storage\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"denied\",\n            \"displayValue\": \"denied\"\n          },\n          {\n            \"value\": \"granted\",\n            \"displayValue\": \"granted\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"defaultValue\": \"denied\",\n        \"alwaysInSummary\": true\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"default_security_storage\",\n        \"displayName\": \"security_storage\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"denied\",\n            \"displayValue\": \"denied\"\n          },\n          {\n            \"value\": \"granted\",\n            \"displayValue\": \"granted\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"defaultValue\": \"denied\",\n        \"alwaysInSummary\": true\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"default_waitForUpdates\",\n        \"displayName\": \"Wait for update\",\n        \"simpleValueType\": true,\n        \"alwaysInSummary\": true,\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"action\",\n            \"paramValue\": \"default\",\n            \"type\": \"EQUALS\"\n          }\n        ]\n      }\n    ],\n    \"enablingConditions\": [\n      {\n        \"paramName\": \"action\",\n        \"paramValue\": \"default\",\n        \"type\": \"EQUALS\"\n      }\n    ]\n  },\n  {\n    \"type\": \"CHECKBOX\",\n    \"name\": \"adStorageAsMarketing\",\n    \"checkboxText\": \"Use ad_storage consent as all ad_* consents\",\n    \"simpleValueType\": true\n  }\n]\n\n\n___SANDBOXED_JS_FOR_WEB_TEMPLATE___\n\nconst setDefaultConsentState = require('setDefaultConsentState');\nconst copyFromDataLayer = require('copyFromDataLayer');\nconst copyFromWindow = require('copyFromWindow');\nconst updateConsentState = require('updateConsentState');\nconst log = require('logToConsole');\nconst getCookie = require('getCookieValues');\nconst fromBase64 = require('fromBase64');\nconst JSON = require('JSON');\nconst getType = require('getType');\nconst createQueue = require('createQueue');\n\n\nlet consent = {};\nlet loadedConsent = {};\nlet allowedValues = ['ad_storage', 'ad_user_data', 'ad_personalization', 'analytics_storage', 'functionality_storage', 'security_storage', 'personalization_storage', 'wait_for_update', 'region'];\n\n\nconst getState = function(state) {\n  if (state === 'granted' || state === 'denied') return state;\n  return !!state ? 'granted' : 'denied';\n};\n\n\n\nconst clearConsentObject = function(consents) {\n  let res = {};\n  \n  for (const consentName in consents) {\n    if (allowedValues.indexOf(consentName) > -1) {\n      res[consentName] = getState(consents[consentName]);\n    } else if (consentName === 'marketing_storage') {\n      res.ad_storage = getState(consents[consentName]);\n    }\n  }\n  return res;\n};\n\n\n\nconst getConsentFromDataLayer = function() {\n  const event = copyFromDataLayer('event');\n  if (event === 'gtm.init_consent') {\n    var dl = copyFromWindow('dataLayer');\n    for (let i = dl.length - 1; i >= 0; i--) {\n      if (dl[i].consent) {\n        return dl[i].consent;\n      }\n    }\n    return {};\n  } else {\n    return copyFromDataLayer('consent') || {};\n  }\n};\n\n\n\nif (data.source === 'datalayer') {\n  loadedConsent = getConsentFromDataLayer();\n  loadedConsent = clearConsentObject(loadedConsent);\n} else if (data.source === 'variable' && data.loadConsentVariable) {\n  loadedConsent = clearConsentObject(data.loadConsentVariable);\n}\n\n\nif (data.action === 'default') {\n  consent.ad_storage = loadedConsent.ad_storage || data.default_ad_storage;\n  consent.analytics_storage = loadedConsent.analytics_storage || data.default_analytics_storage;\n  consent.functionality_storage = loadedConsent.functionality_storage || data.default_functionality_storage;\n  consent.personalization_storage = loadedConsent.personalization_storage || data.default_personalization_storage;\n  consent.security_storage = loadedConsent.security_storage || data.default_security_storage;\n  \n  if (data.adStorageAsMarketing) {\n    consent.ad_user_data = loadedConsent.ad_storage;\n    consent.ad_personalization = loadedConsent.ad_storage;\n  } else {\n    consent.ad_user_data = loadedConsent.ad_user_data || data.default_ad_user_data;\n    consent.ad_personalization = loadedConsent.ad_personalization || data.default_ad_personalization;\n  }\n  \n\n  if (consent.analytics_storage === 'denied' && consent.ad_storage === 'denied') {\n    consent.wait_for_update = consent.waitForUpdates || data.default_waitForUpdates;\n  }\n  \n  \n  consent = JSON.parse(JSON.stringify(consent));\n  setDefaultConsentState(consent);\n  log('CONSENT: set default state', consent);\n  \n} else {\n  if (data.adStorageAsMarketing && consent.ad_storage) {\n    loadedConsent.ad_user_data = loadedConsent.ad_user_data || loadedConsent.ad_storage;\n    loadedConsent.ad_personalization = loadedConsent.ad_personalization || loadedConsent.ad_storage;\n  }\n  \n  loadedConsent = JSON.parse(JSON.stringify(loadedConsent));\n  updateConsentState(loadedConsent);\n  log('CONSENT: update state', loadedConsent);\n  const dataLayerPush = createQueue('dataLayer');\n  dataLayerPush({'event': 'consent_user_updated'});\n}\n\n\ndata.gtmOnSuccess();\n\n\n___WEB_PERMISSIONS___\n\n[\n  {\n    \"instance\": {\n      \"key\": {\n        \"publicId\": \"access_consent\",\n        \"versionId\": \"1\"\n      },\n      \"param\": [\n        {\n          \"key\": \"consentTypes\",\n          \"value\": {\n            \"type\": 2,\n            \"listItem\": [\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"ad_storage\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"analytics_storage\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"functionality_storage\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"personalization_storage\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"security_storage\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"ad_personalization\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"ad_user_data\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"region\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"url_passthrough\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"ads_data_redaction\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"wait_for_update\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\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\": \"read_data_layer\",\n        \"versionId\": \"1\"\n      },\n      \"param\": [\n        {\n          \"key\": \"allowedKeys\",\n          \"value\": {\n            \"type\": 1,\n            \"string\": \"specific\"\n          }\n        },\n        {\n          \"key\": \"keyPatterns\",\n          \"value\": {\n            \"type\": 2,\n            \"listItem\": [\n              {\n                \"type\": 1,\n                \"string\": \"consent\"\n              },\n              {\n                \"type\": 1,\n                \"string\": \"consent.*\"\n              },\n              {\n                \"type\": 1,\n                \"string\": \"event\"\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"clientAnnotations\": {\n      \"isEditedByUser\": true\n    },\n    \"isRequired\": true\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    \"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\": \"specific\"\n          }\n        },\n        {\n          \"key\": \"cookieNames\",\n          \"value\": {\n            \"type\": 2,\n            \"listItem\": [\n              {\n                \"type\": 1,\n                \"string\": \"cookiehub\"\n              },\n              {\n                \"type\": 1,\n                \"string\": \"cc_cookie\"\n              },\n              {\n                \"type\": 1,\n                \"string\": \"event\"\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"clientAnnotations\": {\n      \"isEditedByUser\": true\n    },\n    \"isRequired\": true\n  },\n  {\n    \"instance\": {\n      \"key\": {\n        \"publicId\": \"access_globals\",\n        \"versionId\": \"1\"\n      },\n      \"param\": [\n        {\n          \"key\": \"keys\",\n          \"value\": {\n            \"type\": 2,\n            \"listItem\": [\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"key\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"execute\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"dataLayer\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  }\n                ]\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"clientAnnotations\": {\n      \"isEditedByUser\": true\n    },\n    \"isRequired\": true\n  }\n]\n\n\n___TESTS___\n\nscenarios:\n- name: Run Tag\n  code: |-\n    runCode(mockData);\n    assertApi('gtmOnSuccess').wasCalled();\n- name: Default State - Basic\n  code: |-\n    const expected = {\n      'ad_storage': 'denied',\n      'ad_user_data': 'denied',\n      'ad_personalization': 'denied',\n      'analytics_storage': 'denied',\n      'functionality_storage': 'denied',\n      'personalization_storage': 'denied',\n      'security_storage': 'denied',\n      'wait_for_update': 1000\n    };\n\n    runCode(mockData);\n    assertApi('setDefaultConsentState').wasCalled();\n    assertApi('setDefaultConsentState').wasCalledWith(expected);\n    assertApi('updateConsentState').wasNotCalled();\n- name: Default State - Data Layer\n  code: |-\n    const expected = {\n      'ad_storage': 'granted',\n      'ad_user_data': 'granted',\n      'ad_personalization': 'denied',\n      'analytics_storage': 'granted',\n      'functionality_storage': 'denied',\n      'personalization_storage': 'denied',\n      'security_storage': 'denied'\n    };\n\n\n    mock('copyFromDataLayer', function(key) {\n      return {\n        'ad_storage': 'granted',\n        'ad_user_data': 'granted',\n        'analytics_storage': 'granted',\n      };\n    });\n\n\n    runCode(mockData);\n    assertApi('setDefaultConsentState').wasCalledWith(expected);\n- name: Update State - Data Layer\n  code: |-\n    mockData.action = 'update';\n\n    const expected = {\n      'ad_storage': 'granted',\n      'ad_user_data': 'granted',\n      'analytics_storage': 'granted'\n    };\n\n\n    mock('copyFromDataLayer', function(key) {\n      return {\n        'ad_storage': 'granted',\n        'ad_user_data': 'granted',\n        'analytics_storage': 'granted',\n      };\n    });\n\n\n    runCode(mockData);\n    assertApi('updateConsentState').wasCalledWith(expected);\n    assertApi('setDefaultConsentState').wasNotCalled();\n- name: Update State - Denied\n  code: |-\n    mockData.action = 'update';\n\n    const expected = {\n      'ad_storage': 'denied',\n      'ad_user_data': 'denied',\n      'analytics_storage': 'denied'\n    };\n\n\n    mock('copyFromDataLayer', function(key) {\n      return {\n        'ad_storage': 'denied',\n        'ad_user_data': 'denied',\n        'analytics_storage': 'denied',\n      };\n    });\n\n\n    runCode(mockData);\n    assertApi('updateConsentState').wasCalledWith(expected);\n    assertApi('setDefaultConsentState').wasNotCalled();\n- name: Update State - Variable\n  code: |-\n    mockData.action = 'update';\n    mockData.source = 'variable';\n    mockData.loadConsentVariable = {\n      'ad_storage': 'denied',\n      'ad_user_data': 'denied',\n      'analytics_storage': 'denied'\n    };\n\n    const expected = {\n      'ad_storage': 'denied',\n      'ad_user_data': 'denied',\n      'analytics_storage': 'denied'\n    };\n\n\n    runCode(mockData);\n    assertApi('updateConsentState').wasCalledWith(expected);\n    assertApi('setDefaultConsentState').wasNotCalled();\n- name: Default State - Do not wait if granted\n  code: |-\n    mockData.source = 'variable';\n    const expected = {\n      'ad_storage': 'granted',\n      'ad_user_data': 'granted',\n      'ad_personalization': 'denied',\n      'analytics_storage': 'granted',\n      'functionality_storage': 'denied',\n      'personalization_storage': 'denied',\n      'security_storage': 'denied'\n    };\n\n\n    mockData.loadConsentVariable = {\n      'ad_storage': 'granted',\n      'ad_user_data': 'granted',\n      'analytics_storage': 'granted'\n    };\n\n\n    runCode(mockData);\n    assertApi('setDefaultConsentState').wasCalledWith(expected);\n- name: Default State - Wait if denied\n  code: |-\n    mockData.source = 'variable';\n    const expected = {\n      'ad_storage': 'denied',\n      'ad_user_data': 'denied',\n      'ad_personalization': 'denied',\n      'analytics_storage': 'denied',\n      'functionality_storage': 'denied',\n      'personalization_storage': 'denied',\n      'security_storage': 'denied',\n      'wait_for_update': 1000\n    };\n\n\n    mockData.loadConsentVariable = {\n      'ad_storage': 'denied',\n      'ad_user_data': 'denied',\n      'analytics_storage': 'denied'\n    };\n\n\n    runCode(mockData);\n    assertApi('setDefaultConsentState').wasCalledWith(expected);\nsetup: |-\n  let mockData = {\n    'action': 'default',\n    'source': 'datalayer',\n    'adStorageAsMarketing': false,\n    'dataLayerSyntax': 'dl_consent',\n    'default_ad_storage': 'denied',\n    'default_ad_user_data': 'denied',\n    'default_ad_personalization': 'denied',\n    'default_analytics_storage': 'denied',\n    'default_functionality_storage': 'denied',\n    'default_personalization_storage': 'denied',\n    'default_security_storage': 'denied',\n    'default_waitForUpdates': 1000\n  };\n\n\n___NOTES___\n\nCreated on 29. 10. 2021 23:48:04\n\n\n"
            },
            {
                "accountId": "58687",
                "containerId": "256279490",
                "templateId": "55",
                "name": "Seznam SEM",
                "fingerprint": "1782371256873",
                "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  \"type\": \"TAG\",\n  \"id\": \"cvt_T9C52\",\n  \"version\": 1,\n  \"displayName\": \"Seznam SEM\",\n  \"categories\": [\n    \"MARKETING\",\n    \"REMARKETING\",\n    \"ADVERTISING\"\n  ],\n  \"brand\": {\n    \"id\": \"github.com_pavelsabatka\",\n    \"displayName\": \"pavelsabatka\",\n    \"thumbnail\": \"data:image/jpeg;base64,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\\u003d\"\n  },\n  \"description\": \"Seznam SEM tracking.\\nRemarketing and conversion tracking code for Seznam.cz. SEM is available from 04/2026.\",\n  \"containerContexts\": [\n    \"WEB\"\n  ]\n}\n\n\n___TEMPLATE_PARAMETERS___\n\n[\n  {\n    \"type\": \"TEXT\",\n    \"name\": \"id\",\n    \"displayName\": \"Seznam ID\",\n    \"simpleValueType\": true,\n    \"alwaysInSummary\": true,\n    \"help\": \"SEM ID generated in Sklik administration\",\n    \"valueValidators\": [\n      {\n        \"type\": \"NON_EMPTY\"\n      }\n    ]\n  },\n  {\n    \"type\": \"SELECT\",\n    \"name\": \"eventName\",\n    \"displayName\": \"Event Name\",\n    \"macrosInSelect\": false,\n    \"selectItems\": [\n      {\n        \"value\": \"AddPaymentInfo\",\n        \"displayValue\": \"AddPaymentInfo\"\n      },\n      {\n        \"value\": \"AddToCart\",\n        \"displayValue\": \"AddToCart\"\n      },\n      {\n        \"value\": \"AddToWishlist\",\n        \"displayValue\": \"AddToWishlist\"\n      },\n      {\n        \"value\": \"CompleteRegistration\",\n        \"displayValue\": \"CompleteRegistration\"\n      },\n      {\n        \"value\": \"Contact\",\n        \"displayValue\": \"Contact\"\n      },\n      {\n        \"value\": \"CustomizeProduct\",\n        \"displayValue\": \"CustomizeProduct\"\n      },\n      {\n        \"value\": \"Donate\",\n        \"displayValue\": \"Donate\"\n      },\n      {\n        \"value\": \"InitiateCheckout\",\n        \"displayValue\": \"InitiateCheckout\"\n      },\n      {\n        \"value\": \"Lead\",\n        \"displayValue\": \"Lead\"\n      },\n      {\n        \"value\": \"PageView\",\n        \"displayValue\": \"PageView\"\n      },\n      {\n        \"value\": \"Purchase\",\n        \"displayValue\": \"Purchase\"\n      },\n      {\n        \"value\": \"Search\",\n        \"displayValue\": \"Search\"\n      },\n      {\n        \"value\": \"Schedule\",\n        \"displayValue\": \"Schedule\"\n      },\n      {\n        \"value\": \"StartTrial\",\n        \"displayValue\": \"StartTrial\"\n      },\n      {\n        \"value\": \"SubmitApplication\",\n        \"displayValue\": \"SubmitApplication\"\n      },\n      {\n        \"value\": \"Subscribe\",\n        \"displayValue\": \"Subscribe\"\n      },\n      {\n        \"value\": \"ViewContent\",\n        \"displayValue\": \"ViewContent\"\n      },\n      {\n        \"value\": \"updateUserData\",\n        \"displayValue\": \"UserDataUpdate\"\n      }\n    ],\n    \"simpleValueType\": true,\n    \"help\": \"Value will be used as event name. Based on this value, other parameters sent with the event will be selected.\",\n    \"alwaysInSummary\": true,\n    \"valueValidators\": [\n      {\n        \"type\": \"NON_EMPTY\"\n      }\n    ],\n    \"clearOnCopy\": true\n  },\n  {\n    \"type\": \"GROUP\",\n    \"name\": \"params\",\n    \"displayName\": \"Parameters\",\n    \"groupStyle\": \"ZIPPY_OPEN\",\n    \"subParams\": [\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"contentType\",\n        \"displayName\": \"Content Type\",\n        \"macrosInSelect\": false,\n        \"selectItems\": [\n          {\n            \"value\": \"product\",\n            \"displayValue\": \"product\"\n          },\n          {\n            \"value\": \"product_group\",\n            \"displayValue\": \"product_group\"\n          },\n          {\n            \"value\": \"page\",\n            \"displayValue\": \"page\"\n          }\n        ],\n        \"simpleValueType\": true,\n        \"help\": \"product (single product), product_group (collection or products - e.g. on product category page), page (detail of content page - like a blog post), search (used for Search event)\",\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"Search\",\n            \"type\": \"NOT_EQUALS\"\n          }\n        ],\n        \"notSetText\": \"\",\n        \"defaultValue\": \"product\"\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"products\",\n        \"displayName\": \"Products related to given context\",\n        \"macrosInSelect\": true,\n        \"selectItems\": [],\n        \"simpleValueType\": true,\n        \"help\": \"Products related to given context. Expected array of objects in GTM Ecommerce format.\",\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"AddToCart\",\n            \"type\": \"EQUALS\"\n          },\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"AddPaymentInfo\",\n            \"type\": \"EQUALS\"\n          },\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"AddToWishlist\",\n            \"type\": \"EQUALS\"\n          },\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"InitiateCheckout\",\n            \"type\": \"EQUALS\"\n          },\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"Purchase\",\n            \"type\": \"EQUALS\"\n          },\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"Search\",\n            \"type\": \"EQUALS\"\n          },\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"ViewContent\",\n            \"type\": \"EQUALS\"\n          },\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"CustomizeProduct\",\n            \"type\": \"EQUALS\"\n          }\n        ]\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"order\",\n        \"displayName\": \"Order\",\n        \"macrosInSelect\": true,\n        \"selectItems\": [],\n        \"simpleValueType\": true,\n        \"help\": \"Object of order in GTM Ecommerce format\",\n        \"notSetText\": \"\",\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"Purchase\",\n            \"type\": \"EQUALS\"\n          }\n        ]\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"currency\",\n        \"displayName\": \"Currency Code\",\n        \"simpleValueType\": true,\n        \"defaultValue\": \"CZK\",\n        \"help\": \"Currency code in ISO 4217 format (e.g. CZK, EUR, USD)\",\n        \"valueValidators\": [\n          {\n            \"type\": \"REGEX\",\n            \"args\": [\n              \"^[A-Z]{3}$\"\n            ],\n            \"errorMessage\": \"Must be ISO 4217 format (e.g. CZK, EUR, USD)\"\n          }\n        ]\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"reviewEmail\",\n        \"displayName\": \"Email for Review\",\n        \"simpleValueType\": true,\n        \"alwaysInSummary\": true,\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"Purchase\",\n            \"type\": \"EQUALS\"\n          }\n        ],\n        \"help\": \"Customer\\u0027s email for review. Fill in this value only with consent.\",\n        \"valueHint\": \"customer@email.cz\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"url\",\n        \"displayName\": \"Page URL (optional)\",\n        \"simpleValueType\": true,\n        \"help\": \"Optional parameter. You can rewrite real URL sent to Seznam.\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"eventId\",\n        \"displayName\": \"Event ID (optional)\",\n        \"simpleValueType\": true,\n        \"help\": \"Optional. Used for event deduplication when you are using frontend and backed tracking.\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"contentCategory\",\n        \"displayName\": \"Content Category (optional)\",\n        \"simpleValueType\": true,\n        \"enablingConditions\": [],\n        \"help\": \"String of content category. Recommended for content_type \\u003d page, product-level data should be used in \\\"Products\\\" field.\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"contentName\",\n        \"displayName\": \"Content Name (optional)\",\n        \"simpleValueType\": true,\n        \"enablingConditions\": [],\n        \"help\": \"String of contentName (e.g. in page title). Recommended for content_type \\u003d page, product-level data should be used in \\\"Products\\\" field.\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"value\",\n        \"displayName\": \"Value (optional)\",\n        \"simpleValueType\": true,\n        \"help\": \"Optional. Used as value parameter.\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"searchString\",\n        \"displayName\": \"Search String\",\n        \"simpleValueType\": true,\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"Search\",\n            \"type\": \"EQUALS\"\n          }\n        ],\n        \"help\": \"Only for Search event\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"searchResultCount\",\n        \"displayName\": \"Count of Search Results\",\n        \"simpleValueType\": true,\n        \"help\": \"Only for Search event\",\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"Search\",\n            \"type\": \"EQUALS\"\n          }\n        ]\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"predictedLtv\",\n        \"displayName\": \"Predicted LTV\",\n        \"simpleValueType\": true,\n        \"help\": \"\",\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"StartTrial\",\n            \"type\": \"EQUALS\"\n          },\n          {\n            \"paramName\": \"eventName\",\n            \"paramValue\": \"Subscribe\",\n            \"type\": \"EQUALS\"\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"type\": \"GROUP\",\n    \"name\": \"simpleParams\",\n    \"displayName\": \"Custom Parameters\",\n    \"groupStyle\": \"ZIPPY_OPEN_ON_PARAM\",\n    \"subParams\": [\n      {\n        \"type\": \"SIMPLE_TABLE\",\n        \"name\": \"customParams\",\n        \"displayName\": \"Parameters\",\n        \"simpleTableColumns\": [\n          {\n            \"defaultValue\": \"\",\n            \"displayName\": \"Name\",\n            \"name\": \"name\",\n            \"type\": \"TEXT\"\n          },\n          {\n            \"defaultValue\": \"\",\n            \"displayName\": \"Value\",\n            \"name\": \"value\",\n            \"type\": \"TEXT\"\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"type\": \"GROUP\",\n    \"name\": \"userDataGroup\",\n    \"displayName\": \"User Data\",\n    \"groupStyle\": \"ZIPPY_OPEN_ON_PARAM\",\n    \"subParams\": [\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"user\",\n        \"displayName\": \"User (optional)\",\n        \"macrosInSelect\": true,\n        \"selectItems\": [],\n        \"simpleValueType\": true,\n        \"help\": \"Object of User\",\n        \"notSetText\": \"\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"userEmail\",\n        \"displayName\": \"Email (em)\",\n        \"simpleValueType\": true,\n        \"help\": \"Expected normalized email (lowercased and trimmed).\"\n      },\n      {\n        \"type\": \"TEXT\",\n        \"name\": \"userPhone\",\n        \"displayName\": \"Phone (ph)\",\n        \"simpleValueType\": true,\n        \"help\": \"Expected the phone in E.164 format (e.g. +420777111222)\"\n      }\n    ]\n  },\n  {\n    \"type\": \"GROUP\",\n    \"name\": \"consent\",\n    \"displayName\": \"Consent\",\n    \"groupStyle\": \"ZIPPY_OPEN_ON_PARAM\",\n    \"subParams\": [\n      {\n        \"type\": \"CHECKBOX\",\n        \"name\": \"usingConsentModeV2\",\n        \"checkboxText\": \"Using Consent Mode v2\",\n        \"simpleValueType\": true,\n        \"defaultValue\": true\n      },\n      {\n        \"type\": \"SELECT\",\n        \"name\": \"consentStateObject\",\n        \"displayName\": \"Consent statuses\",\n        \"macrosInSelect\": true,\n        \"selectItems\": [],\n        \"simpleValueType\": true,\n        \"enablingConditions\": [\n          {\n            \"paramName\": \"usingConsentModeV2\",\n            \"paramValue\": true,\n            \"type\": \"NOT_EQUALS\"\n          }\n        ],\n        \"help\": \"Object with consent statuses - ad_storage, ad_personalization, ad_user_data, analytics_storage, functionality_storage. You can use \\\"granted\\\"/\\\"denied\\\", 1/0 or true/false.\"\n      }\n    ]\n  }\n]\n\n\n___SANDBOXED_JS_FOR_WEB_TEMPLATE___\n\n// Enter your template code here.\nconst log = require('logToConsole');\nconst injectScript = require('injectScript');\nconst templateStorage = require('templateStorage');\nconst callInWindow = require('callInWindow');\nconst isConsentGranted = require('isConsentGranted');\nconst addConsentListener = require('addConsentListener');\nconst makeNumber = require('makeNumber');\nconst makeInteger = require('makeInteger');\nconst makeString = require('makeString');\nconst Math = require('Math');\nconst getType = require('getType');\nconst Object = require('Object');\nconst getContainerVersion = require('getContainerVersion');\n\nlog('data =', data);\n\nconst TEMPLATE_VERSION = '2.3';\n\n\n/**\n * Reads all queued hits and send them to SEM object\n *\n * @return void\n */\nfunction flushScriptLoadQueue() {\n  let events = templateStorage.getItem('EVENT_QUEUE_SCRIPT_LOAD') || [];\n  for (const key in events) {\n    resolveCommand(events[key].name, events[key].params);\n  }\n  \n  // clear queue\n  templateStorage.setItem('EVENT_QUEUE_SCRIPT_LOAD', []);\n}\n\n\n\n/**\n * Adds hit data to script load queue\n * This queue will be flushed when script will be loaded\n * \n * @param string eventName\n * @param string eventParams\n * @return void\n */\nfunction pushToScriptLoadQueue(eventName, eventParams) {\n  let q = templateStorage.getItem('EVENT_QUEUE_SCRIPT_LOAD') || [];\n  q.push({\n    'name': eventName,\n    'params': eventParams\n  });\n  templateStorage.setItem('EVENT_QUEUE_SCRIPT_LOAD', q);\n}\n\n\n\n/**\n * Transformes different possible consent statuses to 'granted' / 'denied'\n *\n * @param mixed status\n * @return string granted|denied\n */\nfunction getConsentStatus(status) {\n  return ([1, '1', true, 'true', 'granted'].indexOf(status) > -1) ? 'granted' : 'denied';\n}\n\n\n\n/**\n * Checks if given value is defined - it is not null or undefined\n *\n * @param mixed val\n * @return bool\n */\nfunction isDefined(val) {\n  const type = getType(val);\n  return type !== 'undefined' && type !== 'null' && val !== '';\n}\n\n\n\n/**\n * Returns value from first defined value in array\n *\n * @param arr array of values\n * @param type string|integer|number\n * @return mixed - first defined value\n */\nfunction getFirstValue(arr, type) {\n  let val;\n  for (let i = 0; i < arr.length; i++) {\n    if (isDefined(arr[i])) {\n      switch (type) {\n        case 'string':\n          return makeString(arr[i]);\n        case 'integer':\n          return makeInteger(arr[i]);\n        case 'number':\n          return makeNumber(arr[i]);\n        default:\n          return arr[i];\n      }\n    }\n  }\n}\n\n\n\n/**\n * Return object with all consent statuses. If \"usingConsentModeV2\" checkbox is enabled, \n * statuses will be readed from consent mode v2, otherwise consent object will be parsed\n * \n * @return object\n */\nfunction getConsentObject() {\n  if (data.usingConsentModeV2) {\n    return {\n      'ad_storage': isConsentGranted('ad_storage') ? 'granted' : 'denied',\n      'ad_user_data': isConsentGranted('ad_user_data') ? 'granted' : 'denied',\n      'ad_personalization': isConsentGranted('ad_personalization') ? 'granted' : 'denied',\n      'analytics_storage': isConsentGranted('analytics_storage') ? 'granted' : 'denied',\n      'functionality_storage': isConsentGranted('functionality_storage') ? 'granted' : 'denied',\n    };\n  } else {\n    let consents = data.consentStateObject;\n    return {\n      'ad_storage': getConsentStatus(consents.ad_storage),\n      'ad_user_data': getConsentStatus(consents.ad_user_data),\n      'ad_personalization': getConsentStatus(consents.ad_personalization),\n      'analytics_storage': getConsentStatus(consents.analytics_storage),\n      'functionality_storage': getConsentStatus(consents.functionality_storage),\n    };\n  }\n}\n\n\n\n/**\n * Initiates params object and prepares generic hit params\n *\n * @return object params\n */\nfunction callSEMConfig() {\n  \n  const adStorage = isConsentGranted('ad_storage') ? '1' : '0';\n  const adPersonalization = isConsentGranted('ad_personalization') ? '1' : '0';\n  const adUserData = isConsentGranted('ad_user_data') ? '1' : '0';\n  const currentConsentSnapshot = adStorage + adPersonalization + adUserData;\n  const lastConsentSnapshot = templateStorage.getItem('LAST_SEM_CONSENT_SNAPSHOT');\n  \n  \n  if (currentConsentSnapshot === lastConsentSnapshot) {\n    // Pokud už jsou listenery nastaveny, prostě vyskočíme\n    if (templateStorage.getItem('CONSENT_LISTENERS_INITED') && templateStorage.getItem('CONFIG_WAS_CALLED')) {\n      return;\n    }\n  }\n  \n  templateStorage.setItem('CONFIG_WAS_CALLED', true);\n  templateStorage.setItem('LAST_SEM_CONSENT_SNAPSHOT', currentConsentSnapshot);\n  \n  \n  // init consent listeners\n  if (!templateStorage.getItem('CONSENT_LISTENERS_INITED')) {\n    templateStorage.setItem('CONSENT_LISTENERS_INITED', true);\n    addConsentListener('ad_storage', callSEMConfig);\n    addConsentListener('ad_personalization', callSEMConfig);\n    addConsentListener('ad_user_data', callSEMConfig);\n  }\n  \n  \n  let configData = {\n    'sem_id': data.id,\n    'event_type': 'rtgconv',\n    'event_source': 'web',\n    'consent_mode': {\n      'ad_storage': isConsentGranted('ad_storage') ? 'granted' : 'denied',\n      'ad_user_data': isConsentGranted('ad_user_data') ? 'granted' : 'denied',\n      'ad_personalization': isConsentGranted('ad_personalization') ? 'granted' : 'denied',\n      'analytics_storage': isConsentGranted('analytics_storage') ? 'granted' : 'denied',\n      'functionality_storage': isConsentGranted('functionality_storage') ? 'granted' : 'denied',\n    },\n    'api': {\n      'name': 'GTM_T',\n      'template_version': 't'+TEMPLATE_VERSION+'-c'+getContainerVersion().version\n    }\n  };\n\n  // add user data - if we have consent\n  let userData = templateStorage.setItem('USER_DATA');\n  if (userData && isConsentGranted('ad_user_data')) {\n    configData.user_ids = {\n      'user_data': userData\n    };\n  }\n\n  log('Seznam SEM: called config with params', configData);\n  callInWindow('SEM', 'config', configData);\n}\n\n\n\n/**\n * Get array of products from GTM ecommerce format\n *\n * @params bool validate\n * @return array of products\n */\nfunction prepareProducts(validate) {\n  let products = data.products || [];\n  if (getType(products) === 'object') products = [ products ];\n  let prepared = [],\n      category;\n  \n  \n  for (let i in products) {\n    category = [];\n    if (products[i].category) {\n      // support for MeasureHive\n      category = products[i].category.split('/');\n\n    } else if (products[i].currentCategory || products[i].defaultCategory) {\n      // support for Shoptet\n      category = products[i].currentCategory || products[i].defaultCategory;\n\n    } else {\n      // support for Enhancend Ecommerce\n      if (products[i].item_category) category.push(products[i].item_category);\n      if (products[i].item_category2) category.push(products[i].item_category2);\n      if (products[i].item_category3) category.push(products[i].item_category3);\n      if (products[i].item_category4) category.push(products[i].item_category4);\n      if (products[i].item_category5) category.push(products[i].item_category5);\n    }\n    \n    const p = {\n      'id': getFirstValue([products[i].id, products[i].item_id], 'string'),\n      'content_name': getFirstValue([products[i].name, products[i].item_name], 'string'),\n      'quantity': getFirstValue([products[i].quantity, 1], 'integer'),\n      'unit_price': Math.round(100 * (getFirstValue([products[i].price, products[i].priceWithVat, products[i].fullPrice], 'number'))) / 100,\n      'content_category': category.join(' | ')\n    };\n    if (validate) {\n      if (!p.id || !p.content_name || !p.quantity || !p.unit_price) {\n        log('Seznam SEM: ERROR: product must have keys id, content_name, quantity, unit_price; current value', p);\n      }\n    }\n    prepared.push(p);\n  }\n  \n  return prepared;\n}\n\n\n\n/**\n * Count value of all products in given array.\n *\n * @param array products\n * @return float total value\n */\nfunction countProductValue(products) {\n  if (!products) return;\n  let v = 0;\n  for (let p in products) {\n    v += products[p].unit_price * products[p].quantity;\n  }\n  return v;\n}\n\n\n\n/**\n * Adds user data to user object.\n *\n * @return object params\n */\nfunction getUserData() {\n  const user = data.user || {};\n  let userData = {\n    'em': data.userEmail || user.email || user.em,\n    'ph': data.userPhone || user.phone || user.ph,\n    'fn': user.fname || user.fn,\n    'ln': user.lname || user.ln,\n    'ge': user.g || user.ge || user.gender,\n    'ct': user.city,\n    'sr': user.street,\n    'region': user.region,\n    'zp': user.postalCode || user.zip,\n    'country': user.countryCode,\n    'db': user.birth || user.birthDate,\n    'subscription_id': user.subscription || user.subscriptionId\n  };\n  \n\n  // Remove undefined data\n  const keys = Object.keys(userData);\n  for (let i = 0; i < keys.length; i++) {\n    if (!isDefined(userData[keys[i]])) {\n      Object.delete(userData, keys[i]);\n    }\n  }\n\n  // There is no usefull data in userData object -> return false\n  return Object.keys(userData).length ? userData : false;\n}\n\n\n\n\n/**\n * Checks if User Data object is same as in template storage.\n * If it is not -> update is needed\n *\n * @param object newUserData\n * @return bool\n */\nfunction isUserUpdateNeeded(newUserData) {\n  if (!newUserData) return false;\n\n  // No update needed if none of the values is defined\n  const keys = Object.keys(newUserData);\n  let hasValue = false;\n  for (let i = 0; i < keys.length; i++) {\n    if (isDefined(newUserData[keys[i]])) {\n      hasValue = true;\n      break;\n    }\n  }\n  if (!hasValue) return false;\n\n  const oldUserData = templateStorage.getItem('USER_DATA');\n  if (!oldUserData) return true;\n\n  const newKeys = Object.keys(newUserData);\n  const oldKeys = Object.keys(oldUserData);\n\n  // there is a different count of keys\n  if (newKeys.length !== oldKeys.length) {\n    return true;\n  }\n\n  // compare each value\n  for (let i = 0; i < newKeys.length; i++) {\n    const key = newKeys[i];\n    if (newUserData[key] !== oldUserData[key]) {\n      return true;\n    }\n  }\n\n  // objects are same\n  return false;\n}\n\n\n\n/**\n * Create params object for given event\n *\n * @return object params\n */\nfunction getEventParams(eventName) {\n  const order = data.order || {};\n  const products = data.products || []; \n  \n  let params = {};\n  \n  if (data.url) {\n    params.event_url = data.url;\n  }\n  if (data.currency) {\n    params.currency = data.currency;\n  }\n  if (data.user && getType(data.user.registered) !== 'undefined') {\n    params.status = !!data.user.registered;\n  }\n  if (data.contentType) {\n    params.content_type = data.contentType;\n  }\n  \n  \n  switch (eventName) {\n    case 'PageView':\n      break;\n\n    case 'Purchase':\n      params.order_id = getFirstValue([order.transaction_id, order.id, order.orderNo], 'string');\n      params.value_tax = getFirstValue([order.tax, order.value_tax], 'number');\n      params.delivery_price = getFirstValue([order.shipping, order.shipping_price, order.delivery_price], 'number');\n      params.delivery_type = getFirstValue([order.shipping_tier, order.shipping_type, order.delivery_type], 'string');\n      params.payment_type = getFirstValue([order.payment_type], 'string');      \n      params.content_type = 'product';\n      params.contents = prepareProducts(true);\n      \n      if (data.reviewEmail) {\n        params.review_email = data.reviewEmail;\n      }\n\n      \n      if (isDefined(data.value)) {\n        params.value = data.value;\n      } else if (isDefined(order.value)) {\n        params.value = order.value;\n      } else if (isDefined(order.revenue)) {\n        params.value = order.revenue;\n      } else {\n        params.value = order.totalWithoutVat;\n      }\n      if (!isDefined(params.value)) {\n        params.value = countProductValue(params.contents);\n      }\n      \n      if (!params.order_id) {\n        log('Seznam SEM: ERROR: order ID must be set in event Purchase, got ', params.order_id, '. Use key transaction_id, id or orderNo in object', order);\n      }\n      if (!params.value && params.value !== 0) {\n        log('Seznam SEM: ERROR: have no purchase value, got ', params.value, order);\n      }\n      if (!params.currency) {\n        log('Seznam SEM: ERROR currency must be submitted for event Purchase');\n      }\n      if (!params.contents || params.contents.length < 1) {\n        log('Seznam SEM: ERROR: no products are available for event', eventName);\n      }\n      break;\n\n    case 'ViewContent':\n      if (data.contentType == 'product' || data.contentType == 'product_group') {\n        const prods = prepareProducts();\n        if (prods.length) params.contents = prods;\n      }\n      params.value = data.value;\n      if (!params.value) {\n        params.value = countProductValue(params.contents);\n      }\n      break;\n\n    case 'AddToWishlist':\n      params.content_type = 'product';\n      params.contents = prepareProducts();\n      params.value = countProductValue(params.contents);\n      break;\n\n    case 'AddToCart':\n    case 'InitiateCheckout':\n    case 'AddPaymentInfo':\n      params.content_type = 'product';\n      params.contents = prepareProducts();\n      params.value = data.value;\n      if (!params.value) {\n        params.value = countProductValue(params.contents);\n      }\n      \n      if (!params.contents || params.contents.length < 1) {\n        log('Seznam SEM: error - no products are available for event', eventName);\n      }\n\n      break;\n      \n    case 'CompleteRegistration':\n      params.status = true;\n      params.value = data.value;\n      break;\n\n    case 'Lead':\n      params.value = data.value;\n      break;\n      \n    case 'StartTrial':\n    case 'Subscribe':\n      let possibleValues = [data.predictedLtv];\n      if (data.user) {\n        possibleValues = possibleValues.merge([data.user.predictedLTV, data.user.predicted_ltv, data.user.ltv]);\n      }\n\n      let ltv = getFirstValue(possibleValues, 'number');\n      if (ltv) {\n        params.predicted_ltv = makeNumber(ltv);\n      }\n      params.value = data.value;\n      break;\n\n    case 'Search':\n      const prods = prepareProducts();\n      if (prods.length) params.contents = prods;\n      \n      params.search_string = data.searchString;\n      params.value = data.value;\n      params.content_type = 'search';\n      if (!params.value) {\n        params.value = countProductValue(params.contents);\n      }\n      break;\n\n\n    case 'CustomizeProduct':\n    case 'Contact':\n    case 'Donate':\n    case 'Schedule':\n    case 'SubmitApplication':\n    case 'FindLocation':\n      // nothing to do\n      break;\n  }\n\n  if (params.value) {\n    params.value = Math.round(makeNumber(params.value) * 100) / 100;\n  }\n  \n  \n  if (data.contentName || data.contentCategory) {\n    if (params.contents) {\n      log('Seznam SEM: warning - you cannot use \"Content Name\" or \"Content Category\" fields when product array is set', eventName);\n    } else {\n      let content = {};\n      if (data.contentName) content.content_name = data.contentName;\n      if (data.contentCategory) content.content_category = data.contentCategory;\n      params.contents = [content];\n    }\n  }\n  \n  \n  // add custom params\n  for (const k in data.customParams) {\n    let p = data.customParams[k];\n    params[p.name] = p.value;\n  }\n  \n  return params;\n}\n\n\n\n/**\n * Sends hit to sem object\n *\n * @param string eventName\n * @param object eventParams\n * @return void\n */\nfunction resolveCommand(eventName, eventParams) {\n\n  if (eventName === 'updateUserData') {\n    // updateUserData command\n    updateUserData();\n\n  } else {\n    let eventId;\n    if (data.eventId) {\n      eventId = data.eventId;\n    } else if (eventName === 'Purchase' && eventParams.order_id) {\n      eventId = 'Purchase__'+eventParams.order_id;\n    }\n    \n    // track event command\n    log('Seznam SEM: sending event \"'+eventName+'\" with params', eventParams);\n    callInWindow('SEM', 'track', eventName, eventParams, 'rtgconv', eventId);\n  }\n}\n\n\n\n/**\n * Calls updateUserData on SEM\n * This method is async due to SHA256 hashing\n *\n * @return void\n */\nfunction updateUserData() {\n  let userData = templateStorage.getItem('USER_DATA');\n  if (!userData) return;\n  log('Seznam SEM: updating user data with params', userData);\n  callInWindow('SEM', 'updateUserData', userData);\n}\n\n\n\n\n\n/* *********** LOAD SCRIPT & INIT SENDING *********** */\nif (!templateStorage.getItem('SCRIPT_INITED_'+data.id)) {\n  templateStorage.setItem('SCRIPT_INITED_'+data.id, true);\n  injectScript('https://l.seznam.cz/sul.js?id='+data.id,\n    () => {\n      log('Seznam SEM: javascript library was loaded successfully');\n      templateStorage.setItem('SCRIPT_LOADED_'+data.id, true);\n      callSEMConfig();\n      flushScriptLoadQueue();\n      data.gtmOnSuccess();\n    },\n    () => {\n      log('Seznam SEM: javascript library cannot be loaded');\n      templateStorage.setItem('SCRIPT_INITED_'+data.id, false);\n      data.gtmOnFailure();\n    }\n  );\n}\n\n\n\nconst eventName = data.eventName;\nconst eventParams = getEventParams(eventName);\n\n\nlet userData = getUserData();\nlet isUserUpdateNeed = isUserUpdateNeeded(userData);\ntemplateStorage.setItem('USER_DATA', userData);\n\n\nif (!templateStorage.getItem('SCRIPT_LOADED_'+data.id)) {\n  // script is not loaded yet -> add to queue\n  pushToScriptLoadQueue(eventName, eventParams);\n  \n} else {\n  // script is loaded -> resolve and mark as success\n  if (isUserUpdateNeed && eventName !== 'updateUserData') {\n    updateUserData();\n  }\n\n  resolveCommand(eventName, eventParams);\n  data.gtmOnSuccess();\n}\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    \"clientAnnotations\": {\n      \"isEditedByUser\": true\n    },\n    \"isRequired\": true\n  },\n  {\n    \"instance\": {\n      \"key\": {\n        \"publicId\": \"inject_script\",\n        \"versionId\": \"1\"\n      },\n      \"param\": [\n        {\n          \"key\": \"urls\",\n          \"value\": {\n            \"type\": 2,\n            \"listItem\": [\n              {\n                \"type\": 1,\n                \"string\": \"https://l.seznam.cz/sul.js*\"\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"clientAnnotations\": {\n      \"isEditedByUser\": true\n    },\n    \"isRequired\": true\n  },\n  {\n    \"instance\": {\n      \"key\": {\n        \"publicId\": \"access_consent\",\n        \"versionId\": \"1\"\n      },\n      \"param\": [\n        {\n          \"key\": \"consentTypes\",\n          \"value\": {\n            \"type\": 2,\n            \"listItem\": [\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"ad_storage\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": false\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"ad_user_data\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": false\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"ad_personalization\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": false\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"analytics_storage\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": false\n                  }\n                ]\n              },\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"consentType\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"functionality_storage\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": false\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\": \"access_template_storage\",\n        \"versionId\": \"1\"\n      },\n      \"param\": []\n    },\n    \"isRequired\": true\n  },\n  {\n    \"instance\": {\n      \"key\": {\n        \"publicId\": \"access_globals\",\n        \"versionId\": \"1\"\n      },\n      \"param\": [\n        {\n          \"key\": \"keys\",\n          \"value\": {\n            \"type\": 2,\n            \"listItem\": [\n              {\n                \"type\": 3,\n                \"mapKey\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"key\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"read\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"write\"\n                  },\n                  {\n                    \"type\": 1,\n                    \"string\": \"execute\"\n                  }\n                ],\n                \"mapValue\": [\n                  {\n                    \"type\": 1,\n                    \"string\": \"SEM\"\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": false\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": false\n                  },\n                  {\n                    \"type\": 8,\n                    \"boolean\": true\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\": \"read_container_data\",\n        \"versionId\": \"1\"\n      },\n      \"param\": []\n    },\n    \"isRequired\": true\n  }\n]\n\n\n___TESTS___\n\nscenarios:\n- name: Basic Test - Success Was Called\n  code: |-\n    runCode(mockData);\n    assertApi('gtmOnSuccess').wasCalled();\n- name: Basic - Script was injected\n  code: |-\n    runCode(mockData);\n    assertApi('injectScript').wasCalled();\n- name: Basic - Script is loaded only once\n  code: |-\n    runCode(mockData);\n    runCode(mockData);\n    assertThat(injectScriptTimes).isEqualTo(1);\n- name: Basic - PageView was sent\n  code: |-\n    runCode(mockData);\n\n    let expectedParams = {\n      \"currency\":\"CZK\"\n    };\n\n    assertHitWasSent('PageView', expectedParams);\n- name: Script Load Immediately - With Consent\n  code: |-\n    runCode(mockData);\n\n    let expectedParams = {\n      \"currency\":\"CZK\"\n    };\n\n    assertHitWasSent('PageView', expectedParams);\n- name: Script Load Immediately - Without Consent\n  code: |-\n    consentStatus.ad_storage = 'denied';\n    consentStatus.ad_personalization = 'denied';\n    consentStatus.ad_user_data = 'denied';\n    consentStatus.analytics_storage = 'denied';\n\n\n    runCode(mockData);\n\n\n    let expectedParams = {\n      \"currency\":\"CZK\"\n    };\n\n    assertHitWasSent('PageView', expectedParams);\n- name: Script Loaded Later - With Consent\n  code: |\n    loadScriptImidiately = false;\n    runCode(mockData);\n    assertApi('callInWindow').wasNotCalled();\n- name: Script Loaded Later - With Consent - Then Loaded\n  code: |-\n    loadScriptImidiately = false;\n    runCode(mockData);\n\n    assertApi('callInWindow').wasNotCalled();\n    loadScriptCallback();\n    assertApi('callInWindow').wasCalled();\n\n    let expectedParams = {\n      \"currency\":\"CZK\"\n    };\n\n    assertHitWasSent('PageView', expectedParams);\n- name: Script Loaded Later - Without Consent\n  code: |-\n    loadScriptImidiately = false;\n    runCode(mockData);\n    assertApi('callInWindow').wasNotCalled();\n- name: Event Params - Purchase\n  code: \"mockData.eventName = 'Purchase';\\nmockData.contentType = 'product';\\nmockData.reviewEmail\\\n    \\ = 'pavel@sabatka.net';\\nmockData.user = user;\\nmockData.products = [{\\n  'item_id':\\\n    \\ \\\"SKU_12345\\\",\\n  'item_name': \\\"Adidas Ultraboost\\\",\\n  'price': 3718.18,\\n\\\n    \\  'fullPrice': 4499,\\n  'quantity': 3,\\n  'item_category': \\\"Boty\\\",\\n  'item_category2':\\\n    \\ \\\"Sportovní boty\\\",\\n  'item_category3': \\\"Běžecké boty\\\",\\n  'item_category4':\\\n    \\ false,\\n  'item_category5': false\\n}];\\nmockData.order = {\\n  'id': 'T_123',\\n\\\n    \\  'value': 11154.54,\\n  'shipping': 99,\\n  'shipping_type': 'holub',\\n  'payment':\\\n    \\ 19\\n};\\n\\nrunCode(mockData);\\n\\nlet expectedParams = {\\n  \\\"currency\\\":\\\"CZK\\\"\\\n    ,\\n  \\n  \\\"order_id\\\": \\\"T_123\\\",\\n  \\\"value\\\": 11154.54,\\n//  \\\"event_id\\\": \\\"\\\n    Purchase__T_123\\\",\\n  \\\"delivery_price\\\": 99,\\n  \\\"delivery_type\\\": \\\"holub\\\"\\\n    ,\\n  \\\"review_email\\\": \\\"pavel@sabatka.net\\\",\\n  \\n  'content_type': 'product',\\n\\\n    \\  'contents': [{\\n    'content_name': 'Adidas Ultraboost',\\n    'content_category':\\\n    \\ 'Boty | Sportovní boty | Běžecké boty',\\n    'id': 'SKU_12345',\\n    'quantity':\\\n    \\ 3,\\n    'unit_price': 3718.18\\n  }]\\n};\\n\\n\\nassertThat(SEM.length, 'Strange\\\n    \\ count of SEM calls, expected config -> updateUserData -> track PageView').isEqualTo(3);\\n\\\n    assertThat(SEM[0].command, 'First command must be \\\"config\\\"').isEqualTo('config');\\n\\\n    \\nassertThat(SEM[1].command, 'Third command must be \\\"updateUserData\\\"').isEqualTo('updateUserData');\\n\\\n    assertThat(SEM[1].params, 'Event params are not same').isEqualTo(expectedUserParams);\\n\\\n    \\nassertThat(SEM[2].command, 'Second command must be \\\"track\\\"').isEqualTo('track');\\n\\\n    assertThat(SEM[2].name, 'Second command name must be \\\"Purchase\\\"').isEqualTo('Purchase');\\n\\\n    assertThat(SEM[2].params, 'Event params are not same').isEqualTo(expectedParams);\"\n- name: Event Params - Purchase - Enhanced Ecommerce\n  code: \"mockData.eventName = 'Purchase';\\nmockData.contentType = 'product';\\nmockData.reviewEmail\\\n    \\ = 'pavel@sabatka.net';\\nmockData.user = user;\\nmockData.products = [{\\n  'item_id':\\\n    \\ \\\"SKU_12345\\\",\\n  'item_name': \\\"Adidas Ultraboost\\\",\\n  'price': 3718.18,\\n\\\n    \\  'fullPrice': 4499,\\n  'quantity': 3,\\n  'item_category': \\\"Boty\\\",\\n  'item_category2':\\\n    \\ \\\"Sportovní boty\\\",\\n  'item_category3': \\\"Běžecké boty\\\",\\n  'item_category4':\\\n    \\ false,\\n  'item_category5': false\\n}];\\nmockData.order = {\\n  'transaction_id':\\\n    \\ 'T_123',\\n  'value': \\\"11154.54\\\",\\n  'tax': \\\"3.60\\\",\\n  'shipping': \\\"99\\\"\\\n    ,\\n  'shipping_tier': 'holub',\\n  'currency': \\\"CZK\\\",\\n  'coupon': 'SUMMER_SALE',\\n\\\n    \\  'customer_type': 'new',\\n  'payment': 19\\n};\\n\\nrunCode(mockData);\\n\\nlet expectedParams\\\n    \\ = {\\n  \\\"currency\\\":\\\"CZK\\\",\\n  \\n  \\\"order_id\\\": \\\"T_123\\\",\\n  \\\"value\\\": 11154.54,\\n\\\n    \\  \\\"value_tax\\\": 3.60,\\n//  \\\"event_id\\\": \\\"Purchase__T_123\\\",\\n  \\\"delivery_price\\\"\\\n    : 99,\\n  \\\"delivery_type\\\": \\\"holub\\\",\\n  \\\"review_email\\\": \\\"pavel@sabatka.net\\\"\\\n    ,\\n  \\n  'content_type': 'product',\\n  'contents': [{\\n    'content_name': 'Adidas\\\n    \\ Ultraboost',\\n    'content_category': 'Boty | Sportovní boty | Běžecké boty',\\n\\\n    \\    'id': 'SKU_12345',\\n    'quantity': 3,\\n    'unit_price': 3718.18\\n  }]\\n\\\n    };\\n\\n\\nassertThat(SEM.length, 'Strange count of SEM calls, expected config ->\\\n    \\ updateUserData -> track PageView').isEqualTo(3);\\nassertThat(SEM[0].command,\\\n    \\ 'First command must be \\\"config\\\"').isEqualTo('config');\\n\\nassertThat(SEM[1].command,\\\n    \\ 'Third command must be \\\"updateUserData\\\"').isEqualTo('updateUserData');\\nassertThat(SEM[1].params,\\\n    \\ 'Event params are not same').isEqualTo(expectedUserParams);\\n\\nassertThat(SEM[2].command,\\\n    \\ 'Second command must be \\\"track\\\"').isEqualTo('track');\\nassertThat(SEM[2].name,\\\n    \\ 'Second command name must be \\\"Purchase\\\"').isEqualTo('Purchase');\\nassertThat(SEM[2].params,\\\n    \\ 'Event params are not same').isEqualTo(expectedParams);\"\n- name: Event Params - Purchase - Zero value\n  code: \"mockData.eventName = 'Purchase';\\nmockData.contentType = 'product';\\nmockData.user\\\n    \\ = user;\\nmockData.products = [{\\n  'item_id': \\\"SKU_12345\\\",\\n  'item_name':\\\n    \\ \\\"Adidas Ultraboost\\\",\\n  'price': 3718.18,\\n  'fullPrice': 4499,\\n  'quantity':\\\n    \\ 3,\\n  'item_category': \\\"Boty\\\",\\n  'item_category2': \\\"Sportovní boty\\\",\\n\\\n    \\  'item_category3': \\\"Běžecké boty\\\",\\n  'item_category4': false,\\n  'item_category5':\\\n    \\ false\\n}];\\nmockData.order = {\\n  'id': 'T_123',\\n  'value': 0,\\n  'shipping':\\\n    \\ 99,\\n  'shipping_type': 'holub',\\n  'payment': 19\\n};\\n\\nrunCode(mockData);\\n\\\n    \\nlet expectedParams = {\\n  \\\"currency\\\":\\\"CZK\\\",\\n  \\n  \\\"order_id\\\": \\\"T_123\\\"\\\n    ,\\n  \\\"value\\\": 0,\\n//  \\\"event_id\\\": \\\"Purchase__T_123\\\",\\n  \\\"delivery_price\\\"\\\n    : 99,\\n  \\\"delivery_type\\\": \\\"holub\\\",\\n  \\n  'content_type': 'product',\\n  'contents':\\\n    \\ [{\\n    'content_name': 'Adidas Ultraboost',\\n    'content_category': 'Boty\\\n    \\ | Sportovní boty | Běžecké boty',\\n    'id': 'SKU_12345',\\n    'quantity': 3,\\n\\\n    \\    'unit_price': 3718.18\\n  }]\\n};\\n\\n\\nassertThat(SEM.length, 'Strange count\\\n    \\ of SEM calls, expected config -> updateUserData -> track PageView').isEqualTo(3);\\n\\\n    assertThat(SEM[0].command, 'First command must be \\\"config\\\"').isEqualTo('config');\\n\\\n    \\nassertThat(SEM[1].command, 'Third command must be \\\"updateUserData\\\"').isEqualTo('updateUserData');\\n\\\n    assertThat(SEM[1].params, 'Event params are not same').isEqualTo(expectedUserParams);\\n\\\n    \\nassertThat(SEM[2].command, 'Second command must be \\\"track\\\"').isEqualTo('track');\\n\\\n    assertThat(SEM[2].name, 'Second command name must be \\\"Purchase\\\"').isEqualTo('Purchase');\\n\\\n    assertThat(SEM[2].params, 'Event params are not same').isEqualTo(expectedParams);\"\n- name: Event Params - ViewContent\n  code: \"mockData.eventName = 'ViewContent';\\nmockData.contentType = 'product';\\n\\\n    mockData.products = [{\\n  'item_id': \\\"SKU_12345\\\",\\n  'item_name': \\\"Adidas Ultraboost\\\"\\\n    ,\\n  'price': 3718.18,\\n  'fullPrice': 4499,\\n  'quantity': 1,\\n  'item_category':\\\n    \\ \\\"Boty\\\",\\n  'item_category2': \\\"Sportovní boty\\\",\\n  'item_category3': \\\"Bě\\\n    žecké boty\\\",\\n  'item_category4': false,\\n  'item_category5': false\\n}];\\n\\n\\\n    runCode(mockData);\\n\\nlet expectedParams = {\\n  \\\"currency\\\":\\\"CZK\\\",\\n  'value':\\\n    \\ 3718.18,\\n  \\n  'content_type': 'product',\\n  'contents': [{\\n    'content_name':\\\n    \\ 'Adidas Ultraboost',\\n    'content_category': 'Boty | Sportovní boty | Běžecké\\\n    \\ boty',\\n    'id': 'SKU_12345',\\n    'quantity': 1,\\n    'unit_price': 3718.18\\n\\\n    \\  }]\\n};\\n\\nassertHitWasSent('ViewContent', expectedParams);\"\n- name: Event Params - AddToCart\n  code: \"mockData.eventName = 'AddToCart';\\nmockData.contentType = 'product';\\nmockData.products\\\n    \\ = [{\\n  'item_id': \\\"SKU_12345\\\",\\n  'item_name': \\\"Adidas Ultraboost\\\",\\n \\\n    \\ 'price': 3718.18,\\n  'fullPrice': 4499,\\n  'quantity': 1,\\n  'item_category':\\\n    \\ \\\"Boty\\\",\\n  'item_category2': \\\"Sportovní boty\\\",\\n  'item_category3': \\\"Bě\\\n    žecké boty\\\",\\n  'item_category4': false,\\n  'item_category5': false\\n}];\\n\\n\\\n    runCode(mockData);\\n\\nlet expectedParams = {\\n  \\\"currency\\\":\\\"CZK\\\",\\n  \\\"value\\\"\\\n    : 3718.18,\\n  \\n  'content_type': 'product',\\n  'contents': [{\\n    'content_name':\\\n    \\ 'Adidas Ultraboost',\\n    'content_category': 'Boty | Sportovní boty | Běžecké\\\n    \\ boty',\\n    'id': 'SKU_12345',\\n    'quantity': 1,\\n    'unit_price': 3718.18\\n\\\n    \\  }]\\n};\\n\\nassertHitWasSent('AddToCart', expectedParams);\"\n- name: Event Params - AddToCart - Products as Object\n  code: \"mockData.eventName = 'AddToCart';\\nmockData.contentType = 'product';\\nmockData.products\\\n    \\ = {\\n  'item_id': \\\"SKU_12345\\\",\\n  'item_name': \\\"Adidas Ultraboost\\\",\\n  'price':\\\n    \\ 3718.18,\\n  'fullPrice': 4499,\\n  'quantity': 1,\\n  'item_category': \\\"Boty\\\"\\\n    ,\\n  'item_category2': \\\"Sportovní boty\\\",\\n  'item_category3': \\\"Běžecké boty\\\"\\\n    ,\\n  'item_category4': false,\\n  'item_category5': false\\n};\\n\\nrunCode(mockData);\\n\\\n    \\nlet expectedParams = {\\n  \\\"currency\\\":\\\"CZK\\\",\\n  \\\"value\\\": 3718.18,\\n  \\n\\\n    \\  'content_type': 'product',\\n  'contents': [{\\n    'content_name': 'Adidas Ultraboost',\\n\\\n    \\    'content_category': 'Boty | Sportovní boty | Běžecké boty',\\n    'id': 'SKU_12345',\\n\\\n    \\    'quantity': 1,\\n    'unit_price': 3718.18\\n  }]\\n};\\n\\nassertHitWasSent('AddToCart',\\\n    \\ expectedParams);\"\n- name: Event Params - AddToCart - Product ID is Integer\n  code: \"mockData.eventName = 'AddToCart';\\nmockData.contentType = 'product';\\nmockData.products\\\n    \\ = {\\n  'item_id': 12345,\\n  'item_name': \\\"Adidas Ultraboost\\\",\\n  'price':\\\n    \\ 3718.18,\\n  'fullPrice': 4499,\\n  'quantity': 1,\\n  'item_category': \\\"Boty\\\"\\\n    ,\\n  'item_category2': \\\"Sportovní boty\\\",\\n  'item_category3': \\\"Běžecké boty\\\"\\\n    ,\\n  'item_category4': false,\\n  'item_category5': false\\n};\\n\\nrunCode(mockData);\\n\\\n    \\nlet expectedParams = {\\n  \\\"currency\\\":\\\"CZK\\\",\\n  \\\"value\\\": 3718.18,\\n  \\n\\\n    \\  'content_type': 'product',\\n  'contents': [{\\n    'content_name': 'Adidas Ultraboost',\\n\\\n    \\    'content_category': 'Boty | Sportovní boty | Běžecké boty',\\n    'id': '12345',\\n\\\n    \\    'quantity': 1,\\n    'unit_price': 3718.18\\n  }]\\n};\\n\\nassertHitWasSent('AddToCart',\\\n    \\ expectedParams);\"\n- name: Event Params - Search\n  code: \"mockData.eventName = 'Search';\\nmockData.contentType = 'search';\\nmockData.searchString\\\n    \\ = 'Adidas Ultra';\\nmockData.searchResultCount = 1;\\nmockData.products = [{\\n\\\n    \\  'item_id': \\\"SKU_12345\\\",\\n  'item_name': \\\"Adidas Ultraboost\\\",\\n  'price':\\\n    \\ 3718.18,\\n  'fullPrice': 4499,\\n  'quantity': 1,\\n  'item_category': \\\"Boty\\\"\\\n    ,\\n  'item_category2': \\\"Sportovní boty\\\",\\n  'item_category3': \\\"Běžecké boty\\\"\\\n    ,\\n  'item_category4': false,\\n  'item_category5': false\\n}];\\n\\nrunCode(mockData);\\n\\\n    \\nlet expectedParams = {\\n  \\\"currency\\\":\\\"CZK\\\",\\n  \\\"value\\\":3718.18,\\n  \\n\\\n    \\  'content_type': 'search',\\n//  'num_items': 1,\\n  'search_string': 'Adidas\\\n    \\ Ultra',\\n  \\n  'contents': [{\\n    'content_name': 'Adidas Ultraboost',\\n  \\\n    \\  'content_category': 'Boty | Sportovní boty | Běžecké boty',\\n    'id': 'SKU_12345',\\n\\\n    \\    'quantity': 1,\\n    'unit_price': 3718.18\\n  }]\\n};\\n\\nassertHitWasSent('Search',\\\n    \\ expectedParams);\"\n- name: Event Params - Optional\n  code: |-\n    mockData.url = 'https://www.sabatka.net/cs';\n    mockData.eventId = 'ARTICLE_123';\n    mockData.contentName = 'Seznam SEM template finally approved';\n\n    runCode(mockData);\n\n    let expectedParams = {\n      \"event_url\": \"https://www.sabatka.net/cs\",\n      \"contents\": [{\n        \"content_name\": \"Seznam SEM template finally approved\",\n      }],\n      \"currency\":\"CZK\"\n    };\n\n    assertHitWasSent('PageView', expectedParams, 'ARTICLE_123');\n- name: Custom Params\n  code: |-\n    mockData.customParams = [{\"name\":\"foo\",\"value\":\"bar\"}];\n\n    runCode(mockData);\n\n    let expectedParams = {\n      \"currency\":\"CZK\",\n      \"foo\": \"bar\"\n    };\n\n    assertHitWasSent('PageView', expectedParams);\n- name: Update User Data\n  code: |-\n    // run first event\n    runCode(mockData);\n\n\n    mockData.eventName = 'updateUserData';\n    mockData.user = user;\n\n    runCode(mockData);\n\n    var expectedParams = {\n      \"fn\":\"Pavel\",\n      \"ln\":\"Sabatka\",\n      \"ge\":\"m\",\n      \"ct\":\"Brno\",\n      \"sr\":\"Brnenska 1\",\n      \"zp\":\"60200\",\n      \"country\":\"CZ\",\n      \"db\":\"19800823\",\n      \"subscription_id\":\"subscription123\",\n      'em': \"pavel@sabatka.net\",\n      'ph': \"+420111222333\",\n    };\n\n    assertThat(SEM.length, 'Strange count of SEM calls, expected config -> track PageView -> updateUserData').isEqualTo(3);\n    assertThat(SEM[0].command, 'First command must be \"config\"').isEqualTo('config');\n    assertThat(SEM[1].command, 'Second command must be \"track\"').isEqualTo('track');\n    assertThat(SEM[2].command, 'Third command must be \"updateUserData\"').isEqualTo('updateUserData');\n    assertThat(SEM[2].params, 'Event params are not same').isEqualTo(expectedParams);\n- name: Update User Data - Email and Phone\n  code: |-\n    // run first event\n    runCode(mockData);\n\n\n    mockData.eventName = 'updateUserData';\n\n    mockData.userEmail = \"pavel@sabatka.net\";\n    mockData.userPhone = \"+420111222333\";\n\n    runCode(mockData);\n\n    var expectedParams = {\n      'em': \"pavel@sabatka.net\",\n      'ph': \"+420111222333\",\n    };\n\n    assertThat(SEM.length, 'Strange count of SEM calls, expected config -> track PageView -> updateUserData').isEqualTo(3);\n    assertThat(SEM[0].command, 'First command must be \"config\"').isEqualTo('config');\n    assertThat(SEM[1].command, 'Second command must be \"track\"').isEqualTo('track');\n    assertThat(SEM[2].command, 'Third command must be \"updateUserData\"').isEqualTo('updateUserData');\n    assertThat(SEM[2].params, 'Event params are not same').isEqualTo(expectedParams);\n- name: Update User Data - Before Other Event\n  code: |-\n    // standard ViewContent event\n    mockData.eventName = 'ViewContent';\n    mockData.contentType = 'product';\n    mockData.products = [{\n      'item_id': \"SKU_12345\",\n      'item_name': \"Adidas Ultraboost\",\n      'price': 3718.18,\n      'fullPrice': 4499,\n      'quantity': 1,\n      'item_category': \"Boty\",\n      'item_category2': \"Sportovní boty\",\n      'item_category3': \"Běžecké boty\",\n      'item_category4': false,\n      'item_category5': false\n    }];\n    // added user data\n    mockData.user = user;\n\n    runCode(mockData);\n\n\n    assertThat(SEM.length, 'Strange count of SEM calls, expected config -> updateUserData -> track PageView').isEqualTo(3);\n    assertThat(SEM[0].command, 'First command must be \"config\"').isEqualTo('config');\n\n    assertThat(SEM[1].command, 'Third command must be \"updateUserData\"').isEqualTo('updateUserData');\n    assertThat(SEM[1].params, 'Event params are not same').isEqualTo(expectedUserParams);\n\n    assertThat(SEM[2].command, 'Second command must be \"track\"').isEqualTo('track');\n- name: Event Params - ViewContent - Page\n  code: |-\n    mockData.eventName = 'ViewContent';\n    mockData.contentType = 'page';\n    mockData.contentName = \"Šablona pro SEM\";\n    mockData.contentCategory = \"Nějaká kategorie / Podkategorie\";\n\n    runCode(mockData);\n\n    let expectedParams = {\n      \"currency\": \"CZK\",\n      'content_type': 'page',\n      'contents': [{\n        'content_name': 'Šablona pro SEM',\n        'content_category': 'Nějaká kategorie / Podkategorie'\n      }]\n    };\n\n    assertHitWasSent('ViewContent', expectedParams);\nsetup: \"\\n// --------- MOCK DATA ---------\\nlet mockData = {\\n  'id': 12345,\\n  'eventName':\\\n  \\ 'PageView',\\n  'currency': 'CZK',\\n  'usingConsentModeV2': true\\n};\\n\\nlet consentStatus\\\n  \\ = {\\n  'ad_storage': 'granted',\\n  'ad_personalization': 'granted',\\n  'ad_user_data':\\\n  \\ 'granted',\\n  'analytics_storage': 'granted'\\n};\\n\\nlet user = {\\n  'email': 'pavel@sabatka.net',\\n\\\n  \\  'phone': '+420111222333',\\n  'fname': 'Pavel',\\n  'lname': 'Sabatka',\\n  'g':\\\n  \\ 'm',\\n  'birth': '19800823',\\n  'city': 'Brno',\\n  'street': 'Brnenska 1',\\n \\\n  \\ 'postalCode': '60200',\\n  'countryCode': 'CZ',\\n  'subscription': 'subscription123'\\n\\\n  };\\n\\nlet loadScriptImidiately = true;\\nlet loadScriptCallback = null;\\n\\n\\n// ---------\\\n  \\ EXPECTED DATA ------------------\\n\\nvar expectedUserParams = {\\n  \\\"fn\\\":\\\"Pavel\\\"\\\n  ,\\n  \\\"ln\\\":\\\"Sabatka\\\",\\n  \\\"ge\\\":\\\"m\\\",\\n  \\\"ct\\\":\\\"Brno\\\",\\n  \\\"sr\\\":\\\"Brnenska\\\n  \\ 1\\\",\\n  \\\"zp\\\":\\\"60200\\\",\\n  \\\"country\\\":\\\"CZ\\\",\\n  \\\"db\\\":\\\"19800823\\\",\\n  \\\"\\\n  subscription_id\\\":\\\"subscription123\\\",\\n  'em': \\\"pavel@sabatka.net\\\",\\n  'ph':\\\n  \\ \\\"+420111222333\\\",\\n};\\n\\n\\n// --------- RESET TEST ENVIRONMENT ---------\\nconst\\\n  \\ log = require('logToConsole');\\nconst templateStorage = require('templateStorage');\\n\\\n  templateStorage.clear();\\nlet injectScriptTimes = 0;\\nlet SEM = [];\\n\\n\\n\\n// ---------\\\n  \\ MOCK METHODS ---------\\nmock('getTimestamp', function() {\\n  return 1766595600;\\\n  \\ // Merry Christmas :-)\\n});\\n\\nmock('sha256', function(str, succ, fail) {\\n  var\\\n  \\ digest = false;\\n  if (str === 'pavel@sabatka.net') digest = '04f7acd5d8241e64e43bbdb5a2589af98090435f190999fc9ce00d96b2c6df3a';\\n\\\n  \\  if (str === '+420111222333') digest = '8e858b30491acc065fdb545ef111ac6a3f43a6debe60e594b46ae8915c6f6ed6';\\n\\\n  \\  if (digest) {\\n    succ(digest);\\n  } else {\\n    fail();\\n  }\\n});\\n\\nmock('injectScript',\\\n  \\ function(url, success, failure) {\\n  injectScriptTimes++;\\n  assertThat(url).isEqualTo('https://l.seznam.cz/sul.js?id=12345');\\n\\\n  \\  \\n  if (loadScriptImidiately) {\\n    success();\\n  } else {\\n    loadScriptCallback\\\n  \\ = success;\\n  }\\n});\\n\\nmock('isConsentGranted', function(name) {\\n  return consentStatus[name]\\\n  \\ === 'granted';\\n});\\n\\nmock('callInWindow', function(tracker, command, param1,\\\n  \\ param2, param3, param4) {\\n  const JSON = require('JSON');\\n  let params = [command,\\\n  \\ param1];\\n  \\n  if (command === 'config' || command === 'updateUserData') {\\n\\\n  \\    SEM.push({\\n      'command': command,\\n      'params': JSON.parse(JSON.stringify(param1))\\n\\\n  \\    });\\n\\n  } else if (command === 'track') {\\n    if (param2) {\\n      param2\\\n  \\ = JSON.parse(JSON.stringify(param2));\\n      if (param2.event_time) param2.event_time\\\n  \\ = 1766595600;\\n    }\\n    SEM.push({\\n      'command': command,\\n      'name':\\\n  \\ param1,\\n      'params': param2,\\n      'cmdstring': param3,\\n      'eventId':\\\n  \\ param4\\n    });\\n  } else {\\n    assertThat(false, 'Invalid command '+command).isTrue();\\n\\\n  \\  }\\n});\\n\\n// --------- CUSTOM ASSERTATIONS ---------\\nfunction assertHitWasSent(name,\\\n  \\ params, eventId) {\\n  const JSON = require('JSON');\\n  params = JSON.parse(JSON.stringify(params));\\n\\\n  \\  assertThat(2, 'Expected only 1 event').isEqualTo(SEM.length);\\n  assertThat(SEM[0].command,\\\n  \\ 'First command must be \\\"config\\\"').isEqualTo('config');\\n  assertThat(SEM[1].command,\\\n  \\ 'Second command must be \\\"track\\\"').isEqualTo('track');\\n  assertThat(SEM[1].name,\\\n  \\ 'Event name are not same').isEqualTo(name);\\n  assertThat(SEM[1].params, 'Event\\\n  \\ params are not same').isEqualTo(params);\\n  if (eventId) {\\n    assertThat(SEM[1].eventId,\\\n  \\ 'Event ID is not same').isEqualTo(eventId);\\n  }\\n}\"\n\n\n___NOTES___\n\nCreated on 16. 1. 2026 15:17:46\n\n\n",
                "galleryReference": {
                    "host": "github.com",
                    "owner": "pavelsabatka",
                    "repository": "gtm-seznam-sem",
                    "version": "34ae1be27d9b32f1577a3d61307dfc0fc89c02ab",
                    "signature": "43bdb660c13410a614008c1d69eb23245df7d06378db8358294458194387c7b0",
                    "galleryTemplateId": "T9C52"
                }
            }
        ]
    }
}