在行銷活動中,追蹤 UTM 參數(例如 utm_source、utm_medium、utm_campaign)是分析流量來源的關鍵。然而,當訪問者瀏覽網站內頁時,這些參數通常會消失。為了解決這個問題,我們可以使用 PHP 和 JavaScript,在 WordPress 網站中實現以下功能:
-
儲存訪問者的 UTM 參數到 Cookie 中。
-
動態地將 UTM 參數補充到當前頁面的網址中,以確保參數不丟失。
教學步驟
以下是具體的程式碼和操作方法:
1. 儲存 UTM 參數到 Cookie
我們將在 WordPress 的 functions.php
文件中添加 PHP 程式碼,檢測訪問者的 UTM 參數,並將其儲存到 Cookie 中。
PHP 程式碼
function ks_store_utm_in_cookie() {
if (isset($_GET['utm_source']) || isset($_GET['utm_medium']) || isset($_GET['utm_campaign'])) {
$utm_data = array_filter([
'utm_source' => isset($_GET['utm_source']) ? sanitize_text_field($_GET['utm_source']) : '',
'utm_medium' => isset($_GET['utm_medium']) ? sanitize_text_field($_GET['utm_medium']) : '',
'utm_campaign' => isset($_GET['utm_campaign']) ? sanitize_text_field($_GET['utm_campaign']) : '',
]);
// 儲存 UTM 到 Cookie
setcookie('utm_data', json_encode($utm_data), time() + (30 * DAY_IN_SECONDS), '/');
}
}
add_action('init', 'ks_store_utm_in_cookie');
2. 動態將 UTM 參數補充到當前頁面的網址
接下來,我們將使用 JavaScript,動態檢查 Cookie 中是否有儲存的 UTM 資料,並將其附加到當前頁面的網址中。
JavaScript 程式碼
這段程式碼會在 wp_footer
中被載入,確保網頁加載完成後才執行。
function ks_add_utm_to_current_url() {
?>
<script>
document.addEventListener("DOMContentLoaded", function () {
const utmData = getCookie('utm_data');
if (utmData) {
const utmParams = JSON.parse(utmData);
const queryString = Object.entries(utmParams).map(([key, value]) => `${key}=${encodeURIComponent(value)}`).join('&');
const currentUrl = new URL(window.location.href);
// 如果網址中沒有 utm_source,補充 UTM 參數
if (!currentUrl.searchParams.has('utm_source') && queryString) {
currentUrl.search = currentUrl.search ? `${currentUrl.search}&${queryString}` : `?${queryString}`;
window.history.replaceState(null, '', currentUrl.toString());
}
}
// 取得 Cookie 值的函數
function getCookie(name) {
const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
if (match) return decodeURIComponent(match[2]);
return null;
}
});
</script>
<?php
}
add_action('wp_footer', 'ks_add_utm_to_current_url');
3. 功能解析
-
PHP 部分:
-
檢測到 URL 中包含的 UTM 參數時,將其存入使用者的 Cookie。
-
確保未來 30 天內都能追蹤這些參數。
-
-
JavaScript 部分:
-
從 Cookie 中讀取 UTM 資料。
-
如果當前頁面網址中沒有這些參數,則將其動態添加回網址。
-
使用
window.history.replaceState
更新網址而不刷新頁面。
-
4. 使用方法
-
將程式碼加入 WordPress:
-
打開主題的
functions.php
文件。 -
將上述 PHP 和 JavaScript 程式碼複製並貼上。
-
-
測試功能:
-
在瀏覽器中輸入帶有 UTM 參數的 URL,例如:
https://example.com/?utm_source=google&utm_medium=cpc&utm_campaign=winter-sale
-
確認頁面網址是否保持這些參數,即使進入其他頁面或重新整理。
-
-
驗證效果:
-
使用瀏覽器開發工具檢查 Cookie,確認
utm_data
已成功儲存。 -
點擊站內其他連結,檢查 UTM 參數是否自動附加到新頁面。
-
5. 注意事項
-
確保網站開啟了 JavaScript,否則動態附加參數的功能無法正常運作。
-
如果網站使用了 CDN 或緩存插件,請測試是否影響功能運作。
透過這個方法,你可以輕鬆實現 UTM 參數的全站追蹤功能,幫助分析流量來源並提升行銷效率!