Core 拡張機能は、Adobe Experience Platform Launch でリリースされたデフォルトの拡張機能です。
このリファレンスは、この拡張機能を使用してルールを作成するときに使用できるオプションに関する情報です。
このトピックでは、Core 拡張機能で使用できるイベントのタイプについて説明します。
複数のイベントタイプに設定できるオプションについては、オプションを参照してください。
タブがフォーカスを失ったときにアクションをトリガーします。
このイベントタイプに関する設定はありません。
タブがフォーカスされたときにアクションをトリガーします。
このイベントタイプに関する設定はありません。
フォームがフォーカスを失ったときにアクションをトリガーします。
次のオプションを参照してください。
フォームがフォーカスされたときにアクションをトリガーします。
次のオプションを参照してください。
フォームが送信されたときにアクションをトリガーします。
次のオプションを参照してください。
キーが押されると、イベントをトリガーします。
次のオプションを参照してください。
メディアが終了すると、イベントをトリガーします。
次のオプションを参照してください。
メディアがデータを読み込むと、イベントをトリガーします。
次のオプションを参照してください。
メディアが一時停止されると、イベントをトリガーします。
次のオプションを参照してください。
メディアが再生されると、イベントをトリガーします。
次のオプションを参照してください。
メディアが停止すると、イベントをトリガーします。
次のオプションを参照してください。
メディアが一定の時間再生されると、イベントをトリガーします。
次のオプションを参照してください。
さらに、一定の時間が経過するとイベントをトリガーするように指定します。
ボリュームが増加または減少すると、イベントをトリガーします。
次のオプションを参照してください。
デバイスの向きが変更されたら、イベントをトリガーします。
このイベントタイプに関する設定はありません。
さらに、一定の時間が経過するとイベントをトリガーするように指定します。
ユーザーがズームインまたはズームアウトすると、イベントをトリガーします。
このイベントタイプに関する設定はありません。
指定したイベントが選択(クリック)された場合に、要素をトリガーします。
オプションとして、イベントがトリガーされる前に、要素で true となる必要があるプロパティ値を指定できます。
また、要素がリンクの場合、ルールが実行されるまでナビゲーションを遅らせるかどうかを指定することもできます。このチェックボックスを選択すると、フィールドが開き、必要な遅延時間をミリ秒で入力できます。 これは、プラットフォーム開始が、選択されたリンクでタグが実行されてから、次のページに移動するまでの待機時間を指定します。 デフォルト値は 100 ミリ秒です。この時間を長くするとトラッキングの精度が向上します。アドビでは、ユーザーに遅延を意識させないよう 500 ミリ秒以下の設定値を推奨しています。この値は Platform Launch が待機する時間の上限値であり、ビーコンが早く起動した場合には遅延が短くなります。(つまり、ユーザーの待ち時間は必ずしもこの設定値ほど長くはなりません)。
さらに、一定の時間が経過するとイベントをトリガーするように指定します。
高度なオプションについては、次のオプションを参照してください。
指定した要素にユーザーがマウスポインターを置くと、イベントをトリガーします。
次のオプションを参照してください。
また、ルールがすぐにトリガーされるか、指定した時間(ミリ秒)が経過した後でルールがトリガーされるかを設定します。
カスタムイベントタイプが発生すると、イベントをトリガーします。
他の場所で定義した JavaScript 関数に名前を付けて、イベントに使用することができます。
カスタムイベントタイプの名前を指定し、次のオプションで説明するように、その他の設定をおこないます。
指定したデータ要素が変更されると、イベントをトリガーします。
データ要素名を入力します。リストを選択し、データ要素を選択すると、そのアイコンをクリックしてデータ要素を選択できます。
イベント検出およびルックアップシステムをバイパスするために設計されました。
Direct Call ルールは、Platform Launchに対して、何がおこなわれるかを正確に伝えたい場合に最適です。また、Adobe Flash を使用しているなど、Platform Launch が DOM でイベントを検出できない場合にも最適です。
_satellite.track
文字列を指定します。
指定した要素が存在する場合は、イベントをトリガーします。
次のオプションを参照してください。
ユーザーが指定したビューポートに入ると、イベントをトリガーします。
次のオプションを参照してください。
また、ルールがすぐにトリガーされるか、指定した時間(ミリ秒)が経過した後でルールがトリガーされるかを設定します。
pushState または hashchange が発生すると、イベントをトリガーします。
このイベントタイプに関する設定はありません。
ユーザーが指定した秒数の間ページに留まると、イベントをトリガーします。
イベントがトリガーされるまでに経過する必要がある時間(秒数)を指定します。
DOM の準備が完了し、ユーザーがページを操作できるようになるとトリガーします。
このイベントタイプに関する設定はありません。
Platform Launch ライブラリが読み込まれ次第、イベントをトリガーします。
このイベントタイプに関する設定はありません。
_satellite.pageBottom();
が呼び出されたら、イベントを実行します。Platform Launch ライブラリを非同期で読み込む場合、このイベントタイプは使用しないでください。
このイベントタイプに関する設定はありません。
onLoad がブラウザーによって呼び出され、ページの読み込みが完了すると、イベントをトリガーします。
このイベントタイプに関する設定はありません。
各フォームイベントタイプでは、次の設定を使用します。
イベントをトリガーする要素を識別する CSS セレクターを入力します。
このオプションを選択すると、次のパラメーターを使用できるようになります。
property=value
Specify the value for the property
Regex
property=value
が正規表現の場合は有効にします。
Add
別の property=value
ペアを追加します。
ここでは、Core 拡張機能で使用できる条件のタイプについて説明します。これらの条件タイプは、標準ロジックと例外ロジックのどちらででも使用できます。
アクションをトリガーするためにイベントで使用する必要がある cookie の名前と値を指定します。
イベントの条件として使用する必要があるカスタムコードを指定します。組み込みコードエディターを使用してカスタムコードを入力します。
カスタムコード内から参照できる event
という名前の変数が自動的に使用可能になります。この event
オブジェクトには、ルールをトリガーしたイベントに関する便利な情報が含まれます。どのイベントを使用できるかを判断する最も簡単な方法として、カスタムコード内からコンソールに event
を記録します。
console.log(event);
return true;
ブラウザーでルールを実行し、ブラウザーのコンソールでログに記録されたイベントオブジェクトを調べます。利用可能な情報を把握したら、その情報をカスタムコード内でプログラム判定に使用できます。
条件の順序付け
プロパティ設定の「Run rule components in sequence」オプションを有効にすると、条件によって非同期タスクが実行される間、後続のルールコンポーネントを待機させることができます。
条件によって Promise が返される場合、ルール内の次の条件は、返されたプロミスが解決されるまで実行されません。プロミスが拒否された場合、Platform Launch はその条件を失敗と見なし、そのルールからのそれ以上の条件やアクションは実行されません。
プロミスを返す条件の例を次に示します。
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (new Date().getDay() === 5) {
resolve();
} else {
reject();
}
}, 1000);
});
2 つの値を比較して、この条件が true を返すかどうかを判断します。
複数の条件を持つルールがある場合、この条件で true が返されても、他の条件が false と評価されるか、いずれかの例外が true と評価されて、ルールが実行されない可能性があります。
次の値比較演算子を使用できます。
Equal:厳密でない比較を使用して 2 つの値が等しい場合(JavaScript では == 演算子)、true を返します。値には任意のタイプを指定できます。値フィールドに true、false、nullまたは undefined などの単語を入力すると、その単語は文字列として比較され、同等の JavaScript には変換されません。
Does Not Equal:厳密でない比較で 2 つの値が等しくない場合(JavaScript では= 演算子)、条件は true を返します。値には任意のタイプを指定できます。値フィールドに true、false、nullまたは undefined などの単語を入力すると、その単語は文字列として比較され、同等の JavaScript には変換されません。
Contains:最初の値に 2 番目の値が含まれている場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は false を返します。
Does Not Contain:最初の値に 2 番目の値が含まれていない場合、条件は true を返します。数値は文字列に変換されます。数字または文字列以外の値を指定すると、条件は true を返します。
Starts With:最初の値が 2 番目の値で開始する場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は false を返します。
Does Not Start With:最初の値が 2 番目の値で始まらない場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は true を返します。
Ends With:最初の値が 2 番目の値で終わる場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は false を返します。
Does Not End With:最初の値が 2 番目の値で終わらない場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は true を返します。
Matches Regex:最初の値が正規表現と一致する場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は false を返します。
Does Not Match Regex:最初の値が正規表現と一致しない場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は true を返します。
Is Less Than:最初の値が 2 番目の値より小さい場合、条件は true を返します。数字を表す文字列は数値に変換されます。数値または変換可能な文字列以外の値を指定すると、条件は false を返します。
Is Less Than Or Equal To:最初の値が 2 番目の値以下の場合、条件は true を返します。数字を表す文字列は数値に変換されます。数値または変換可能な文字列以外の値を指定すると、条件は false を返します。
Is Greater Than:最初の値が 2 番目の値以上の場合、条件は true を返します。数字を表す文字列は数値に変換されます。数値または変換可能な文字列以外の値を指定すると、条件は false を返します。
Is Greater Than Or Equal To:最初の値が 2 番目の値以上の場合、条件は true を返します。数字を表す文字列は数値に変換されます。数値または変換可能な文字列以外の値を指定すると、条件は false を返します。
Is True:値が true のブール値の場合、条件は true を返します。他のタイプの場合、指定した値はブール値に変換されません。値が true のブール値以外の値を指定すると、条件は false を返します。
Is Truthy:ブール値に変換した後、値が true の場合、条件は true を返します。Truthy な値の例については、MDN の Truthy に関するドキュメントを参照してください。
Is False:値が false のブール値の場合、条件は true を返します。他のタイプの場合、指定した値はブール値に変換されません。値が false のブール値以外の値を指定すると、条件は false を返します。
Is Falsy:ブール値に変換した後、値が false の場合は、条件は true を返します。Falsy な値の例については、MDN の Falsy に関するドキュメントを参照してください。
アクションをトリガーするためにイベントで使用する必要がある JavaScript変数名と値を指定します。
イベントをトリガーするためにユーザーがランディングする必要があるページを指定します。
アクションをトリガーするには、訪問者がイベントの新規訪問者または再訪問者である必要があるかどうかを指定します。
次のいずれかを選択します。
アクションがトリガーされる前に訪問者がページを何回表示する必要があるかを設定します。
ユーザーのセッション数が指定した条件を満たす場合、アクションをトリガーします。
ユーザーのセッション数が指定した条件を満たす場合、アクションをトリガーします。
訪問者がどの程度の時間サイトに滞在したらアクションをトリガーするかを設定します。
ユーザーのセッション数が指定した条件を満たす場合、アクションをトリガーします。
アクションをトリガーするために、true となっている必要がある訪問者のトラフィックのソースを指定します。
アクションをトリガーするために、訪問者が使用する必要があるブラウザーを選択します。
次のブラウザーを 1 つ以上選択します。
アクションをトリガーするために、訪問者が使用する必要があるデバイスのタイプを選択します。
次のデバイスタイプを 1 つ以上選択します。
アクションをトリガーするために、訪問者が使用する必要があるオペレーティングシステムを選択します。
次のオペレーティングシステムを 1 つ以上選択します。
アクションをトリガーするために、訪問者がデバイスで使用する必要がある画面解像度を選択します。
アクションをトリガーするために、訪問者がデバイスで使用する必要があるウィンドウサイズを選択します。
訪問者のドメインを指定します。
URL に必要な 1 つ以上のハッシュパターンを指定します。
複数のハッシュパターンは OR で結合されます。
URL に存在する必要がある 1 つ以上のパスを指定します。パスとクエリー文字列が含まれます。
複数のパスは OR で結合されます。
URL に存在する必要がある 1 つ以上のパスを指定します。これにはパスが含まれますが、クエリー文字列は含まれません。
複数のパスは OR で結合されます。
URL で使用するプロトコルを指定します。
次のいずれかを選択します。
URL で使用する URLパラメーターを指定します。
URL に存在する 1 つまたは複数のサブドメインを指定します。
複数のサブドメインは、OR で結合されます。
日付範囲を指定します。イベントが発生する前または後の日時、タイムゾーンを選択します。
条件が true を返す最大回数を指定します。選択できる項目は次のとおりです。
条件の最大頻度 1 セッションあたり、これら 2 つの localStorage
項目が比較されます。 visitorTracking.sessionCount
が maxFrequency.session
カウントより大きい場合、サンプリング条件は true です。 これらが等しい場合、条件は false です。
sessionCount
が visitorTracking
項目である場合は、訪問者 API を有効にして、サンプリング条件が機能するようにする必要があります。
条件が true を返す時間のパーセンテージを指定します。
ここでは、Core 拡張機能で使用できるアクションタイプについて説明します。
イベントのトリガー後に実行して条件を評価するコードを提供します。
言語として「JavaScript」を選択すると、カスタムコード内から参照できる event
という名前の変数が自動的に使用可能になります。この event
オブジェクトには、ルールをトリガーしたイベントに関する便利な情報が含まれます。どのイベントを使用できるかを判断する最も簡単な方法として、カスタムコード内からコンソールに event
を記録します。
console.log(event);
ブラウザーでルールを実行し、ブラウザーのコンソールでログに記録されたイベントオブジェクトを調べます。利用可能な情報を把握したら、カスタムコード内でその情報をプログラム判定に使用したり、event
オブジェクトの一部をサーバーに送信したりできます。
Core 拡張機能は、すべての Platform Launch ユーザーが使用でき、ユーザー指定の JavaScript または HTML を実行するためのカスタムコードアクションが含まれています。「Custom Code」アクションを使用するルールの処理方法を理解すると便利です。
カスタムアクションからのコードは、メイン Platform Launch ライブラリに埋め込まれます。コードは、document.write を使用してドキュメントに書き込まれます。ルールに複数のカスタムコードアクションがある場合、コードはルール内で設定されている順序で記述されます。
カスタムアクションのコードはサーバーから読み込まれ、Postscribe を使用してドキュメントに書き込まれます。ルールに複数のカスタムコードアクションがある場合、コードはサーバーから平行して読み込まれますが、ルール内で設定されている順序で記述されます。
ページの読み込み後に document.write を使用すると、通常は問題が発生しますが、これはカスタムコードアクションによって提供されるコードの場合は問題になりません。コードを実行するタイミングに関係なく、カスタムコードアクション内で document.write を使用できます。
Platform Launch コードエディターで使用されるバリデーターは、開発者が作成したコードの問題を識別するように作られています。縮小処理をおこなったコード(コードマネージャーからダウンロードした AppMeasurement.js コードなど)は、バリデーターによって、誤って「問題あり」とフラグ付けされることがありますが、通常は無視できます。
プロパティ設定の「Run rule components in sequence」オプションを有効にすると、アクションによって非同期タスクが実行される間、後続のルールコンポーネントを待機させることができます。JavaScript と HTML カスタムコードでは、動作は異なります。
JavaScript
JavaScript のカスタムコードアクションを作成する場合、アクションから Promise を返すことがあります。ルール内の次のアクションは、返されたプロミスが解決された場合にのみ実行されます。プロミスが拒否された場合、ルールの次のアクションは実行されません。
メモ:これは、JavaScript がグローバルに実行されないよう設定されている場合にのみ機能します。グローバルスコープでカスタムコードアクションを実行している場合、Platform Launch はプロミスが直ちに解決されたものと見なし、処理キュー内の次の項目に移動します。
プロミスを返す JavaScript カスタムコードアクションの例を次に示します。
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (new Date().getDay() === 5) {
resolve();
} else {
reject();
}
}, 1000);
});
HTML
HTML のカスタムコードアクションを作成する場合、onCustomCodeSuccess()
という関数をカスタムコード内で使用することができます。この関数を呼び出して、カスタムコードが完了し、Platform Launch が以降のアクションの実行に進むことができると示すことができます。一方、カスタムコードが何らかの方法で失敗した場合は、onCustomCodeFailure()
を呼び出すことができます。これにより、そのルールから後続のアクションを実行しないように Platform Launch に通知します。
新しいコールバックを使用する HTML カスタムコードアクションの例を次に示します。
<script>
setTimeout(function() {
if (new Date().getDay() === 5) {
onCustomCodeSuccess();
} else {
onCustomCodeFailure();
}
}, 1000);
</script>
データ要素のタイプは、拡張機能によって決まります。タイプはいくつでも作成することができます。
以降の節では、Core 拡張機能で使用できるデータ要素のタイプについて説明します。その他の拡張機能は、他のタイプのデータ要素を使用します。
使用可能なドメイン cookie は、「cookie name」フィールドで参照できます。
cookieName
アクションまたは条件で参照できる任意の定数文字列値。
string
「エディターを開く」を選択し、エディターウィンドウにコードを挿入することで、カスタムJavaScriptをUIに入力できます。
データ要素の値として使用する値を示すために、エディターウィンドウで return ステートメントを記述する必要があります。return ステートメントが含まれていない場合や、値 null
または undefined
が返された場合は、データ要素のデフォルト値がデータ要素の値として使用されます。
例:
var pageType = $('div.page-wrapper').attr('class').split('')[1];
if (window.location.pathname == '/') {
return 'homepage';
} else {
return pageType;
}
カスタムコードデータ要素がルールの実行中に取得される場合、カスタムコード内から参照できる event
という名前の変数が自動的に使用可能になります。この event
オブジェクトには、ルールをトリガーしたイベントに関する便利な情報が含まれます。どのイベントを使用できるかを判断する最も簡単な方法として、カスタムコード内からコンソールに event
を記録します。
console.log(event);
return true;
ブラウザーでルールを実行し、ブラウザーのコンソールでログに記録されたイベントオブジェクトを調べます。データ要素を使用できる様々なルールにおいて使用可能な情報を把握したら、カスタムコード内でその情報をプログラム判定に使用したり、event
オブジェクトの一部をデータ要素の値として返すことができます。
div または H1 タグなど、任意の要素の値を取得できます。
CSS セレクターチェーン:
id#dc logo img
値を取得する要素:
src
使用可能な JavaScript オブジェクトまたは変数は、パスフィールドを使用して参照できます。
マークアップに JavaScript 変数またはオブジェクトプロパティがあり、これらの値を Platform Launch で収集して拡張機能やルールで使用する場合、Platform Launch のデータ要素を使用してこれらの値を収集できます。この方法を使用すると、ルール全体でデータ要素を参照でき、データのソースが変更された場合でも、Platform Launch の 1 か所でソース(データ要素)への参照を変更するだけで済みます。
例えば、次のように、マークアップに「Page_Name
」という JavaScript 変数が含まれているとします。
<script>
//data layer
var Page_Name = "Homepage"
</script>
Platform Launch でデータ要素を作成する場合は、この変数へのパスを指定するだけです。
データレイヤーでデータコレクターオブジェクトを使用している場合は、パスに、データ要素に取得するオブジェクトおよびプロパティを参照するドット表記を使用します(例:_myData.pageName
や digitalData.pageName
など)。
window.document.title
「Local Storage Item Name」フィールドにローカルストレージ項目の名前を入力します。
ローカルストレージを使用すると、ブラウザーはページからページへと情報を保存できます(https://www.w3schools.com/html/html5_webstorage.asp)。ローカルストレージは cookie のように機能しますが、cookie よりも大きく、柔軟です。
指定したフィールドを使用して、ローカルストレージ項目用に作成した値(例:lastProductViewed.
)を指定します。
これらのデータポイントを使用して、ルールロジックで使用するページ情報をキャプチャしたり、Analytics や外部トラッキング システムに情報を送信したりできます。
次のいずれかのページ属性を選択してデータ要素で使用できます。
単一の URL パラメーターを「URL Parameter」フィールドで指定します。
名前セクションのみが必要で、特殊な指定子(「?」や「=」など)は、省略する必要があります。
contentType
乱数を生成するには、このデータ要素を使用します。多くの場合、データのサンプリングや、ID の作成(ヒット ID など)に使用されます。乱数は、難読化または salt 機密データに使用できます。例として次のようなものが挙げられます。
乱数の最小値と最大値を指定します。
デフォルト:
最小:0
最大:1000000000
「Session Storage Item Name」フィールドにセッションストレージ項目の名前を入力します。
セッションストレージは、ローカルストレージと似ていますが、セッションの終了後はデータが破棄されるという点が異なります。ローカルストレージや cookie はデータを保持することがあります。
ページ情報と同様、このデータ要素は、ルールまたはデータ収集において、共通の動作タイプを使用して論理を強化します。
次のいずれかの訪問者行動属性を選択します。
一般的なユースケースには次のものが含まれます。