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変数に変換して、タグマネージャーのトリガーとして使用する方法を簡単に説明しています。具体的な実装や詳細な設定については、関連ドキュメントやリソースを参照してください。