Sklik remarketing kód je vzorová ukázka, kdy pro každou takovou inicializaci si stahuje javascriptový soubor. Pokud jsou tyto kódy vloženy v jednom tagu, případně rovnou v šabloně, žádný problém. V případě, že vkládáte tyto kódy jako samostatné tagy a spouštíte je na stránce zároveň, tak je problém – javascriptový soubor se totiž stáhne jenom jednou a tím pádem se provede pouze jeden ze dvou konverzí.
Zadání: Potřebujete vložit dva remarketingové kódy Sklik na všechny stránky a mít je jako dva samostatné GTM tagy.
Ukázka kódů:
<script type="text/javascript"> /* <![CDATA[ */ var seznam_retargeting_id = 1234; /* ]]> */ </script> <script type="text/javascript" src="//c.imedia.cz/js/retargeting.js"></script> <script type="text/javascript"> /* <![CDATA[ */ var seznam_retargeting_id = 6789; /* ]]> */ </script> <script type="text/javascript" src="//c.imedia.cz/js/retargeting.js"></script>
Vytvoříte si dva tagy, např. “Remarketing – Sklik – 1234” a “Remarketing – Sklik – 6789” a nastavíte spuštění na Všechny stránky.
Po spuštění na stránce se nicméně objeví problém – tagy jsou sice spuštěny, ale samotná inicializace kódu proběhne pouze jednou:
Pokud bychom tento kód spustili v jednom tagu, nebo jej vložili v šabloně, tak proběhne inicializace obou kódů:
Zřejmě to v GTM souvisí s asynchronním načítáním každého tagu, přesnou příčinu nevím – pokud někdo ví, prosím o info do komentáře.
Řešení #1: Využít sekvenci tagů
Až bude spuštěna jedna značka, teprve se spustí druhá. U prvního tagu “Remarketing – Sklik – 1234” nastavíte v “Advanced settings” v části “Tag sequencing” spuštění dalšího tagu “Remarketing – Sklik – 6789” po dokončení tohoto tagu:
U tagu “Remarketing – Sklik – 6789” odstraníte “Firing Triggers”, tag se spustí dle příkazu výše.
Pokud jste vše udělali správně, tak po otestování uvidíte v konzoli provedení obou kódů:
Výhodou je, že nehýbeme nijak s kódem, nevýhodou je, že sekvence není z výpisu tagů vidět a může se z toho časem stát slušný zmatek, pokud bude tagů přibývat.
Řešení #2: Upravit javascript
Řešením je také možnost podívat se do samotného souboru, který se stahuje //c.imedia.cz/js/retargeting.js, zjistíte, že v něm není nic jiného, než vytvoření image pixelu s proměnnou seznam_retargeting_id a se zasláním URL:
{
if (window.seznam_retargeting_id) {
document.createElement("img").src = "//c.imedia.cz/retargeting?id=" + seznam_retargeting_id + "&url=" + encodeURIComponent(location.href);
}
}
tento kód tedy v podstatě stačí vložit namísto <script type=”text/javascript” src=”//c.imedia.cz/js/retargeting.js”></script>
můžete jej trošku zjednodušit – nepotřebujete kontrolovat proměnnou, prostě dosadíte rovnou hodnotu:
document.createElement("img").src = "//c.imedia.cz/retargeting?id=6789&url=" + encodeURIComponent(location.href);
Celý kód tagu bude tedy vypadat takto.
<script type="text/javascript">
/* <![CDATA[ */
document.createElement("img").src = "//c.imedia.cz/retargeting?id=6789&url=" + encodeURIComponent(location.href);
/* ]]> */
</script>Výhodou řešení 2 je, že oba tagy se spustí asynchronně a nemusíme nějak kontrolovat sekvenci, nevýhodou je, že v moment aktualizace kódu ze strany Seznamu bude nutné vše znova všechno aktualizovat, ale to by se řešilo tak jako tak.
Řešení #3: Upravit jako dva image tagy
Toto řešení vychází z předchozí úpravy javascriptu – jedná se o image pixely, takže je můžete klidně upravit a využít tak výchozí “Custom image tag”
Upravte jej tak, že vložíte část s URL
//c.imedia.cz/retargeting?id=6789&url=" + encodeURIComponent(location.href)
Takhle to nicméně ještě nebude fungovat, protože image tag nespustí část javascriptu + encodeURIComponent(location.href , takže tuto část vložíte pomocí built-in proměnné ((Page URL}}
//c.imedia.cz/retargeting?id=6789&url={{Page URL}}Celý tag bude tedy vypadat takto:
Výhodou řešení přes image tagy je ještě lehká vychytávka – tyto tagy se spustí i přes vypnutý Javascript.
Závěrem
Všechny varianty řešení jsou použitelné pokud opravdu potřebujete mít tyto nebo podobné kódy jako samostatné tagy.
Nejjednodušší a funkční řešení je samozřejmě mít vše vložené v jednom tagu.
Nebo stačí nastavit u těch tagů “Support document.write” na true a šlapou oba tagy 🙂











