GAではページのフィルタをかけたい場合によく使用する正規表現。UAからGA4に移行する際に「使える正規表現変わったなー」と実感があったので正規表現が苦手なGA使用している人のためにメモしておくこととしました。
ちなみに私一人の実感&経験で作成しているのですべてのサイトに対応していないことをご理解ください。またGA4もコロコロ仕様が変わるので正規表現についてや単語、UIも変わってる可能性も十分あります。
正規表現とは
GAではページのフィルタをかけたい場合に正規表現をよく使用します。
正規表現のメタ文字
ワイルドカード
. | 任意の 1 文字(文字、数字、記号)に一致します | 「1.」で一致するデータ:
10、1A 「1.1」で一致するデータ: 111、1A1 |
? | 直前の文字が 0 回または 1 回出現する場合に一致します | 「10?」で一致するデータ:
1、10 |
+ | 直前の文字が 1 回以上出現する場合に一致します | 「10+」で一致するデータ:
10、100 |
* | 直前の文字が 0 回以上出現する場合に一致します | 「1*」で一致するデータ:
1、10 |
| | OR 条件を作成します
正規表現の末尾では使用しないでください |
「1|10」で一致するデータ:
1、10 |
アンカー
^ | 隣接する文字が文字列の先頭である場合に一致します | 「^10」で一致するデータ:
10、100、10x 「^10」で一致しないデータ: 110、110x |
$ | 隣接する文字が文字列の末尾である場合に一致します | 「10$」で一致するデータ:
110、1010 「10$」で一致しないデータ: 100、10x |
グループ
( ) | 囲まれた文字が同じ順序で文字列に含まれる場合に一致します
他の正規表現をグループ化する場合にも使用します |
「(10)」で一致するデータ:
10、101、1011 「([0-9]|[a-z])」で一致するデータ: すべての数字と小文字 |
[ ] | 囲まれた文字が任意の順序で文字列に含まれる場合に一致します | 「[10]」で一致するデータ:
012、120、210 |
– | 角かっこ内の文字範囲が文字列に含まれる場合に一致します | 「[0-9]」で一致するデータ: 0~9 のすべての数字 |
エスケープ文字
\ | 隣接する文字を正規表現のメタ文字としてではなく通常の文字として解釈するよう指定します | 「\.」と指定すると、隣接するドットがワイルドカードとしてではなく、ピリオドや小数点として解釈されます。
「216\.239\.32\.34」で一致するデータ: 216.239.32.34 |
UAの正規表現
例)
取得したいURL:https://shop.googlemerchandisestore.com/about/0000/
正規表現:ページ 正規表現に一致 ^/about/[0-9]{4}/
GA4の正規表現
GA4のフィルタには文字数制限があります。また、UAと比べ、厳密になりました。
例)
取得したいURL:https://shop.googlemerchandisestore.com/about/0000/
正規表現:ページロケーション 正規表現に一致 ^\/about\/[0-9]\.*
ほかにもこんな感じになります。
例)※適当なURLを作成したのでこのまま取得はできません。
取得したいURL | UA | GA4 |
https://shop.googlemerchandisestore.com/(トップページ) | ^/index\.php($|\?) | ^\/($|?).* |
https://shop.googlemerchandisestore.com/product/detail/ | ^/product/detail | ^\/product\/detail\/.* |
https://shop.googlemerchandisestore.com/about/0000/thanks/ | ^/about/[0-9]/thanks | ^\/about\/[0-9]/thanks.* |
まとめ
UAで正規表現を使用していた方はGA4で正規表現をそのまま活用し、絞り込まれた少なさに驚いたかもしれない。セグメントやフィルターを使用することがあるのであればぜひGA4での正規表現に慣れていただければと思う。
最近のコメント