Archívy dle tagu: google forms

Webová analytika

Sledování odeslání Google Formuláře v Google Analytics

Google formuláře jsou často využívané pro registrace na události nebo výzkumy a následně vloženy na web jako iframe. Stranou nechme diskusi o tom, zda by měl být Google Form takto využíván. Klienti ho mají rádi a uživatelé tyto formuláře klidně odesílají, takže s nimi problém nemám. Potíže ale začaly, když jsme chtěl formuláře měřit.

image

Do samotného iframu není možné zasáhnout, takže ani není možné používat postMessage pro informování okna o události a je nutné na to jít workaroundem. Našel jsem a začal využívat řešení postavané na tomto kódu z infoentropy.com. Kód dělá pouze to, že kontroluje počet načtení iframu. Pokud dojde k více než jednomu načtení, bere se to jako odeslání.

<script>jQuery(function () {
    window.loaded = 0;

   f = jQuery("iframe#googleframe");
   f.load( function () { 
        window.loaded++; 
        if (window.loaded >= 2)
        {
           dataLayer.push ({ "event": "cfsubmitted", "contactform-type": "googleform" });
           // zde by mohl být i kód pro přímé odeslání do GA, přes GTM je elegantnější.
        }
    });
});</script>

Implementace měření iframe

  1. Přiřadíte iframu ID googleframe.
  2. Vytvoříme v Google Tag Manager proměnnou pro typ kontaktního formuláře.
  3. Pomocí GTM vložíme Vlastní kód HTML a spouštění nastavíme při načtení konkrétních stránek, kde jsou Google Formuláře. V podstatě dojde k vložení dataLayer přímo z Google Tag Manager.
  4. Vytvoříme tag v GTM, který při události cfsubmitted vystřelí Google Analytics událost.
  5. V Google Analytics nyní vidíme událost, můžeme ještě vytvořit na základě události cíl.

Možnosti úpravy kódu

Tento kód je dobré ještě upravit, pokud to pro vás dává smysl:

  • Přidat proměnnou odeslano s možnostmi 0/1. Nyní pokud by uživatel odeslal 3x, bude informace zaslána 3x do Google Analytics.
  • Kód by bylo možné snadno upravit tak, aby měřil znovunačtení jakéhokoliv iframe a v dataLayer poté vracel id tohoto iframe.
Číst více