Site icon Blog ARC Optimizer

Comment exclure des balises dans Google Tag Manager en fonction du rôle d’utilisateur connecté du visiteur dans WordPress

Comment exclure des balises dans Google Tag Manager en fonction du rôle d’utilisateur connecté du visiteur dans WordPress


Tout au long de la journée, je me connecte à Martech Zone pour lire les soumissions de formulaires, ajouter et modifier du contenu et améliorer les performances du site. Le problème est que je ne veux pas que cette activité fausse mes analyses ou exécute des balises dans Gestionnaire de balises Google (GTM), comme ouvrir mon chatbot ou détecter l’emplacement d’un visiteur à l’aide d’un service de recherche IP (notre balise de chat ne se déclenche que lorsque l’utilisateur se trouve aux États-Unis).

Détecter les connectés sur WordPress avec Google Tag Manager

WordPress a déjà une fonctionnalité intégrée pour afficher un logged-in classe sur votre balise body qui indique si un utilisateur est connecté ou non. De nombreuses personnes l’utilisent dans Google Tag Manager pour exclure les balises du déclenchement, telles que Google Analytics Mots clés. Le processus fonctionne en recherchant un CSS classe automatiquement ajoutée à la balise body de votre site WordPress, en enregistrant le résultat dans une variable, puis en utilisant un déclencheur pour exécuter des balises spécifiques.

Voici comment définir cette variable et la déclencher dans GTM :

  1. Ajouter une variable appelé connecté à l’aide d’un élément DOM.
    • Définissez la méthode de sélection sur CSS Selector
    • Réglez le sélecteur d’élément sur body.logged-in
    • Définissez le nom d’attribut sur class
    • Sauvegarder
  1. Ajouter un déclencheur qui utilise la variable de connexion. Dans ce cas, vous souhaitez que le déclencheur ne se déclenche que lorsque l’utilisateur n’est PAS connecté, vous pouvez donc le faire en créant un déclencheur Non connecté.
    • Définissez le type de déclencheur sur DOM prêt
    • Réglez le déclencheur sur certains événements DOM Ready
    • Sélectionnez la variable Logged-In et égal null

Alternativement, vous pouvez définir la variable sur pas égal connecté et vous pouvez utiliser le déclencheur comme exclusion plutôt que comme inclusion. Dans tous les cas, utilisez ce déclencheur pour exécuter, généralement au lieu de All Pages.

Il y a cependant une limitation à cela. Que se passe-t-il si vous utilisez un site WordPress où vous souhaitez exclure un rôle de tirer une balise ? Dans mon cas, j’ai enregistré des contributeurs que je souhaite toujours activer nos déclencheurs de localisation et de chat. En utilisant le logged-in La méthodologie empêchera les balises de se déclencher sur tout utilisateur enregistré et connecté. Malheureusement, WordPress n’affiche automatiquement aucun rôle dans le code HTML de la page pour que vous puissiez déclencher une balise. Mais vous pouvez l’ajouter, si!

Ajouter une classe Body avec le rôle du visiteur sur WordPress

Tout comme WordPress injecte automatiquement une classe de connectés dans la classe body, vous pouvez ajouter le rôle de l’utilisateur dans une classe body. Au sein de votre thème enfant functions.php fichier, vous pouvez ajouter la fonction suivante :

function add_role_to_body_class( $classes ) {
    if ( is_user_logged_in() ) {
        $current_user = wp_get_current_user();
        $user_role = array_shift($current_user->roles);
        $classes[] = 'role-' . $user_role;
    } else {
        $classes[] = 'role-guest';
    }
    return $classes;
}
add_filter( 'body_class', 'add_role_to_body_class' );

Donc, si vous êtes un administrateur, cela ajoutera <body class="role-administrator" avec toutes les autres classes comme connecté, etc. Et si vous n’êtes pas connecté, la fonction ajoute une classe imaginaire de role-guest.

Détecter le rôle du visiteur WordPress sur WordPress avec Google Tag Manager

Dans mon cas, je souhaite exclure le déclenchement de certaines balises lorsqu’un administrateur est connecté au site. Tout comme dans l’exemple ci-dessus, la connexion fonctionne pour une variable et un déclencheur ; maintenant je peux le faire avec role-administrator. Plutôt que de spécifier la classe dans le sélecteur d’éléments, je vais simplement passer le contenu entier de la classe.

  1. Ajouter une variable appelé Body Class à l’aide d’un élément DOM.
    • Définissez la méthode de sélection sur CSS Selector
    • Réglez le sélecteur d’élément sur body
    • Définissez le nom d’attribut sur class
    • Sauvegarder
  1. Ajouter un déclencheur qui utilise le Body Class variable. Dans ce cas, vous souhaitez que le déclencheur ne se déclenche que lorsque l’utilisateur n’est PAS connecté, vous pouvez donc le faire en créant un Is Administrator déclencher.
    • Définissez le type de déclencheur sur DOM prêt
    • Réglez le déclencheur sur certains événements DOM Ready
    • Sélectionnez la variable Body Class contient role-administrator

  1. Sur votre Tag Triggerajoutez le déclencheur Is Administrator à vos exceptions. Cela garantira que la balise ne se déclenche jamais lorsqu’un administrateur est connecté alors qu’il consulte votre site. Dans le cas de mon site, j’ai une balise qui détecte si quelqu’un se trouve sur le domaine principal (plutôt qu’une traduction) et que la balise n’est PAS déclenchée lorsque l’administrateur est connecté.

Mise à jour: J’ai mis à jour cette logique après l’avoir publiée et envoyée par e-mail. Capturer toute la classe de corps était une variable beaucoup plus efficace afin que je puisse l’utiliser pour spécifier des rôles ou si la personne était connectée à partir d’une seule variable.




Source link
Quitter la version mobile