Google Tag Manager(GTM)を利用してAjaxのページャーからのページ遷移を仮想ページビューとして計測する

Google Tag Manager(GTM)がリリースされてから、徐々に事例が出てきておりますが、今回はAjaxのページャーを仮想ページビューを利用して計測する方法をご紹介します。

今までのAnalyticsであればonclickとして、trackPageviewを発行してあげればいい訳です。

「 onclick="_gaq.push(['_trackPageview', '/services/']);" 」

GTMの場合は、dataLayerを利用しますが、onclickの場合は「dataLayer.push」ですね。
企業側のサイトにはこれから反映させて行く予定ですが、個人環境でテストを実施した内容で一度ご説明いたします。

企業サイトは既にこんな状況でして・・・、ちゃんと整理しないといけない状況に陥っていたりしますが・・・








dataLayerとは・・・

Google側で予め用意しているグローバルオブジェクトなのですが、GTMのコードよりも前に配置
します。

<script>
  dataLayer = [{
    'event': 'transaction'
  }];
</script>
 
使い方としては様々なものが考えられますが、現在私の方で使っているものを少しご紹介します。


1.AnalyticsのEventを利用して、http statusで404や500を計測する。

例えば、こんなdataLayerを404ページに仕掛けておき、404ページに来る手前のページとアクセスした先のページURLをデータで取得できます。

<script>
dataLayer = [{
'event': 'error',
'eventaction' : 'Errorevent',
'eventlabel' : '404.html?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer
}];  </script>
 
この場合、事前に「eventaction」 「eventlabel」をdataLayerタイプとしてマクロに登録しておく必要があります。
GMT側の設定はこんな感じですね。


トラッキングタイプを「イベント」にして、イベントトラッキングのパラメータを指定してあげる。
この部分はマクロでセットした変数を入れてあげればOKです。

2.仮想ページビューをセットする

 Analyticsでよく利用される仮想ページビューの計測もdataLayerを用いて行えます。
ちょっと寂しいのですが、仮想ページビューを発生させたいページには、こんなものを埋め込みます。

<script>
   dataLayer = [{
    'pageUrl': '/service/',
    }];
</script>
 
もちろん、GTM側で「pageUrl」をdataLayer変数としてマクロ設定しておく必要があります。
で、GTM側の設定ですが、


 こんな感じですね。
通常のAnalyticsのトラッキング設定に「基本設定」項目で指定しましょう。

 dataLayer.pushとは・・・

では、dataLayer.pushとは何でしょうか?
今まで説明してきたdataLayerはGTMで発行されたタグよりも前に置くということは説明しましたが、eventトラッキングにしても、仮想ページビューにしても、ページが読み込まれたと同時に発火するのです。

つまり、ページ内でのクリック計測など、今までonclickイベントで取得していた部分が実現出来ないわけです。そこで、dataLayer.pushが登場するわけです!

dataLayer.pushはjavascriptのevent listenerであるとGoogleの説明がありますが、要するにGTMのタグの後に置いて、onclickなどで発火させる事ができるものです。

Googleのサイトの例で言うと、こういう書き方になります。

<a href="#" name="button1" onclick="dataLayer.push({'event': 'button1-click'});" >Button 1</a>
 
onclickでdataLayer.pushを呼び出すわけです。

クリックイベントの計測であれば、例えば、こういう設定です。

<a href="#" name="button1" onclick="dataLayer.push({'event': 'variable1' , 'eventaction' : 'variable2' , 'eventlabel' : 'variable3'});">Button 1</a>


<ここでハマったポイント>
「dataLayer.push」は、「dataLayer」の付属のように紹介されますが、何度もdataLayer.push設定をしてもデータが取得出来ない時がありました。

