273 人が現在オンライン
273 人が現在オンライン
Google アナリティクスの Google タグマネージャを含む計測の設定やトラブルシュートなどについて、ユーザー同士で意見交換ができます。解析を通して浮かんだ質問やアイディアを投げかけ合ってより知識を高めていきましょう。
ガイドを表示
star_border
返信

セッションスコープのカスタムディメンションで設定値を上書きさせない方法

初級者 ✭

セッションスコープのカスタムディメンションを利用する場合、

1セッション内で複数回カスタムディメンションの値を送ると、

一番最後に送った値のみが有効になるかと思います。

(後から送った値で上書きされていく)

 

それをセッションの一番最初に送った値を有効にする、

つまり上書きされないようにする方法というのはあるのでしょうか?

 

ヘルプを見る限り不可能なようではあるのですが、

もしやり方をご存知のかたがいらっしゃいましたら、ご教示いただきたいです。

1 人のエキスパートが返信verified_user

受理された解決策
ベストアンサーのマーク済み.
解決策
トピック作成者井上洸太朗さんが付与
7月 2016

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

レジェンド
ここでいう「ローデータ」とは、レポートの1行が常に1ヒットになるようなレポートのことを指しています。
通常のレポートの場合、参照元別やページ別などのディメンションでレポートを作成するとレポートの1行の中には複数ヒット分のデータが集約され、合計のページビューが表示されます。この時に1行が常に1ヒットになるようなレポートが作成できれば、エクスポートしたデータを様々な方法で分析できます(プレミアムを利用していれば、Big Queryを使って同じことができますが)。

そのような1行が常に1ヒットになるようなレポートを作るのに多くの場合、「クライアントID」(ユーザー1人ごとに付与されたID)と「各ヒットのタイムスタンプ」を使うことで実現できます(たまに2PVのデータも出てきてしまいますが)。
(なので、クライアントIDはユーザー単位、タイムスタンプはヒット単位のカスタムディメンションとなります)

この状態になれば、ユーザーごと・ページビューごとの(大量の行がある)レポートが出来上がり、この中にはランディング時のページビューや2ページ目、nページ目、離脱ページのページビュー情報が含まれています。この中から、1ページ目(閲覧開始数=1)のデータを取得すれば、実リファラーが入ったヒットになると思います。

元の投稿で解決策を見る


すべての返信

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

トップコントリビューター
井上さん

こんにちは。

セッションスコープでカスタムディメンションの値を上書きしない方法ですが
GTMが設置されていて、カスタムJavaScriptで対応すれば可能かと思われます。

カスタムJavaScript内で、カスタムディメンションに設定する値をCookieに付与し、
Cookieに付与した値をカスタムディメンションにセットします。
そのセッション内でユーザーがカスタムディメンションに該当する行為を行った場合、
Cookieが存在した場合は値を更新しないと条件分岐を記述することで可能ではないでしょうか。
次回以降のセッションでもカスタムディメンションを更新したくない場合は
Cookieの有効期限を2年に設定することで、GAと同じユーザーの定義が設定できます。
次回以降のセッションではカスタムディメンションを更新したい場合は
ユーザーがブラウザを閉じた際や、30分の有効期限でCookieが消えるように設定します。

記載したものの検証は行っていませんので
もし、実装する際はテストをよく行い、計測状況をご確認いただければと思います。

以上、ご参考になれば幸いです。
よろしくお願いいたします。

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

レジェンド
こんにちは。

わたしはちょっと違って、
離脱の処理を考えると、初回の項目を、ずっと上書きしつづける、という考え方が
良いような気がします。

離脱の処理というか判定って、GAに限らず結構面倒なイメージがあるので、
かつての非同期版のGAが、リファラをクッキーに書いて、クッキーに書いたものを
送信してたみたいな、ローカルストレージでもcookieでもどこかに一旦保存して
保存の有無をトリガーにして取得&GA発火、、、、とかですかねえ。

うーむ。悩ましい。
------
文責:カグア!

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

初級者 ✭
村山さん、吉田さん

ご返信ありがとうございます!

Cookieを使うという方法は考えたのですが、
今回想定しているカスタムディメンションがセッションごとに変わる値なので、
吉田さんのおっしゃる通り、Cookieの有効期限をGAのセッションに合わせるという実装は
かなりハードルが高いため断念した次第です…。

簡単にGAのセッションに乗っかる方法だったり、
カスタムディメンションに上書き禁止オプションなどあったりしないかなと思ったのですが…。

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

トップコントリビューター
井上さん

ご確認いただきありがとうございます。
村山さんてw

カスタムディメンションに設定する値の判別用Cookieの有効期限ですが、expireの値を設定するだけなので、そこまで難易度が高くないと思いますが…。

ちなみにカスタムディメンションを上書きしないオプションは存在しないです。

ご確認の程よろしくお願いいたします。



Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

レジェンド

Googleアナリティクスのセッションに合わせてCookieを操作するのは難しいので、逆にCookie操作に合わせてGoogleアナリティクスのセッションを操作する、という方法も一考の余地があるかと思います。

 

