1. PHP「$_SESSION」の記録方法
セッションは、ユーザーがウェブサイトを訪れるときにサーバー上で一時的に情報を保存するための仕組みです。この情報は、ユーザーがウェブサイトを閉じるか、セッションがタイムアウトするまで保持されます。
<?php //(function.php)
/* $_SESSION(セッション) 開始
====================================== */
//グローバル変数 $global_session_params を定義
global $global_session_params;
$global_session_params = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'ancestor', 'referrer', 'ref_name', 'edomain']; //保存したいパラメータを配列に追加
function init_session_start() {
global $global_session_params; //この関数内でグローバル変数を使用するための宣言
if (session_status() !== PHP_SESSION_ACTIVE) {
session_start();
}
//$global_session_params を、それぞれセッション $_SESSION[$param] に記憶
foreach ($global_session_params as $param) {
if (isset($_GET[$param])) {
$_SESSION[$param] = sanitize_input($_GET[$param]);
}
}
}
//サニタイズ関数
function sanitize_input($data) {
return htmlspecialchars(stripslashes(trim($data)), ENT_QUOTES, 'UTF-8');
}
add_action('init', 'init_session_start');
2. JavaScript変数への変換方法
セッションの値をJavaScript変数に変換することで、フロントエンドのスクリプトや外部ツール(例:Googleタグマネージャー)で利用することができます。
<?php
/** (header.php)
****************************************/
?>
<!DOCTYPE html>
<html lang="ja">
<head>
〜〜〜〜
<?php wp_head(); ?>
〜〜〜〜
</head>
<?php
//JS変数 $_SESSION_param = "セッション値" をそれぞれ代入
global $global_session_params; //このファイル内でグローバル変数を使用するための宣言
foreach ($global_session_params as $param) {
if (isset($_SESSION[$param])) {
//JavaScriptの文字列リテラルとしてエスケープ
$js_value = json_encode($_SESSION[$param]);
echo "<script>var \$_SESSION_{$param} = {$js_value};</script>";
}
}
?>
<body>
〜〜〜〜
3. タグマネージャーでの使用例
Googleタグマネージャーでは、変数を作成してトリガーの条件として使用することができます。以下は、変数として$_SESSION_utm_source
を使用して、その値がgoogleを含む場合にトリガーを発火させる例です。
タグマネージャーの「変数」セクションで新しい変数を作成します。
変数のタイプとして「JavaScript変数」を選択します。
グローバル変数名として$_SESSION_utm_source
を入力します。
この変数をトリガーの条件として使用します。
例:{{$_SESSION_utm_source}} [含む] google 等
この記事は、$_SESSION
をJavaScript変数に変換して、タグマネージャーのトリガーとして使用する方法を簡単に説明しています。具体的な実装や詳細な設定については、関連ドキュメントやリソースを参照してください。