eコマースなどのtransactionデータを計測する時もそうなのですが、「dataLayer」を利用したデータ取得を再度考えてみると、「dataLayer」の中に識別させるフラグを1つ用意して、

  <script>
  dataLayer = [{
    'event': 'transaction',
    'transactionId' : '●●●●●●●●●',
    'transactionDate' : 'yyyy/MM/dd', ・・・

で、配信ルールとしては、その値をトリガーとする訳です。
例えば・・・



これはdataLayerの変数名「event」が、「transaction」と等しい時に発火!
という事です。

dataLayer.pushも考え方は同様

先程の例で言うと・・・

<a href="#" name="button1" onclick="dataLayer.push({'event': 
'variable1' , 'eventaction' : 'variable2' , 'eventlabel' : 
'variable3'});" >Button 1</a>
 
dataLayerの変数「event」 が「variable1」の時に、イベントトラッキングを発動させるのです。

では、本題!GTMを利用してAjaxのページャーをクリックし、仮想ページビューとしてカウントする方法は?

今までの応用編なだけで、特別な事はありませんが2日間くらい悩んでしまいました。

ページャー。即ちこういうものですが、


Ajaxだと、この部分をクリックしてもページ自体がリフレッシュせずに、ページの内容だけ変わる場合があります。その部分を仮想ページビューを利用してPVとしてカウントしていきます。

また、今回も仮想ページビュー発動条件としてdataLayerの変数「event」を利用すると、例えばonclickにこんな仕掛けをしておけばOKです。

onclick="dataLayer.push({'event':'ajaxpager' , 'pageUrl': '/service2/'});"
 
で、GTM管理画面で通常のAnalyticsのトラッキングタイプ「ページビュー」の配信ルールに

 {{event}} 等しい ajaxpager
 
という設定を追加しておけばOKです。

即ち、発火したら仮想ページビューとして計測されるべきdataLayer変数「pageUrl」の値が入るという仕組みです。

考えてみれば、至極簡単なのですがdataLayerとdataLayer.pushを全く同じものという考えが頭に浮かばなかった事と、未だにjavascriptの動きをちゃんと検証していないということもあって、だいぶ時間を潰してしまいました。

ちなみに!
別にdataLayer.pushを無理に使わなくても、現在は今までの「_trackEvent」を普通に利用してもデータが取得出来るようで、おそらくそれは今後も問題なく利用出来るのではないかと思われます。

Google Analyticsの同期版と非同期版が共存出来ないのと同じように、Google Tag Managerを利用したAnalytics計測と通常の非同期版Analyticsタグは共存できません!



Google Tag Managerの導入について、僕の失敗談を共有します。
コマース系でdataLayerが動いていたので、リリースは上手く行った!と思いきや、いくつか問題が発覚しました。

【問題点】
1.AdwordsとAnalyticsを連結していた場合、Adwordsではコンバージョンが計上されているのにも関わらず、Analytics側でコンバージョンが計測されていない。(常に売上0円)
2.Analyticsの「すべてのページ」で「ページ価値」がほぼ全て0円として表示されている。


2に関連して、ページを種別ごとに区切って計測した場合も全て0円となってしまいました。
この2つを見れば明らかにセッション断が発生しているということが分かるのですが、最初に気づいたのが1だけだったので、何度も個人環境で注文のテストを実施したりしていました。


