Аналітыка і тэсціраваннеЗмест маркетынгуПлатны і арганічны пошукавы маркетынг

WordPress: Як дадаць радок запыту кампаніі UTM да знешніх перанакіраванняў

Martech Zone часта з'яўляецца скразным сайтам, дзе мы звязваем нашых наведвальнікаў з прадуктамі, рашэннямі і паслугамі, даступнымі на іншых сайтах. Мы ніколі не хочам, каб наш сайт выкарыстоўваўся як ферма зваротных спасылак by SEO кансультантаў, таму мы вельмі ўважліва ставімся да змесціва, якое прымаем, і да таго, як перанакіроўваем наведвальнікаў.

Калі мы не можам манетызаваць знешнюю спасылку для спасылкі, мы пазбягаем перадачы паўнамоцтваў да месца прызначэння. Зноў жа, я не хачу, каб гэты сайт калі-небудзь разглядаўся пошукавай сістэмай як сайт, дзе мы спрабуем абыграць пошукавыя сістэмы ад імя кліента або нам плацяць за зваротныя спасылкі нядобрасумленны спасылкаўнік. Кожны дзень мы адмаўляемся ад грошай, каб зрабіць гэта, таму што вынік будзе катастрофай для маіх рэйтынгаў у пошукавых сістэмах, даверу, які я заваяваў сярод нашых чытачоў, і… у канчатковым рахунку… каштоўнасці сайта.

Перанакіраванне WordPress

Каб кіраваць гэтым працэсам, я выкарыстоўваю Ранг Math Pro's магчымасці перанакіравання. Гэта дазваляе мне класіфікаваць перанакіраванне на старонку прызначэння, якую я хачу, і адсочвае, колькі трафіку я на самой справе адпраўляю да месца прызначэння. Незалежна ад таго, манетызуецца пункт прызначэння праз рэферальную спасылку (напрыклад, спасылку Rank Math, якой я толькі што падзяліўся) або адпраўляю трафік без партнёрскай спасылкі, гэта дазваляе мне арганізоўваць, адсочваць і ствараць стратэгіі вакол трафіку, які я адпраўляю.

Адным з недахопаў гэтага з'яўляецца тое, што кампаніі могуць не кантраляваць реферальные сайты ў Google Analytics так як у іх могуць быць тысячы сайтаў, якія адпраўляюць ім трафік. Паколькі я хацеў бы прыцягнуць іх увагу як добрую крыніцу моцнага трафіку, я хацеў бы дадаць UTM параметры для a радок запыту кампаніі так каб Martech Zone з'яўляецца не толькі на іх сайтах, але і ў адсочванне кампаніі у Google Analytics.

Такім чынам, кампанія можа ўбачыць, колькі яна траціць на іншыя кампаніі, і ўбачыць каштоўнасць магчымага пабудовы партнёрства праз партнёрства або спонсарства з Martech Zone.

Дадайце радок запыту UTM да перанакіраванняў

Ніжэй поўны рашэнне, якое дадае карыстальніцкія параметры UTM да ўсіх перанакіраванняў WordPress. Гэта гарантуе, што:

  1. utm_source = загаловак бягучай старонкі (запасны варыянт: назва сайта)
  2. utm_кампанія = "Redirect"
  3. utm_content = URL бягучай старонкі (рэзервовы: URL сайта)

Ён выкарыстоўвае сесіі для захопу канкрэтнай старонкі каштоўнасці. Калі сеанс недаступны, у перанакіраванні прымяняюцца запасныя значэнні па змаўчанні. Гэта дапаможа вам адсочваць, для продажаў і маркетынгу, якая менавіта старонка перанакіравала наведвальнікаў за межы сайта.

Крок 1: Пачніце сеанс PHP

У вашай тэме functions.php або невялікі карыстальніцкі убудова:

add_action( 'init', function() {
    if ( ! session_id() ) {
        session_start();
    }
});

Гэта гарантуе, што WordPress можа захоўваць і атрымліваць даныя $_SESSION.

Крок 2: Захоп інфармацыі старонкі пры кожнай загрузцы старонкі

