La posizione degli snippet di Optimize è importante

Dal titolo sembra una banalità, in effetti è ovvio che il giusto posizionamento di una porzione di codice ne determini il corretto funzionamento, ma se a farti sbagliare è proprio la documentazione ufficiale?

Ebbene sì, la documentazione di Google Optimize, strumento per effettuare test A/B e fornire le migliori esperienze digitali possibili ai tuoi clienti, nonostante specifichi chiaramente quale debba essere l’ordine dei tag, può trarti in inganno.

La documentazione ufficiale, raggiungibile al seguente link https://support.google.com/optimize/answer/6262084 mostra come aggiungere Optimize al tag analytics.js.
La Fig. 1 è estratta direttamente dalla pagina in questione:

Fig. 1 – Indicazioni di posizionamento di Google Optimize nella documentazione in lingua inglese

Tuttavia, nel caso di inserimento di codice come da immagine possono essere ottenuti in risposta alcuni errori.
Ad esempio all’esecuzione dell’anteprima di un esperimento l’estensione Google Optimize Chrome può restituire il seguente messaggio:

The Google Optimize snippet for the container with ID GTM-1234567 is not correctly installed on this page. To preview experiences or debug the container, make sure the Google Optimize snippet is installed on any pages you want to test.

Google Optimize Chrome

Oppure il controllo della variabile globale google_optimize restituisce il valore undefined.

Soluzione

Questa serie di grattacapi è risolvibile seguendo la documentazione in una lingua diversa da quella inglese… sembra un paradosso, ma aggiungendo il parametro ?hl=it all’URL indicato sopra, ovvero:

https://support.google.com/optimize/answer/6262084?hl=it

Si accede ad una documentazione in italiano, non completamente tradotta (quantomeno al momento della scrittura di questo articolo), che mostra un esempio con il corretto ordine degli snippet di codice, Fig. 2:

Fig. 2 – Indicazioni di posizionamento di Google Optimize nella documentazione in lingua italiana (anche se la parte di esempio, come si vede dall’immagine, è rimasta in lingua inglese)

In pratica lo snippet di Optimize deve essere posizionato dopo quello di Analytics.

Curiosità

L’idea di questo articolo è nata dal contributo che ho dato su stackoverflow in risposta ad un utente che si è trovato in mezzo a questo strano grattacapo, Fig. 3:

Fig. 3 – Risposta al problema che ho dato su stackoverflow (quotata 100 punti reputazione)

Uno dei tanti esempi di come un’operazione apparentemente semplice può far perdere giornate di lavoro, alla ricerca della risoluzione di un problema generato, pur seguendo fedelmente le specifiche ufficiali.