Creare il DataLayer di Google Tag Manager in WordPress

Working on code

In questi giorni mi sono scontrato con l’implementazione di un dataLayer in WordPress.
Ho passato una mezza giornata a cercare un plugin che mi soddisfacesse. Tempo infruttuoso.
La seconda parte della giornata è stata dedicata a cercare tutorial su come implementare in php il dataLayer. Anche questa infruttuosa: tutti complicatissimi e privi delle variabili per me essenziali:

  • tipo di pagina: home, post, categoria, 404, paginasingola, risultato di una ricerca
  • categoria della pagina
  • autore del post
  • id dell’utente wordpress
  • utente loggato o meno

La mia ricerca infruttuosa mi ha portato a decidere di svillupare il dataLayer da solo consultando la documentazione di wordpress per developer

Il codice che troverete qua sotto è da inserire nel file “header.php” del vostro template.
Premessa: non sono un sviluppatore, potete usare questo codice a vostro rischio e pericolo non mi prendo nessuna responsabilità

<script type="text/javascript">
//Creo la variabile dataLayer
dataLayer = [{

//Creazione variabili di pagina

// Verifico che la pagina corrente sia la home
<!?php if(is_home()): ?>

//valorizzo le variabile per la homme
‘pageType’:’homepage’,
‘pageCategory’: ‘home’,
<!?php endif; ?>

// Verifico che la pagina corrente sia una pagina singola
<!?php if(is_page()): ?>
//Valorizzo le variabili per la pagina singola
‘pageType’:’wppage’,
‘pageCategory’: ‘singlepage’,
<!?php endif; ?>

// Verifico che la pagina corrente sia un post
<!?php if(is_single()): ?>

//Valorizzo le variabili per un post
‘pageType’:’post’,
‘pageCategory’: ‘<!?php $categories = get_the_category($post->ID); echo $categories[0]->cat_name; ?&gt;’,
‘author’: ‘<!?php echo get_the_author(); ?>’,
<!?php endif; ?>

// Verifico che la pagina corrente sia una categoria
<!?php if(is_category()): ?>

//Valorizzo le variabili per una categoria
‘pageType’:’category’,
‘pageCategory’: ‘<!?php echo get_category(get_query_var(‘cat’))->name; ?&gt;’,
<!?php endif; ?>

// Verifico che la pagina corrente sia generata da un errore 404
<!?php if(is_404()): ?>

//Valorizzo le variabili per la pagina 404
‘pageType’:’errorpage’,
‘pageCategory’:’error 404′,
<!?php endif; ?>

// Verifico che la pagina corrente sia una SERP interna
<!?php if(is_search()): ?>
//Valorizzo le variabili per la SERP interna
‘pageType’:’searchpage’,
‘pageCategory’:’searchresults’,
<!?php endif; ?>

//Creazione variabili utente

//Verifico se l’utente sia loggato
<!?php if(is_user_logged_in()) {?>

//Creo le variabili utente loggato
‘userlogged’: ‘logged’,
‘userid’: ‘wp-<!?php echo get_current_user_id(); ?>’

<!?php } else {?>
//Creo le variabili utente non loggato
‘userlogged’: ‘notLogged’,
‘userid’:’none’
<!?php }?>
}];
</script>

Il risultato finale all’interno della pagina html sara’ qualcosa di simile:

&lt;script type="text/javascript"&gt;

dataLayer = [{
‘pageType’:’homepage’,
‘pageCategory’: ‘home’,
‘userlogged’: ‘notLogged’,
‘userid’:’none’
}];

</script>

Esisteranno modi migliori di implementare questo codice, ma sul mio blog funziona, potete testarlo e riutilizzarlo sempre a vostro rischio.

2 risposte a “Creare il DataLayer di Google Tag Manager in WordPress”

  1. Ciao Filippo,

    per due progetti (WP y WP+Woocommerce) ho installato il plugin di DuracellTomi, con la nuova versione 0,7 sta piú che bene, e risultato con il DataLayer, fantastico.

    Lo conoscevi giá?
    Gli altri effettivamente non sono ancora all’altezza di questo ultimo.

    1. Ciao Marco,
      lo avevo provato forse in una delle versioni precedenti ma non mi soddisfaceva, ad esempio non riuscivo a passare l’id dell’utente ed altri elementi. Cosi’ me lo sono creato da solo

Rispondi