Выкарыстоўваць add_action('wp') каб захапіць ток імя старонкі і URL. Калі на старонцы адсутнічае загаловак (або гэта спецыяльны маршрут), вярніцеся да назва сайта і хатні URL. Захоўвайце іх як папярэдне створаны радок запыту UTM у сеансе, каб ён быў гатовы да любых будучых перанакіраванняў.

add_action( 'wp', function() {
    // Only run on the public front-end (not in wp-admin)
    if ( ! is_admin() ) {

        // Check if the main query has at least one post/page
        if ( have_posts() ) {
            the_post();   // Prepare get_the_title(), get_permalink()
            rewind_posts(); // Reset for the main loop if needed

            // Grab the current page title and URL
            $page_title = get_the_title();
            $page_url   = get_permalink();

            // Site-level fallbacks
            $site_name  = get_bloginfo('name');
            $home_url   = home_url();

            // If the page title is empty, use the site name
            if ( empty( $page_title ) ) {
                $page_title = $site_name;
            }

            // If the page URL is empty, use the home URL
            if ( empty( $page_url ) ) {
                $page_url = $home_url;
            }

            // Build a set of parameters:
            //   utm_source   = page title (fallback: site name)
            //   utm_campaign = "Redirect"
            //   utm_content  = page URL (fallback: site/home URL)
            $utm_params = [
                'utm_source'   => $page_title,
                'utm_campaign' => 'Redirect',
                'utm_content'  => $page_url
            ];

            // Store them in the session as a pre-built query string
            $_SESSION['utm_querystring'] = http_build_query( $utm_params );
        }
    }
});

Калі вы хочаце толькі захапіць 1. старонку, якую наведвае карыстальнік (замест таго, каб абнаўляць яе кожны раз, калі яны перамяшчаюцца), а затым толькі ўсталяваць $_SESSION['utm_querystring'] калі гэта так пусты. Такім чынам, вы не перапішаце яго на наступных старонках.

Крок 3: Дадайце параметры UTM падчас перанакіраванняў

У wp_redirect фільтр, мы:

  1. Разабраць існуючы URL прызначэння і ўсе існуючыя параметры запыту.
  2. Атрымаць нашы параметры UTM на аснове сеанса, калі яны існуюць.
  3. Калі яны ня існаваць (сесія пустая), выкарыстоўваць адступленне значэнні па змаўчанні.
  4. Дадайце толькі параметры UTM, якія ёсць адсутны у пункт прызначэння.
add_filter( 'wp_redirect', 'my_session_based_utm_redirect_with_fallback', 10, 2 );
function my_session_based_utm_redirect_with_fallback( $location, $status ) {
    // Skip if we're in the admin or if the location is empty
    if ( is_admin() || ! $location ) {
        return $location;
    }

    // Process only 3xx (redirect) status codes
    if ( $status >= 300 && $status < 400 ) {

        // Parse the existing destination URL
        $parsed_url = parse_url( $location );
        if ( ! isset( $parsed_url['host'] ) ) {
            // If there's no valid host, we can't append
            return $location;
        }

        // Parse any existing query parameters
        $existing_params = [];
        if ( isset( $parsed_url['query'] ) ) {
            parse_str( $parsed_url['query'], $existing_params );
        }

        // --------------------------
        // 1) GET SESSION-BASED UTM
        // --------------------------
        $session_utm_params = [];
        if ( ! empty( $_SESSION['utm_querystring'] ) ) {
            parse_str( $_SESSION['utm_querystring'], $session_utm_params );
        }

        // --------------------------
        // 2) DEFINE FALLBACKS
        // --------------------------
        // If the session is empty or missing something, fallback to defaults.
        $site_name = get_bloginfo( 'name' );
        $site_url  = home_url();

        if ( empty( $session_utm_params['utm_source'] ) ) {
            $session_utm_params['utm_source'] = $site_name;
        }
        if ( empty( $session_utm_params['utm_campaign'] ) ) {
            $session_utm_params['utm_campaign'] = 'Redirect';
        }
        if ( empty( $session_utm_params['utm_content'] ) ) {
            $session_utm_params['utm_content'] = $site_url;
        }

        // --------------------------
        // 3) MERGE ANY MISSING UTM
        // --------------------------
        $utm_updated = false;
        foreach ( $session_utm_params as $key => $val ) {
            // If the destination doesn't already have a value for this param, append it
            if ( empty( $existing_params[$key] ) ) {
                $existing_params[$key] = $val;
                $utm_updated = true;
            }
        }

        // If we updated any param, rebuild the final URL
        if ( $utm_updated ) {
            $new_query = http_build_query($existing_params);

            // Reconstruct the URL with updated query string
            $scheme   = isset($parsed_url['scheme'])    ? $parsed_url['scheme'] . '://' : '';
            $host     = isset($parsed_url['host'])      ? $parsed_url['host']           : '';
            $port     = isset($parsed_url['port'])      ? ':' . $parsed_url['port']     : '';
            $path     = isset($parsed_url['path'])      ? $parsed_url['path']           : '';
            $fragment = isset($parsed_url['fragment'])  ? '#' . $parsed_url['fragment'] : '';

            $location = sprintf(
                '%s%s%s%s?%s%s',
                $scheme,
                $host,
                $port,
                $path,
                $new_query,
                $fragment
            );
        }
    }

    // Return the (possibly) modified location
    return $location;
}

