2014年ウェブマーケティング手法のまとめ
■
イベントモデル
何等かの動作に応じて自動で処理を実行する仕組みが、DOMオブジェクトには用意されている。それがイベントです。
→イベントに割り振られた処理のことで、通常は関数の形で定義されてる。
イベントハンドラの登録
→(Document/Element).addEventListener("イベント名","イベントハンドラ",真偽)
var dom = document.querySelector("#msg")
Document.addEventListener("mousedown","funcA")
function funcA(){
alert("function A実行");
}
<p id="msg">Clicjk</p>
---------------------------------------------------------------------------------------------------------------
これは、PタグにaddEventListennerでイベントハンドラを組み込む例です。
1つのイベントにいくらでもイベントハンドラを追加することができる。
それぞれのイベントハンドラは、常にイベントハンドラの処理をすべて完了してから次のイベントに進んでいく。複数のイベントが並立して実行されるわけでなく、
常に実行されているのは、1つのイベントハンドラです。
Eventオブジェクトにについて
function init(){
var dom = document.querySelector{"#msg");
document.body.addEventListenner("click",funcA,false);
}
function funcA(event){
var res ="type:" + event.type;
res += "\nid:" + event.target.id;
alert(res);
}
この引数で渡されるeventに、Eventオブジェクトが設定されている。
ここでは、その中から「type」と「target」のIDとを取出して利用していきます。
typeはイベント要素のタイプを示すものでtargetイベントが発生した要素をDOMオブジェクトとして取り出すもの。
イベントハンドとthis
上の例では、イベントが発生したDOMオブジェクトをEventのtargetプロパティで取得していました。が、もっと手軽にイベント発生源を得ることがでkりう。それだ「this」です。
thisは、クラスメソッドなどで、そのインスタンス自身を示すのに用いられている。
イベントハンドラ内にthisを使うと、実行中のイベントハンドラが設定されているDOMオブジェクトを得ることができる。
JavaScript イベントハンドラ
イベントハンドラプロパティの設定
イベントハンドラを登録するには、イベントターゲットのプロパティに、イベントハンドラ関数を設定するのが最も簡単です。イベントハンドラプロパティの名前は、イベントの名前の前に「on」を追加したものになるのが普通です。
例えば、「onclick」「onchange」「onload」などです。これらのプロパティ名では、大文字と小文字が区別されます。「readystatechange」などのように、イベントタイプが複数の単語から構成されるような場合でも、すべて小文字で記述する。
------------------------------------------------------------------------------------------------------------------
//windowオブジェクトのonloadプロパティに関数を設定する。この関数がイベントハンドラになる。ドキュメントがロードされたときに呼び出しされる。
window.onload = function(){
//<form>要素を検索する。
var elt = document.getElementById("shipping_address");
//イベントハンドラ関数を登録し、フォーム送信直前に、呼び出されるようにする。
elt.onsubmit = function(){ return validate(this);}}
------------------------------------------------------------------------------------------------------------------
上記の方法は、広く使われるイベントタイプであれば、すべてのブラウザでうまく動作する。一般的には、イベントを定義するwebAPIのうち広く実装されているものであれば、イベントハンドラプロパティを設定することでイベントハンドラを登録できるようになっています。
addEventListener
すべてのブラウザでサポートされている標準のイベントモデルでは、addEventListener()というメソッドを定義しているオブジェクトであれば、イベントターゲットになります。windowオブジェクトやdocumentオブジェクト、ドキュメントのすべてのElemnetオブジェクトなどがそうです。このaddEventListener()を使って、イベントターゲットにイベントハンドラを登録できます。引数は3つ指定します。1番目の引数はには、イベントハンドラを登録するイベントタイプを指定します。イベントタイプは、文字列形式で指定します。イベントハンドラプロパティを設定するときに使った「on」接頭辞は必要ない。2番目の引数には、指定したイベントタイプが発生したときに呼び出される関数を指定します。3番目の引数には、理論値を指定します。
falseを指定するのが普通です。tureを指定した場合は、イベントをキャプチャリングするイベントハンドラとして登録され、イベント伝播において、通常とは異なる段階で呼び出されるようになります。
--------------------------------------------------------------------------------------------------------------------
<button id="mybutton">Click me</button>
<script>
var b = document.getElementId("mybutton");
b.onclick = function(){alert("Thank you for click me!")};
b.addEventListener("click", function(){ alert("Thank again!");},false);
</script)
--------------------------------------------------------------------------------------------------------------------
1番目の引数に"click"を指定して、addEventListener()を呼び出しても、onclickプロパティの値は、変化しません。先ほどのコードではボタンクリックすると、2つのalert()ダイヤログボックス表示されます。addEventListener()を複数起こせば、同じオブジェクトの同じイベントハンドラ関数を登録できます。
webブラウザに表示されている内容は、基本的にHTMLDocumentとHTMLElementの組み合わせによって組み立てられている。Documentをルートとして、そこからHTMLの構造に従ってくみこまれていくHTMLElementオブジェクトの構造は、一般にDOMツリーと呼ばれている。
このDOMツリーは、そのページのHTMLコードの読み込みに応じて構築されていきます。HTMLコードのタグを読み込まれると、DOMオブジェクトが作成され、完成しているオブジェクトに組み込まれていく。
重要なのは、「まだ読み込みが完了していないタグのDOMオブジェクトは完成していない」という点です。完成していないオブジェクトは、操作することもできません。
onload属性の利用
<body>タグを見ると、onload="int()"という属性が指定されている。
実行しているスクリプトはiniという関数での形で定義されていることがわかる。
これは、この<script>タグが読み込まれた際に実行されてはいなかったのです。
onload属性は、イベントに対する属性でこのタグが読み込まれ、DOMツリーが完成した後で実行される処理を示すもの。
HTMLの表示に関する主要タグには、こうしたイベントに関する属性がいろいろ用意されている。このイベントは、特定の操作や状況に応じて発生する信号。このイベントはスクリプトに埋め込むこともできるし、イベントに用意されたプロパティに値を設定しておくことで、状況に応じて自動に実行されるようにできる。
DOMオブジェクトを取得するメソッド
IDで取得する。
変数 = document.getElementByID(IDの指定)
そのタグにID属性の値を指定することでDOMオブジェクトを取得します。
ID属性はユニークな値でなければいけない。
名前で取得する。
変数 = document.getElementByName(nameの指定)
nameを利用してDOMオブジェクトを取得するためのもの。getElementByIdと同様に、引数にnameの値を指定すると、そのnameのDOMオブジェクトが返されます。ただし、注意すべきは「返り値はリストになる」という点です。
クラス名で取得する。
変数 = document.getElementByClass(Classの指定)
HTMLタグに設定しているスタイルシートのクラス名でDOMオブジェクトを取得します。引数には、クラス名を指定します。
タグ名で取得する。
変数 = document.getElementByTagName(タグ名の指定)
タグの種類を指定してDOMオブジェクトを取得するもの。引数はタグ名の文字列を指定します。getElementByTagName("p")とすれば<p>タグのDOMオブジェクトすべてを取得できる。
アクセス解析の種類
アクセス解析の背景
インターネットのユーザーは、webブラウザを使ってwebサイトを閲覧しています。
ユーザーが見たいサイトの情報はそれぞれのサイトのwebサーバにおかれており、ユーザーがwebブラウザを操作することによって、webブラウザからwebサーバーに閲覧データの要求が出されます。webブラウザがそのサーバーから取得したデータを画面データの要求が出されます。webブラウザがそのサーバーから取得したデータを画面に表示することによって、サイトの情報を閲覧できるわけです。そういったwebブラウザとwebサーバーのやりとりの記録がログデータとしてサーバー内にキリクされています。webサーバーに記録されるアクセスログデータ自体には、サイトの閲覧者からのアクセスだけでなく、Googleなどの検索エンジンがwebデータを取得するために訪れるような人以外のアクセスも記録されています。
Googleアナリティクス「ファーストパーティとサードパーティ」
Google アナリティクスの計測方法
Googleアナリティクスの仕組みやデータを理解するうえで、アナリティクスが設定する。Cookieの内容を知ることは非常に重要です。Cookieに記録されているデータは、重要な計測指標、キャンペーン計測、カスタム変数などの計測値と関係深い情報だからです。
Cookieとは
Cookieとは、webサイトのサーバーがwebブラウザを通じて訪問者の端末に一時的に
情報を書き込んで保存するテキストデータのこと。
一般的にCookie は訪問者を特定し、サイトへの訪問に関する情報を記録します。
webサーバーは、このCookieデータによって訪問者を識別し、訪問状況を把握することができます。
GAはファーストパーティCookieを利用している。
Cookieは、必ずウェブサイトに置かれているドメインを属性に持つがそのドメイン
属性の違いにより、Cookieには2つの種類がある。
webサイトが置かれているホストドメインを属性にもつCookieを「ファーストパーティCookie」、それ以外のドメイン属性を持つCookieを「サードパーティCookie」という。訪問者からの視点からみれば、今訪問しているサイトドメインのサーバーから書き込まれたCookieが「ファーストパーティ」。訪問しているサイトドメイン以外のサーバーから書き込まれたCookieが第三者の意味合いで「サードパーティ」となります。
自分が今訪問し、閲覧しているドメイン以外から書き込まれるCookieは、どのようなものがあるのか。
代表的なものの一つに広告配信サーバから書き込まれるCookieがあります。
webサイトを閲覧していて広告が表示されるとき、その広告のほとんどはサイトの情報が置かれているサーバーとは別の場所にある広告専用のサーバーから配信されている。当然ドメイン属性も異なります。また広告配信サーバーは、広告を閲覧したユーザーの人数や配信した回数などを把握するために、Cookie情報を持つユーザーの端末に書き込み、利用している。
もう一つ代表的な例として「webビーコン型アクセス解析サーバ」からのCookieがあります。訪問者のアクセス情報を計測するために、解析サーバーから”webビーコン”が配信されます。この解析サーバーからのCookieも、多くの場合、解析サーバーの置かれているドメイン属性を持つ。普段のwebサイト閲覧ではあまり気づきませんが、このように第三者から配信されているコンテンツやデータがある場合、サードパーティCookieが利用されています。
ファーストパーティCookie のデメリット
ECサイトでショッピングカートに外部サイトシステムを利用しているような場合は
多くの場合ドメインも異なります。訪問者が購入プロセスのためにショッピングカートへ遷移したときには、例えばGoogleアナリティクスのトラッキングコードが設置してあったとしても、正しい計測ができなくなります。
これは、元のCookie 情報が受け渡せれなくなることによっておきます。
また、サブドメインのコンテンツを持っている場合も、ドメイン属性は異なるため
同様のことがおきます。サードパーティを利用している場合はそのような事を気にする必要はありません。
ユニバーサルアナリティクスのCookie
従来のアナリティクスと同様にファーストパーティCookieだが、その仕組みは大幅に変更している。従来のアナリティクスは5種類のCookie情報を記録していて、ユーザーの訪問履歴やセッション時間、参照元、カスタム変数の管理をしていた。しかし、ユニバーサルアナリティクスでは、Cookieに記録される情報は大幅に簡素化された。
無作為に生成された2つの32ビット数値からなる識別子を含む1桁の数値列のみとなりました。
例)1.2.12345.6789
最初の「1」は、Cookie Versionで、現在は「1」です。
これが、ex.sample.a.com なら「4」になります。
最後の「12345.6789」がブラウザに割り当てられている乱数で、これは「Client ID」
となります。このIDは、従来のアナリティクスCookieの「ビジターID」に置き換わるものなので、訪問ユーザーを特定するのに使用される。
従来のアナリティクスのCookieで記録されていたほかの情報は、ユニバーサルアナリティクスはすべてGoogleアナリティクスのサーバー側で記録、管理される仕組みになっている。
これでOK!「 アドテクノロジー入門」
オーディエンスデータの管理
オーディエンスデータは「一人に対してユニークに振られたID」と「IDに不可されている情報全般」
を示している。
IDには、ブラウザのCookie ID、会員ID、ユニークIDなどが存在します。
また、ユニークに振られたIDには、Web閲覧履歴、検索履歴、購入履歴などの情報が含まれています。
アドテクノロジー業界では、、ブラウザのCookieIDを使ったリターゲ広告やオーディエンスターゲティングなどで利用されています。この場合、ブラウザのCookie IDが変化してしまい、オーディエンスデータが不完全になる課題となっている。それらの課題を解決するためのデジタル技術やIPアドレスなどを使ったターゲティングなどCookieを使わないターゲティング技術が日々進化しています。
インフラの進化
保持や活用の部分に関してインフラ面も進化を続けている。オーディエンスのデータは、KVS(KeyーValue store)と言われるIDキーにして、IDに対して値を登録するタイプのデータベースを利用して管理されています。
オーディエンスデータのリッチ化
KVS技術の進化によって、オーディエンスが保有できる値の数やバリュエーションを増やすことが
でき、オーディエンスデータがリッチ化されます。これにより、ターゲティング広告のバリエーションやデータ分析のバリュエーションは増加し、さまざまな場面でメリットが発生する。
具体的には、オーディエンスに対して適切なタイミングで広告を出したり、オーディエンスがコンバージョンに至る経路がわかったりするようになりました。
こういった技術進化の背景は、DMPがあります。
DMPについて
DMPとは、利用者が持つオーディエンスデータと、第三者が持つオーディエンスデータを一元管理し、分析できる。
これらのデータを活用して、mailやディスプレイ広告費、コンテンツマーケティングに活かすことも
可能。また、DMPは第三者データに付加価値を与え、Webサイトやクライアントをまたいだオーディエンスデータの売買を可能にしました。そのため、データチェンジは、オーディエンスデータを豊富に持ったメディアの新しいマネタイズ方法として注目されています。
また、DMPは大きく分けて、2種類あります。
①プライベートDMP
プライベートDMPは、広告主またはメディアに閉じた利用を目的としています。主に顧客
データベースを作成して、各チャネルに使う予算の配分や施策効果の最適化を測るために作られます。
②パブリックDMP
自社メディアの属性、自社メディアの競合を知り得ることができます。
パブリックDMPは、このようなマーケティング用途に使われることが多く、プライベートなDMPが
既存顧客データベースの運用という立ち位置とするとパブリックなDMPは見込み顧客の発掘という
立場になります。
DMPの果たす役割の一つにIDの統合管理があります。
このID管理統合の際に、どのIDを基盤IDにするかがポイントになります。
基盤となるIDとしては可能な限りIDの数が多く、活用しやすいものが望ましいでしょう。
ID数が多いという側面からブラウザのCookieIDを利用する。活用しやすいという側面から会員ID
が利用されると考えられる。
リアルタイム性
デジタルマーケティングの利点として、リアルタイムにオーディエンスデータを収集でき、即座に
アクションに反映できる点にあります。また、タイムリーなターゲティングを実現させる機能として
オーディエンスデータのクラスタリングや類似とった機械学習を伴う処理技術が含まれてきます。
この処理を必要な十分なデータで限りなくリアルタイムに行うことはエンジニアリング的に非常に難しい課題です。且つ技術力を持った会社かどうかという評価ポイントとして挙げることができます。