// 強制的にセッションを新しく開始する方法
ga('send', 'pageview', {'sessionControl': 'start'});

// 今回のヒットで強制的にセッションを切断する方法
// 1セッション500ヒットの上限に引っかかるときに使ったりすることがある。
ga('send', 'pageview', {'sessionControl': 'end'});

 

ちなみに、どのようなユースケースで利用することを考えていますか?

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

初級者 ✭
>yu-sukeさん
すいません笑 お名前を知っているのにニックネームで呼ぶのも変かなと思いまして。失礼しました。
厳密にやろうとするとキャンペーンソースが更新された時にも対応しないといけないので、
確かに無理じゃないかも知れないですが、難しいと思っています。

上書き禁止オプションは、やはりないですか…。


>山田さん
セッションを切ってしまうという発想はありませんでした!ちょっと検討してみます。

今回やろうとしていることなのですが、
GAの参照元は、リファラー情報がない場合に前回の参照元が使われますが、
実際そのノーリファラー上書き現象がどれぐらい発生しているのかを検証するため、
カスタムディメンションを使って、「GAの参照元」ではない本当の参照元を計測したいと思っています。

具体的な実装方法としては、計測対象の各ページでHTTP referrerを見て、
自ドメインと同じなら何もしない/自ドメイン以外ならカスタムディメンションにreferrerの値を入れる/リファラー情報がなければノーリファラーにする
という条件分岐をさせてカスタムディメンションを設定しようと思ったのですが、

検索エンジンから流入する

サイトを回遊する

ブラウザを閉じる

すぐに同じブラウザを起動して計測対象サイトにURL直入力でアクセス

というアクセスがあった場合、
ブラウザ再起動後のアクセスのHTTP referrerはノーリファラーなので、
カスタムディメンションにノーリファラーという値が設定されてしまいますが、
GAのセッションとしてはブラウザ終了前から継続されているので、
この場合は検索エンジンから流入したというカスタムディメンションの値を残したいと考えています。

Cookieを使うという方法は上述のようなハードルがあるので、
何か良い方法はないかと思いまして質問させていただきました。

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

レジェンド
そういった使い道なんですね。

であれば、少しやり方を変えて、

・ディメンションのスコープは「ヒット」にする。
・GAには毎回リファラー情報を送信する(自ドメインと同じでもとりあえず送信)
・ClientIDとタイムスタンプをセットするカスタムディメンションを追加(ローデータを生成するため)
・カスタムレポートでローデータを生成し、「閲覧開始数=1」でフィルタリングし、ディメンションに「実リファラー」を追加

といった方法で似たようなことができるかもしれません。


あとは、マルチチャネル系のレポートでは、実リファラーをベースに参照元/メディアが分類されて
で表示されるようになっているはずなので、そちらを使うのもありかと思います。

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

レジェンド
sessionControl なんて、属性があったとは!!!
------
文責:カグア!

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

初級者 ✭
山田さん

ありがとうございます!

不勉強で理解ができていないのですが、
「ClientIDとタイムスタンプで作成するローデータ」というのはこの場合何のために必要なのでしょうか?
セッション関連の指標を使うためにセッションスコープのカスタムディメンションを用意しておくということでしょうか?

ローデータというところの意味合いが理解できておらず、
お手数ですがご教示いただければ幸いです。
ベストアンサーのマーク済み.
解決策
トピック作成者井上洸太朗さんが付与
7月 2016

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

レジェンド
ここでいう「ローデータ」とは、レポートの1行が常に1ヒットになるようなレポートのことを指しています。
通常のレポートの場合、参照元別やページ別などのディメンションでレポートを作成するとレポートの1行の中には複数ヒット分のデータが集約され、合計のページビューが表示されます。この時に1行が常に1ヒットになるようなレポートが作成できれば、エクスポートしたデータを様々な方法で分析できます(プレミアムを利用していれば、Big Queryを使って同じことができますが)。

そのような1行が常に1ヒットになるようなレポートを作るのに多くの場合、「クライアントID」(ユーザー1人ごとに付与されたID)と「各ヒットのタイムスタンプ」を使うことで実現できます(たまに2PVのデータも出てきてしまいますが)。
(なので、クライアントIDはユーザー単位、タイムスタンプはヒット単位のカスタムディメンションとなります)

この状態になれば、ユーザーごと・ページビューごとの(大量の行がある)レポートが出来上がり、この中にはランディング時のページビューや2ページ目、nページ目、離脱ページのページビュー情報が含まれています。この中から、1ページ目(閲覧開始数=1)のデータを取得すれば、実リファラーが入ったヒットになると思います。

Re: セッションスコープのカスタムディメンションで設定値を上書きさせない方法

初級者 ✭
山田さん
返信が遅くなりまして申し訳ありません。

ありがとうございます!
しかし、すご技ですね…。GAにそのような使い方があったとは…。

早速試してみたいと思います。
ありがとうございました。
このトピックのエキスパート
yu-suke