Як гэта дапамагае маркетынгу і продажам

  • Атрыбуцыя на старонцы: Вы дакладна бачыце, праз якую старонку карыстальнік перайшоў на знешні сайт utm_source, даючы вам больш дакладную аналітыку кампаній і рэфералаў.
  • Адметная кампанія: З дапамогай "Redirect" in utm_campaign, вы можаце сегментаваць увесь вонкавы трафік у вашай аналітычнай платформе.
  • Тэг карыстальніцкага кантэнту: з utm_content усталяваны дакладны URL старонкі, вы можаце дакладна вызначыць, якія старонкі прыцягваюць больш за ўсё выходнага трафіку.

Неабавязкова: пазначайце толькі знешнія спасылкі

Калі вы хочаце толькі пазначыць выходны спасылкі (не ўнутраныя перанакіраванні), дадайце хуткую праверку:

$site_url = site_url();
if ( strpos( $location, $site_url ) === 0 ) {
    // It's an internal link, so skip
    return $location;
}

Размесціце гэта адразу пасля разбору $location. Гэта гарантуе, што вы пазначаеце толькі спасылкі, якія вядуць з вашага дамена.

Рэзюмэ

  1. Пачаць сеанс – неабходныя для збору дадзеных, характэрных для старонкі.
  2. Захоп інфармацыі старонкі – захоўваць загаловак старонкі і URL-адрас у сесіі (рэзервны варыянт: назва сайта і URL-адрас сайта).
  3. Дадаць UTM - ў wp_redirect, прааналізуйце пункт прызначэння і дадайце параметры UTM, толькі калі яны адсутнічаюць. Калі даных сеанса няма, спадзявайцеся на тыя ж запасныя налады па змаўчанні, каб у вас заўсёды было нешта.

Гэты поўны падыход гарантуе, што вы ўбачыце ў сваёй аналітыцы нешта накшталт:

https://destination.com/
  ?utm_source=Your+Page+Title
  &utm_campaign=Redirect
  &utm_content=https%3A%2F%2Fyourdomain.com%2Fyour-page

Кожны раз, калі карыстальнік перанакіроўваецца з вашага сайта, ваша справаздачнасць аб продажах і маркетынгу можа дакладна вызначыць, якія старонкі (і якая кампанія) выклікалі выходныя клікі.

Артыкулы па Тэме

Вярнуцца да пачатку кнопкі
блізка

Выяўлена блакіроўка рэкламы

Мы залежым ад рэкламы і спонсарства, каб падтрымліваць Martech Zone бясплатна. Калі ласка, адключыце блакіроўшчык рэкламы або падтрымайце нас, аформіўшы даступнае гадавое сяброўства без рэкламы (10 долараў ЗША):

Зарэгіструйцеся для атрымання штогадовага сяброўства