データポータルで第4階層の一部を指定してカテゴライズする方法(REGEXP_MATCH)

2022年2月19日土曜日

データポータル

t f B! P L


第4階層を指定すると第3階層以降が全部表示されてしまうため、フィールドの追加を行い、REGEXP_MATCHという関数を使って特定の文字列でカテゴライズ出来るようにしました。

コピペで数式貼れるようにしたので、ぜひ使ってみてください🙇‍♀️

本記事で説明する方法の使いどころ

例えばこんなページがあったとします。
例:http://abcde.XX/abc/def/123/456/789/

/def/までのディレクトリなら「第n階層」というディメンションがあるので、それを使えば簡単にディレクトリ名でカテゴライズすることができます。第n階層というディメンションは、項目ごとの割合を出すときに便利だから使う方も多いと思うのですが、問題は「第4階層」を指定したいときです。

第4階層だけ他と異なっていて、第3階層の後ろが全部表示されてしまうのです。
先ほどの例を用いるとこうなります。(前に/が入るかは記憶が曖昧ですが…)
例:/123/456/789/

私もGAを使い始めたの頃、階層の深すぎる自社のサイトだから常に思っていました。

「そうじゃないんだよ第4階層…私は指定した部分だけ取りたいんだよと…」

この階層深すぎURLは、会社の規模的にどうしようもないとずっと諦めていたのですが、データポータルで「REGEXP_MATCH」という関数を使えば、第4階層の指定した文字列部分だけをカテゴライズすることができたため、詳細なやり方を書きました。

前準備

  1. メニューで、[リソース] > [追加済みのデータソースの管理] の順に選択します。
  2. GAのコネクタの[編集]を選択します。
  3. 右上の[フィールドを追加]を選択します。
  4. フィールド名に自分がわかりやすい名前を入れます。私は「コンテンツカテゴリ」と入れました。

コードの書き方(サンプル)

計算式に以下を入れます。
※多分コピペで大丈夫だと思う

CASE

  WHEN REGEXP_MATCH( 4 階層,"(.*/articles/.*)") THEN 'articles'

  WHEN REGEXP_MATCH( 4 階層,"(.*/events/.*)") THEN 'events'

  WHEN REGEXP_MATCH( 4 階層,"(.*/supports/.*)") THEN 'supports'

  ELSE 'other'

END


ピリオドとアスタリスクの意味

「.*」はワイルドカードを組み合わせた物で、簡単に説明するとExcelでの「*」と同じ意味です。

なので、.*/articles/.* という書き方をすると、/articles/の前後は任意の文字列という意味になります。


詳細は下記をご覧下さい。


データポータルの正規表現

https://support.google.com/datastudio/answer/10496674?hl=ja


elseの意味

上で指定した物が当てはまらなかった場合、全部これになります。この場合、otherと表現させるようにしています。


変更の必要な箇所

赤字の部分
第4階層の中で指定したい文字列を記入

緑字の部分
表示させたい文字列を記入

ここを変えないと正しく動きません。特に赤文字部分は皆さんの環境に合わせて適宜変えてください。m(_ _)m


書き終わったら

数式の枠の下に、緑で✓が表示されたら設定完了です。
こんな感じの物です。
※改行が気になる方は保存する前に削除してください。

右下の保存を押します。そうすると新たにディメンションの項目として追加されます。

環境によって上手く貼れなかったり、謎のスペースが入ると赤で!がでます。

!が表示されてしまったら、手打ちで直すしかないです。私も人が公開している数式をコピペしてエラーになったことがあるので、ここは作業する人が何とかするしかありません...


これで使用可能な項目の中に表示されて、デフォルトのディメンションと同様に選べるようになります。


このブログを検索

QooQ