前回勉強した内容をもとに、今回は実際にエクスチュアのs_code.jsを作成するという形で
アウトプットをしていこうと思う。Adobe公式の実装ガイドを片手に頑張っていきたい。
さて早速s_code.jsの実装…と行きたいところだが、まずはどのような実装にするのかを
定義する必要がある。どの変数に、どの値を代入するのか、ということを
タグを埋め込むすべてのページにおいて定義しなければならず、
これらを明記した表をSDR(solution design reference)と呼ぶ。
ということで今回はエクスチュアのサイトのSDRを作成しよう。
まずはどのような数値を取得するのかをサイト目標と照らし合わせながら決定していく。
本来ここが非常に大切なステップなのだが、今回は実装のデモということで簡単に次の5項目にした。
1. 時間帯
2. ページのスクロール量
3. 通算訪問回数
4. 前回からの訪問日数
5. お問い合わせイベント
これらの項目をそれぞれprop, eVar, eventsと呼ばれるカスタム変数に割り振っていく。
まずpropはトラフィック変数と呼ばれ、各イメージリクエストごとに定義される値をここに設定する。
今回の場合では時間とページのスクロール量がこれにあたるだろう。それを踏まえ次のように変数を定義した。
s.prop1=s.getTimeParting('n','9'); s.prop2=s.getPreviousValue(s.pageName,'s_ppn'); s.prop3=s.getPercentPageViewed();
getTimePartingとは前回説明したplug-insの一つで、
現在の時刻を”8:03 AM|Monday”のようなフォーマットで取得してくれる。
もちろんAdobe Analyticsの自動変数(timestamp)として現在の時刻は記録されているのだが、
このようにpropの変数という形でも記録しておくことでセグメントを切るためにも使用できるようになるので、
必ずと言っていいほど取得される変数だ。
getPercentPageViewedもページスクロール量を取得するための同じくplug-inなのだが、
これに関しては少しトリッキーな手法を使う。ご存じのように、イメージリクエストは
htmlがブラウザによって読み込まれる途中で発火するわけだが、ページのスクロール量は
その時点ではまだ判明していない。この問題を解決するため、getPercentPageViewedでは
前ページのページ名とスクロール量を取得して、それぞれpropに入れる、という手法を取る。
したがって今回の場合、ページごとにスクロール量を分析したいときには
prop2を軸にしてprop3の値を見ていけばいいという訳だ。
次にeVarだが、これはコンバージョン変数と呼ばれ、
訪問中に一度値がセットされるとその訪問内は値が保持されるような変数だ。
今回の場合は通算訪問回数と前回からの訪問日数を割り振るのが良さそうだ。
s.eVar1=s.getVisitNum(99999,'s_gVN') s.eVar2=s.getDaysSinceLastVisit('s_gDSLV')
getVisitNumというplug-inにより通算訪問回数を取得できる。パラメタの9999というのは
クッキーを保存する日数のことで、ここを設定しない場合一か月経つと値がリセットされてしまう。
もう一つのパラメタでは使用するクッキーの名前を指定できる。
getDaysSinceLastVisitも同じくplug-inで、初回訪問、1日以内、7日以内、30日以内、30日以上の
5カテゴリーに分けて値を返してくれる。
最後にお問い合わせイベントを計測するためのevents変数の設定を行おう。
イベントの測定はs.eventsという変数に文字列としてイベントの情報を代入することで行われる。
Adobeによって
prodView…顧客が商品を見たことを計測する
scAdd…カートへの追加を計測する
purchase…商品購入を計測する
など文字列があらかじめ用意されている。これらの文字列を正しく割り当てることで
Adobe Marketing Cloudの製品(product)カテゴリでコンバージョンファネルなどの確認ができるようになる。
今回の場合、お問い合わせフォームのページとお問い合わせ完了ページの2ページが存在するので、
それぞれに”prodView”, “purchase”を割り当てるのが良いだろう。
製品に関するイベントの場合、同時にproducts変数に商品カテゴリや商品名、値段をいれて送信することが多い。
今回は商品名に「お問い合わせ」とのみ記載しておこう。
/*http://ex-ture.com/contact/が表示されたとき*/ s.events="prodView" s.products=";,お問い合わせ" /*http://ex-ture.com/thanks/が表示されたとき*/ s.events="purchase" s.products=";,"お問い合わせ"" s.purchaseID=?????
purchaseイベントを発生させる際は同時にpurchaseIDを設定する必要がある。
この話に関しては別のブログで詳しく扱ったのでそれを参考にされたい。
今回はあらかじめ定義されていたpurchaseなどのイベントを発生させたが、
もちろん固有のイベントを計測することも可能で、
その場合はs.events=”event1″のようにしてイベントを指定する。
このように指定したイベントの情報はカスタムイベントのセクションで確認ができるようになる。
以上でエクスチュア社の簡単なSDRを定義出来た。次回はこの変数定義に基づき、実際に実装してみよう。