オルタナティブ・ブログ > 秋山大志のそれとりあえず作ってみようか。 >

あれこれ考えるよりも作ってしまった方が早いんじゃね?と思う、ギークなサラリーマンのアジャイルな日々。

GTMの除外条件とRegExテーブル変数の使い方|正規表現で値を抜き出す方法|未経験から100日後にGTMのプロになる話【Day 26】

»

Day19でトリガー条件のAND/ORの仕組みと正規表現によるURLパターンのまとめ方を扱いました。今日は、そこでは触れなかった3つの応用――大文字小文字の扱い、除外条件、正規表現による値の抜き出し――を掘り下げます。

正規表現マッチングは既定で大文字小文字を区別する

Page URLの条件を「一致する正規表現」にしたとき、既定では大文字と小文字が区別されます。例えば/Product//product/は別物として扱われます。リダイレクトの設定やCMSの仕様で、URLの大文字小文字が実は統一されていないサイトは意外と多く、「特定のページだけ発火しない」という不具合の原因がこれだったというケースをよく見ます。条件設定欄の「大文字と小文字を区別しない」チェックボックスを有効にしておくと、こうした事故を未然に防げます。

「発火条件」と「除外条件」は別の仕組み

Day19では、1つのトリガー内の複数条件がANDで評価されることを説明しました。もう1つ覚えておきたいのが、トリガー設定画面にある「除外条件」の存在です。これは「発火条件」の欄とは別に用意されている、独立した仕組みです。

例えば「/product/ 配下のページすべてで発火するが、/product/preview/ のようなプレビュー用ページだけは除外したい」という場合、発火条件に複雑な正規表現を1本書くのではなく、「発火条件:Page URLが/product/を含む」+「除外条件:Page URLが/product/preview/を含む」と分けて書く方が、あとから見た人にも意図が伝わりやすくなります。条件を1つの正規表現に詰め込みすぎると、半年後の自分や引き継いだ担当者が読み解けなくなるので、除外条件で表現できることは除外条件に任せるのが実務上のコツです。

正規表現でURLから値を抜き出す(RegExテーブル変数)

ここまでは「一致するかどうか」の話でしたが、正規表現は値を抜き出すのにも使えます。例えば/product/12345のようなURLから商品ID(12345)だけを取り出してタグのパラメータに使いたい場合、「RegExテーブル」という変数タイプが便利です。

  1. 「変数」→「新規」→種類は「RegExテーブル」
  2. 入力変数に{{Page URL}}{{Page Path}}を指定
  3. 正規表現に^/product/(\d+)のようにカッコで囲んだキャプチャグループを含む式を書く
  4. 出力に$1と指定すると、キャプチャした1つ目のグループ(この例では商品ID)がそのまま変数の値になる。GTMのRegExテーブルでは、出力欄のキャプチャグループ参照は{{ }}で囲まず$1とそのまま書く点に注意({{$1}}と書くと「不明な変数」エラーになる)

正規表現の表(RegExテーブル)変数設定画面

これを使えば、開発者にdata属性を追加してもらわなくても、既にURLに含まれている情報をGTM側だけで取り出せる場面があります。ただし、URLの構造がサイトのリニューアルなどで変わると、この抽出ロジックも一緒に壊れるので、URL構造に依存した実装だという前提は忘れないでください。

今日のまとめ

正規表現は「一致確認」だけでなく「値の抽出」にも使えます。大文字小文字の既定挙動、除外条件という独立した仕組みの存在、この2つを押さえておくだけでも、トリガー設計のトラブルはかなり減らせます。次回は、データレイヤーを活用した高度なタグ管理を扱います。

INDEX

Comment(0)