Fermer

mars 21, 2024

WordPress : comment ajouter une chaîne de requête de campagne UTM à des redirections externes

WordPress : comment ajouter une chaîne de requête de campagne UTM à des redirections externes


Martech Zone est souvent un site intermédiaire où nous connectons nos visiteurs avec des produits, des solutions et des services disponibles sur d’autres sites. Nous ne voulons jamais que notre site soit utilisé comme un ferme de backlinks par Référencement consultants, nous sommes donc assez prudents dans le contenu que nous acceptons et dans la manière dont nous redirigeons nos visiteurs.

Là où nous ne pouvons pas monétiser un lien référent externe, nous évitons de transmettre toute autorité à la destination. Encore une fois, je ne veux pas que ce site soit vu par un moteur de recherche comme un site où nous essayons de jouer avec les moteurs de recherche pour le compte d’un client ou où nous sommes payés pour créer des backlinks par un backlinker sans scrupules. Chaque jour, nous refusons de l’argent pour ce faire, car le résultat serait un désastre pour mon classement dans les moteurs de recherche, la confiance que j’ai bâtie avec nos lecteurs et… en fin de compte… la valeur du site.

Redirections WordPress

Pour gérer ce processus, j’utilise Classer les pros en mathématiques capacités de redirection. Cela me permet de classer une redirection vers la page de destination souhaitée et de suivre la quantité de trafic que j’envoie réellement vers la destination. Qu’une destination soit monétisée via un lien de parrainage (comme le lien Rank Math que je viens de partager) ou en envoyant du trafic sans lien d’affiliation, cela me permet d’organiser, de suivre et de créer des stratégies autour du trafic que j’envoie.

L’un des inconvénients de cette solution est que les entreprises ne surveillent peut-être pas sites de référence dans Google Analytics puisqu’ils pourraient avoir des milliers de sites qui leur envoient du trafic. Puisque j’aimerais attirer leur attention en tant que bonne source de trafic important, j’aimerais ajouter UTM paramètres à un chaîne de requête de campagne pour que Martech Zone n’apparaisse pas seulement dans leurs sites référents ; mais apparaît dans suivi de campagne au sein de Google Analytics. De cette façon, une entreprise peut voir combien elle dépense pour d’autres campagnes et voir l’intérêt d’établir éventuellement un partenariat via un partenariat ou un parrainage avec Martech Zone.

Ajouter une chaîne de requête UTM aux redirections

Plutôt que de modifier chaque redirection que j’ai créée, cela peut être automatisé en regardant s’il existe déjà un paramètre UTM sur la destination. URL, en vérifiant s’il s’agit d’un lien externe et en ajoutant le nom de mon site comme source de la campagne. Quelques mises à jour :

  • Je cherche n’importe quel 3xx HTTP code.
  • J’ajoute également tout fragment de hachage (#).
  • Je mets à jour le type de redirection vers 302 trouvés.

Le résultat est donc une redirection de référence sortant de mon site qui peut ressembler à ceci :

https://martech.zone/refer/company/

Où se trouve ma destination de redirection :

https://company.com#bookmark

Va maintenant rediriger avec un 302 vers :

https://company.com?utm_source=Martech%2BZone&utm_medium=article&utm_campaign=referral#bookmark

Dans fonctions.php dans mon thème enfantj’ai ajouté ce qui suit PHP code:

function add_utm_to_redirects($location, $status) {
    if (is_admin() || !$location) {
        return $location;
    }

    // Check if the redirect status is 301
    if ($status >= 300 && $status < 400) {
        // Check if the destination URL is external (outside the site's domain)
        $site_url = site_url(); // Get the site's base URL
        if (strpos($location, $site_url) !== 0) {
            // Parse the URL to extract existing query parameters and the fragment
            $parsed_url = parse_url($location);
            parse_str($parsed_url['query'] ?? '', $existing_params);

            // Check if UTM parameters already exist in the destination URL
            if (!isset($existing_params['utm_source']) || !isset($existing_params['utm_medium']) || !isset($existing_params['utm_campaign'])) {
                $site_name = get_option('blogname'); // Get the site name
                $encoded_site_name = urlencode($site_name); // URL encode the site name

                $utm_parameters = array(
                    'utm_source' => $encoded_site_name, // Use the URL encoded site name as the utm_source
                    'utm_medium' => 'article', // Set utm_medium to 'article'
                    'utm_campaign' => 'referral', // Set utm_campaign to 'referral'
                );

                // Merge the new UTM parameters with existing parameters, excluding duplicates
                $combined_params = array_merge($existing_params, $utm_parameters);
                $query_string = http_build_query($combined_params);

                // Build the new URL with the combined query parameters
                $new_location = (isset($parsed_url['scheme']) ? $parsed_url['scheme'] . '://' : '') . $parsed_url['host'] . ($parsed_url['path'] ?? '') . '?' . $query_string;

                // Append the fragment identifier if it exists
                if (isset($parsed_url['fragment'])) {
                    $new_location .= '#' . $parsed_url['fragment'];
                }

                // Perform the redirect with a 302 status code
                wp_redirect($new_location, 302);
                exit();
            }
        }
    }

    return $location;
}
add_filter('wp_redirect', 'add_utm_to_redirects', 10, 2);


Parce que wp_redirect est une fonction WordPress, ce code fonctionnera avec n’importe quel plugin de redirection qui utilise cette fonction.




Source link