2つ目の事象が見えてきてからは、何度も混在パターンでAnalyticsへどう計上されるのかをチェックしました。
今回のチェックでセッションが切れている、切れていないというのは「リアルタイム」の「サマリー」を見るだけでも分かる事がわかりました(苦笑


例えば、ページ1からページ2へ画面遷移する場合・・・

■ケース1
ページ1(非同期GA) ⇒ ページ2(GTM)
「上位のアクティブページ」にページ1とページ2の2つがアクティブなページとして見える。


■ケース2
ページ1(GTM) ⇒ ページ2(GTM)
「上位のアクティブページ」にページ2だけがアクティブなページとして見える。


ケース1の場合はセッション断が発生。ケース2が正しい表示となります。


(追記)
まだ私が対応しきれていないのは、eventのdataLayer.pushを使ったデータ送信です。
今のところtrackEventを使って、普通にデータが送信できているので、時間がある時に対応する予定・・・

【メモ】Googleショッピング広告モデル開始に関してGoogle担当者から聞いた内容のメモ

Googleショッピングが商品リスト広告に基づいた商用モデルに移行を開始しておりますので、既に導入を開始している企業もポツポツ出てきていることだと思います。

アメリカでは去年の10月あたりから開始され、先月あたりからCVRなど、その効果が表に出てくるようになりました。

まだ私の勤め先では導入にいたっていませんが、Googleの担当さんから伺った内容を少しシェアしようと思います。(正確性については保証できません・・・)

・GoogleショッピングにアップロードしたデータがAdwords側へ反映するのは最大24時間

・Googleショッピングへフィードで1度にアップロード出来る数量に関しては申請によって上げる事が可能

・GTINが無い、または商品名が英語のみなどでGoogleショッピング上エラーとなっている場合は、申請を出すことでエラーから除外する手続きを行うことが可能

・Googleショッピングで1商品に対して複数の店舗が紐づくにはGTINなど固有の情報の一致が元になっている

・Googleショッピングの各商品の説明は、複数店舗からアップロードされた情報ソースの中で、最も適切だと思われるものをそのまま表示する

・今回の商用モデルでは、PC・タブレットで表示するためのAdwords上限単価とそれを元にしたスマホ側へ表示するための上限単価設定が存在する。例えばPC・タブレットへ表示するための上限を100円/clickとし、スマホをその1/2(つまり50円/click)などと設定する。

・PC・タブレットでは全く表示せず、スマホだけ表示するということは出来ない。限りなくPC・タブレットで表示をしないという程度。

・【この辺重要】Google検索で何のキーワードで検索された場合、どの商品が表示されるかというヒモ付けはブラックボックス。(※Adwords側での単価設定は商品単位ではなく、Adwords_labels単位。つまり商品グルーピング単位)

⇒Google側でその商品に関連していると判断されたキーワードについて、検索結果で商品が表示される。
単価を上げれば商品が表示されるとは限らない

単価を上げる事で表示が増えるかもしれないし、増えないかもしれない状況です。もちろん、実際にクリックが発生すれば検索キーワードも閲覧出来るし、サイトでコンバージョントラッキングをすれば、コンバージョンの結果も見える訳ですが、商品表示という意味では不明瞭です。

つまり、運用の仕方で分析や結果の見え方が変わる可能性があります。
また、今まで以上にGTIN情報などの固有情報などが重要で、情報ソースが1つしかないようなデータのアップロードを行なっていると、商品情報が少ない事などによりGoogle検索には一切表示されないという事が大いに発生しうるのではないかと思うわけです。

その場合は商品名や商品情報に限りなく関連性の高いキーワードで検索された場合のみの表示で、その関連キーワード数が非常に少ないという状況になりかねません。

通常のAdwordsとは考え方を変えて運用しなければならないかもしれませんが、Adwordsと同様に戦略や見たい結果が見えるような設計を入念に行いましょう!

【メモ】DFPを理解するための概念図

Googleの広告プラットフォーム、「DoubleClick for Publishers(DFP)」は全く利用したことがなかったけれども、勤め先で導入検討フェーズから導入へと舵を切り始めたので、サービスを触ったりテストをしながら、まずは自分がDFPの概念と、どのレベルでどの機能が利用できるのかを理解しなければならなかったので、簡単に図を描いてみました。

これから導入を考えている方の理解に、少しでも役立てばと思います。


Googleさんも、その理解で正しいという事だったので、メモとして公開しておきます。

あとは、まだ理解仕切れていなかったのでGoogleさんに色々と質問をしてしまったのですが、そのQと回答の一部をメモとして公開。

Q.ある1広告ユニットで、現在配信されているクリエイティブの一覧を見るページはありますか?
A.ありません

Q.プレースメントに関して、例えばA枠、B枠、C枠の3広告枠あった場合、AとBで1プレースメント、BとCで1プレースメントと、広告枠1つが複数のプレースメントに所属することは可能という理解で良いでしょうか?
A.可能です。

Q.新しい広告申込情報を登録する際、広告枠のサイズを複数選択出来ますが例えば2パターンの広告サイズを指定した場合、広告ユニット、またはプレースメントの設定で、該当広告枠サイズを全て含んでいれば、最適な場所に自動的に表示されるということで良いでしょうか?
A.その通りです。

Q.オーダーごとに配信に関する設定がありますが、広告枠で見た場合、どういう配信状況になるのか理解しきれておりません。例えば自社広告のAオーダーと純広告のBオーダーがあり、同じ広告枠に配信を設定した場合、配信の優先順位は広告申込情報のタイプと配信優先度設定に寄るのでしょうか?
A.その通りです。
ヘルプ参照。

Q.広告枠について、各広告枠のヘッダーへ埋め込むソースに関しては、Tag Managerの「カスタムHTML」タグにて管理することは可能でしょうか?
A.恐らく可能ですが、テスト・動作確認はお願いします。


と、いくつか質問に回答いただいたわけですが、広告申込情報レベルでクリエイティブの表示・非表示の期間設定が出来るのですが、期間が異なるキャンペーンなどを一緒に配信する場合、別の広告申込情報とするか、同じ広告申込情報の中でクリエイティブレベルで「無効」設定へと変更するかになると思います。

広告申込情報が別れれば別れるほど、1クリエイティブごとの配信数、配信比率の管理は非常に難しくなるなぁという印象。もちろん慣れるまでの問題でしょうけど。

今までimp保証で純広告などを受注していた場合、広告申込情報のタイプとその中のクリエイティブごとのウェイトなどにより数値を見ながら細かく調整が最初は必要でしょう。
慣れるといっても人に紐付いた仕事にはしたくないので、数値を色々変えながら実際の配信比率を見て、知識を蓄積していく作業が私には必要かもしれません。

【読了】コンセプトのつくりかた

コンセプトのつくりかた



少しダラダラと読んでしまったので簡潔に。

コンセプト = ビジョンの集合体 + アイテムの集合体

ビジョンの集合体:何をしたいか?(理由としてのWhy)
アイテムの集合体:何を用いるのか?(How)


「~したい」というビジョンと「~を使う」というHowの2つからコンセプトというものを導き出します。
Whyというのは企業として、もしかすると固定なのかもしれません。もしくは部門ごとに違うものなのかもしれません。

今回本書ではコンセプトを導き出すプロセスとして、1つの「コンセプトワーク」の流れを例示しています。
コンセプトワークは簡単に言えばKJ法です。

そのKJ法をサポートするためにメンバーへ質問するポイントとしては以下。

・逆に言うと、どうなる? さらに突き詰めていくと、どうなる?
・悪いことを「絶対に避けられないこと、それが真実だ」と過程すると、どうなる?(ゲームは不健康。など)
・立場をずらしたら、どうなる?(友達なら?奥さんなら?同僚なら?行為を行う側/行われる側なら?)
・関係のない物事を無理やりつなげてみるとどうなる?(ゲームの話の中に、料理の話)
・悪いことについて「自分も悪いことをしている」と仮定すると、どうなる?(それは自分たちにも言える?)
・本音としてはどう?/建前としてはどう?
・2つの悪いことを掛け合わせる(または同時に引き起こす)と、どうなる?(ゲーム脳&ネトゲ廃人)
・時期をずらしたら?
・ドラマ・小説・映画・アニメ・音楽に例えたら?
など。

Whyというのは意外とはっきりしていると思うけれども、Howの部分を構築するのはKJ法などで沢山出して構築していくしかないのかも。。。

【読了】ソーシャルインフルエンス 戦略PR×ソーシャルメディアの設計図 (アスキー新書)

ソーシャルインフルエンス 戦略PR×ソーシャルメディアの設計図 (アスキー新書)

ソーシャルという言葉がFacebookやTwitter、Google+など様々なソーシャルメディアとともに重要視されていることは言うまでもないのですが、一方でそのソーシャルを利用したPRや実施するキャンペーンを行う人は旧態依然と全く変わっていないという日本の現状に対し、強烈なインパクトを与える本だと思います。

世界的PR会社が導入するソーシャルインフルエンスの発揮プロセスとして紹介されているのが、以下です。

1. EXPOSURE(露出)
2. ENGAGEMENT(関与)
3. INFLUENCE(影響)
4. ACTION(行動)

それぞれのプロセスにおいて測定可能な指標を用意することになりますが、それぞれのプロセスについてPESO、つまりPaid、Earned、Shared、Ownedを掛けあわせて考えます。


Paid:企業にとって第三者に所属し、購入可能なあらゆるコンテンツ
Earned:企業にとって第三者であるマスコミやブロガーなどに影響を与えて生成してもらうコンテンツ
Shared:消費者がコントロールする、ソーシャル・ネットワーク
Owned:企業がコントロールできる、主にウェブ上のプロパティ

この考え方は日本でも適用され始めているようですが、まだまだ従来のPR手法にとらわれている人にとってはテレビや雑誌、各種広告などによるEXPOSUREで留まっていたり、「いいね!」が押された数やリツイート数のみを指標として追っていたりする人たちの割合が大きいと思われます。

そういったメディアアングルプランニングではなく、コンテクストプランニングがいかに重要かが本書内で述べられているわけです。

そこで重要なのが「自分ゴト」「他人ゴト」という考え方です。


また、インフルエンスという部分に着目した場合は「自分ゴト」「仲間ゴト」「世の中ゴト」という概念が重要です。

自分ゴトとは世の中にあふれる大量の情報の中で、「自分のための情報(商品)である」と感じるもの。仲間ゴトとは仲間なら誰でも知っている状態のこと。世の中ゴトとは誰と話しても多くの人が興味関心を持っている状態の事を示します。

単純に自分ゴトの場合でも関与が強い場合と、弱い場合では人の行動は大きく異なります。


本書を読んでいて一つ感じたのは、インターネットそのものが「自分ゴト」、つまり自分の興味関心ゴトばかり見るようなメディアであり、ソーシャルメディアでもTwitterやGoogle+のコミュニティといった、緩い集まりの場合は「自分ゴト」となる、その話題に対して高関与な人の集まりが形成されやすいのではないかと言うことです。

もちろんそのコミュニティ等で全員を網羅しているわけではなく、そして興味が無いと思っている人でも「自分ゴト」化することが出来る事を考えれば、それを意識したコンテンツをEXPOSUREしていくとして企画する必要が出てくるわけですが、ソーシャルインフルエンスを生み出す土壌・環境は現在、結構整えられているのではないかと思った次第です。

ソーシャルの中でインフルエンスを持つ人と会話をし、仲良くなることでお互いに深く知り合い、強制することなく自然とEXPOSUREする。そんな流れを作り出すことが出来れば、よりリーチする人数が増えるでしょう。

ユーザーを「コンテンツ」や「メディア」という概念で捉えるのではなく、再度「消費者」「顧客」として捉え、エンゲージメントの定義を再度捉え直し、コンテクストプランニングというものを考えさせられる。そんな良書でした。




ソーシャルインフルエンス 戦略PR×ソーシャルメディアの設計図 (アスキー新書)

【読了】ザ・ディマンド 爆発的ヒットを生む需要創出術

ザ・ディマンド 爆発的ヒットを生む需要創出術


爆発的ヒット・・・iPhoneなどいくつかの商品が頭に浮かぶかもしれませんが、過去の事例をもとに、その爆発的なヒットのポイントをまとめたのが本書です。

本書ではディマンドを生み出す人を「ディマンド・クリエーター」として、その人が共通して考えるプロセスを大きく6つにまとめています。

1.マグネティック:機能面と情緒面の「魅力」が需要を生み出す
2.ハッスルマップ:時間とお金を無駄にする「欠点」を明らかにする
3.バックストーリー:「見えない要素」で魅力を強化する
4.トリガー:人々を「夢中」にさせ、購買の決断を下してもらう
5.トランジェクトリー:魅力を「進化」させ、新しい需要層を掘り起こす
6.バリエーション:「コスト効率の高い製品多様化」を図る

副題的に書かれた部分だけでは内容が非常につかみにくいのだが、1のマグネティックとは飛び抜けた機能性を備えていたり、UIや製品デザインなどから来る感情的な結びつきによって"この商品を気に入ってる!"という状況を作り出す事を指します。

本書では
M(マグネティック) = F(機能) × E(感情)
と表されています。

2のハッスルマップに関しては、ユーザーの期待を裏切る、ユーザーが不満とする軋轢というハッスルをいかに把握するかが重要だということです。そこで考えるべきは一言で言えば「デザイン」ですが、その中には機器デザイン、経験デザイン、ビジネスデザイン、サービスデザインなど様々なデザインというものが存在します。アップルなどのワンクリック・ワールドと呼ばれる概念は特にその意識が高く、顧客の要望の一部しか満たさない新製品に関しての評価は非常に低く位置づけられている。

3のバックストーリーは、そのままですが、新しい技術やサービス、デザインだけで直接ディマンドに結びつくことはなく、セレンディピティや運、そしてバックストーリー要素も含めて初めて爆発的ディマンドに結びつくことが多い事が書かれています。

4のトリガーもそのままの意味ですが、様子見客をマグネティックな製品に心から惹きつけ、顧客へと変えるために必須となるのが、このトリガーです。
カーシェアリングサービスで有名なジップカーで言えば、そのシェアされている車がいかに自宅から近くにあるかという「密度」、キンドルで言えば「書籍への瞬間的なアクセス」、ネットフリックスで言えば「配送速度」、ネスプレッソで言えば「トライアル」にあたります。

5のトランジェクトリーはディマンドの潮流を作り出すだけではダメで、その顧客の上がり続ける期待に応え、さらにその期待を超えるためにひたすら改善し続ける事を示します。人はサービスに触れることで初めてその欲求や不満に気づく事も多いわけですが、ディマンドによる潮流を作り出すことで、そこから生まれる顧客の声を無視することはできません。新たなハッスルマップによって顧客が離れたり、ライバル企業に先を越される事は十分に考えられます。より大きな潮流へと変化させるためにはトランジェクトリーが必須となるわけです。

6のバリエーションは簡単にいえば、セグメントもしくはワントゥーワンマーケティングにあたるものです。顧客をいくつかのグループに分け、そのセグメントごとにサービスを変化させたり、路面店のような1顧客、1顧客に対してサービスを行うという考え方です。この場合もそのセグメント、その1顧客ごとにハッスルマップを作成することが重要になります。

このようにディマンドクリエーターは、ある程度共通したポイントを外さず施策を実行するわけですが、最大の障壁はサービスローンチです。
顧客のハッスル・マップを充分に理解し、そのハッスルを改善して顧客の暮らしを大幅に向上させたいと思うのであれば、すべてのバックストーリー要素を特定して所定の場所に配置することが必要だと述べています。

またローンチを成功させディマンドを創出している人は、決して賭けをしようとはせず、バットを振った時はヒットという考え方をし、「品質」を最も重視します。そしてトヨタのプリウスの例として書かれているが、複数のアイディアを作り出し、それを現実的な競争という外的圧力を加え、最も良いデザインを選ぶ(自然淘汰)というプロセスで失敗を防ぐ事も重要なのです。

以上のように、サービスデザインについて色々読んでくると、目的を示すディマンド(WHY)を満たすために外してはならないポイントがいくつかあるわけですが、リーンスタートアップ的な考え方とスタートアップ時のデザインを複数用意するなどが重要であることがわかります。

ディマンドについての書ですが、本書のなかで少しハッとしたのが新薬をアメリカ食品医薬品局(FDA)に認可を得るために「メルク」という企業がFDAに対する発想を転換したという部分です。新薬を通すためと考えた場合、通常FDAは敵として、コントラリアン的態度で望むわけですが、「メルク」のバジェロス氏は従来の「できるだけ波風立てずにFDAにとやかく言わせないためにはどうしたらいいか」という考え方から、「この大切な顧客は決断を下すためにどのような情報を必要としているのか」という考えに転換したのです。

この考え方はウェブサービスや他の様々なサービスデザインでも当てはまりますよね。
サイトやサービスを利用するユーザーがその場で決断を下すためには、どのような情報を必要とし、どのように見せることが必要なのでしょうか?

その部分も踏まえ、再度デザインというものを捉え直したいところです。


ザ・ディマンド 爆発的ヒットを生む需要創出術