サーバーサイド実装とは
DLPOでは通常、ABテスト・パーソナライズ配信をする際に、JavaScriptスニペットを介して実装(フロントサイド実装)します。この方法は実装が容易な反面、フロントサイドの変更(ページ内要素のスタイルや配置の変更など)に限られるため、動的サイトやプログラムに対する実装が困難なケースがあります。
そこで、専用モジュール・API(サーバーサイド実装)を提供し、導入サイトのウェブサーバーよりDLPOを利用できるようにしております。これにより、動的サイトやプログラムに対する実装を可能とし、より柔軟なABテスト・パーソナライズ配信の実装を実現することができます。
サーバーサイド実装では、ウェブサーバーからABテスト内容が反映されているコンテンツを配信する仕組みとなります。
図1:仕組み
制限事項
- ユーザーを一意に識別するために、DLPO導入サイトから1st Party Cookieを発行することが可能であること。もしくは、DLPO導入サイトで利用している独自の会員ID等、ユーザーを一意に識別する固有な値の利用が可能であること。
- Ruby2.0以上が利用可能であること。
- Ruby専用モジュールでは、以下ライブラリ、およびインターフェースを使用しています。これらのモジュールがインストールされていること。
・uri
・net/http
・rack - クリエイティブの作成は、ページに表示するHTMLデータを登録する方法と、任意のフラグなどを登録して配信されたフラグに応じてページの表示が切り替わるような仕組みをサーバーサイドで実装頂く方法になります。
フラグを使用する方法の場合、フラグによって表示内容を切り替える仕組みを別途ご準備頂く必要があります。 - DLPOキャンペーンにて、ウェブ解析ツール連携はご利用いただけません。
事前準備
- 利用ドメインの登録
アプリにて利用するドメインをDLPOへ登録する必要があります。DLPOサポートへご連絡ください。
既に登録済みの場合は、改めて登録する必要はありません。また、ウェブサイト配信用に取得したドメインである必要はありません。架空ドメインを設定し利用することも可能です。 - 専用モジュールの配布
専用モジュールを配布いたします。DLPOサポートへご連絡ください。
・adlpo.rb
設定手順
1.専用モジュールのアップロード
事前に配布しました専用モジュール(adlpo.rb)を、DLPO導入サーバーへアップロードしてください。
アップロード先のディレクトリ情報は、この後の制御コード設置時に利用します。
2.クリエイティブの登録
クリエイティブは、ページに表示するHTMLデータを登録する方法(HTMLソースを使用する方法)と、任意のフラグなどを登録して配信されたフラグに応じてページの表示が切り替わるような仕組みをサーバーサイドで実装頂く方法(フラグを使用する方法)があります。
クリエイティブ個別登録のHTMLエディターを利用して、いずれかの方法にて記述してください。登録方法の詳細は「クリエイティブ個別登録」をご覧ください。
【HTMLソースを使用する方法】
HTMLをクリエイティブとして登録し配信します。クリエイティブ配信ページでは、取得したクリエイティブをそのまま表示するように実装してください。
図2-1:クリエイティブ個別登録(HTMLソースを使用する方法)
【フラグを使用する方法】
フラグをクリエイティブとして登録し配信します。クリエイティブ配信ページでは、取得したクリエイティブの値を確認し、フラグによって表示内容を切り替えるように実装してください。
図2-2:クリエイティブ個別登録(フラグを使用する方法)
3.クリエイティブ配信ページへの実装
クリエイティブを配信し表示を切り替えるページ(例:トップページ or LP)に、制御タグ、エリアタグを設置してください。また、必要に応じてトラフィックタグを設置してください。
1)制御タグ:必須
Ruby専用モジュールを読み込みます。
require './***/adlpo'
※「***/」の部分は、adlpo.rbのアップロード先ディレクトリのパスを記載してください。
2)エリアタグ:必須
Clientクラスを生成し、start_sessionメソッドを実行してください。
その後、Mainクラスを「:delivery」タイプで生成すると、戻り値として、対象エリアに表示するクリエイティブ情報を取得できます。対象エリアに表示してください。
get '/area' do
client = Adlpo::Client.new(request, response).start_session
@adlpo_creative_area = Adlpo::Main.new(client, :delivery, 'area_1', ch: 'UTF-8')
slim :area
end
※sinatra(フレームワーク)を利用したサンプルコードになります。
※「area_1」の部分がエリア名になります。任意のエリア名を指定してください。
※「ch:」にはページ文字コードを設定してください。上記では文字コードとして「UFT-8」を設定しています。
上記コードでは、1st Party Cookieを利用したトラッキングが行われます。
1st Party Cookieが利用できないケースや、CVページでドメインが変わる場合等ではトラッキングできなくなるため、次の【独自ID利用の場合】のコードをご利用ください。
【独自ID利用の場合】
Clientクラスを生成後、set_custom_user_idメソッドにてセッションで管理されるランダム文字列や会員ID等、ユーザーを一意に識別する固有のIDを設定してください。
その後、start_sessionメソッドを実行してください。
Mainクラスを「:delivery」タイプで生成すると、戻り値として、対象エリアに表示するクリエイティブ情報を取得できます。対象エリアに表示してください。
get '/area' do
client = Adlpo::Client.new(request, response).set_custom_user_id('一意のユーザーID')
client.start_session
@adlpo_creative_area = Adlpo::Main.new(client, :delivery, ‘area_1', ch: 'UTF-8')
slim :area
end
※sinatra(フレームワーク)を利用したサンプルコードになります。
※「area_1」の部分がエリア名になります。任意のエリア名を指定してください。
※「ch:」にはページ文字コードを設定してください。上記では文字コードとして「UFT-8」を設定しています。
※「一意のユーザーID」の部分がユーザーを一意に認識する固有のIDを設定する箇所になります。ユーザーIDには、半角英数字と記号「-(ハイフン)」及び「_(アンダーバー)」を含む32文字以下の文字列を設定してください。
3)クリエイティブ表示:必須
クリエイティブは、HTMLソースを使用する方法とフラグを使用する方法がございます。詳細は「2.クリエイティブの登録」をご覧ください。
登録内容により、ページへの表示方法は変更してください。以下に、slimを使い、HTMLソースを使用したクリエイティブを表示する方法を記載します。エリアタグにて取得したMainオブジェクト(@adlpo_creative_area)のdefault?メソッドにてデフォルト表示可否を判断し、クリエイティブを表示する場合は、creativeプロパティより値を取得してください。
doctype html
html
head
meta charset="utf-8"
title area
body.sample
#contents
h1 area
- if @adlpo_creative_area.default?
dev default
- else
dev ==@dlpo_creative_area.creative
4)トラフィックタグ:任意
ユーザーの行動履歴を取得する場合は、トラフィックタグを設置してください。トラフィックタグを設置するには、DLPO管理画面よりトラフィックタグIDを発行する必要があります。また、管理画面にてトラフィックタグを発行することも可能です。詳細は「トラフィック登録・一覧」をご覧ください。
※ユーザーの行動履歴をもとにサイト内行動ターゲティングを行う場合のみ必要となります。
get '/traffic' do
client = Adlpo::Client.new(request, response).start_session
Adlpo::Main.new(client, :attribute, 'xxxx', tt: 'XXXXXX')
slim 'h1 traffic'
end
※sinatra(フレームワーク)を利用したサンプルコードになります。
※「xxxx」にはページごとに異なったページIDを記載してください。(空にすると自動採番になります。管理画面でのタグ発行時に指定可能です)
※「XXXXXX」には管理画面で生成したトラフィックタグIDを指定してください。
※1st Party Cookieを利用したトラッキングになります。独自IDを利用する場合は、エリアタグの【独自ID利用の場合】をご参照ください。
4.コンパージョンページへの実装
コンバージョンを計測するページに、制御タグ、コンバージョンタグを設置してください。また、必要に応じてトラフィックタグを設置してください。
1)制御タグ:必須
Ruby専用モジュールを読み込みます。
require './***/adlpo'
※「***/」の部分は、adlpo.rbのアップロード先ディレクトリのパスを記載してください。
2)コンバージョンタグ:必須
Clientクラスを生成し、start_sessionメソッドを実行してください。
その後、Mainクラスを「:conversion」タイプで生成すると、トラッキングが行われます。戻り値はありません。
get '/cv' do
client = Adlpo::Client.new(request, response).start_session
Adlpo::Main.new(client, :conversion, 'conversion_1')
slim 'h1 cv'
end
※sinatra(フレームワーク)を利用したサンプルコードになります。
※「conversion_1」の部分がCVポイント名になります。任意のCVポイント名を指定してください。
※1st Party Cookieを利用したトラッキングになります。独自IDを利用する場合は、エリアタグの【独自ID利用の場合】をご参照ください。
3)トラフィックタグ:任意
ユーザーの行動履歴を取得する場合は、トラフィックタグを設置してください。トラフィックタグを設置するには、DLPO管理画面よりトラフィックタグIDを発行する必要があります。また、管理画面にてトラフィックタグを発行することも可能です。詳細は「トラフィック登録・一覧」をご覧ください。
※ユーザーの行動履歴をもとにサイト内行動ターゲティングを行う場合のみ必要となります。
get '/traffic' do
client = Adlpo::Client.new(request, response).start_session
Adlpo::Main.new(client, :attribute, 'xxxx', tt: 'XXXXXX')
slim 'h1 traffic'
end
※sinatra(フレームワーク)を利用したサンプルコードになります。
※「xxxx」にはページごとに異なったページIDを記載してください。(空にすると自動採番になります。管理画面でのタグ発行時に指定可能です)
※「XXXXXX」には管理画面で生成したトラフィックタグIDを指定してください。
※1st Party Cookieを利用したトラッキングになります。独自IDを利用する場合は、エリアタグの【独自ID利用の場合】をご参照ください。
5.エリア、コンバージョンポイントの確認
設置したエリアタグ、コンバージョンタグを認識させるため、ブラウザから対象ページにアクセスしてください。認識された場合は、DLPO管理画面の「エリア一覧」、「コンバージョン一覧」に表示されます。
6.セグメントの登録
必要に応じて、セグメントを登録してください。登録方法の詳細は「セグメント個別登録」をご覧ください。
7.キャンペーンの登録、稼働
Standardキャンペーン作成にて、キャンペーンを作成し、対象エリアにクリエイティブ、セグメントを設定、またコンバージョンを設定してください。作成したキャンペーンを稼働させると、対象サイトにてABテスト及びパーソナライズ配信が実行されます。
キャンペーン作成の詳細は「Standardキャンペーン作成による設定」をご覧ください。
図3-1:Standardキャンペーン作成(2.詳細設定)
図3-2:Standardキャンペーン作成(3.コンバージョン設定)