adobe.target.getOffers() - at.js 2.x
この関数を使用すると、複数の mbox を渡すことで複数のオファーを取得できます。さらに、アクティブなアクティビティのすべてのビュー向けに複数のオファーを取得できます。
consumerId
指定しない場合、デフォルト値はクライアントのグローバル mbox です。このキーは、A4T 統合に使用される追加のデータ ID (SDID)を生成するために使用されます。
getOffers()
を使用する場合、各呼び出しで新しい SDID が生成されます。 同じページに複数の mbox リクエストがあり、SDID を保持する(target-global-mbox と Adobe Analytics の SDID と一致するように)場合は、consumerId
パラメーターを使用します。
getOffers()
に 3 つの mbox (「mbox1」、「mbox2」、「mbox3」という名前)が含まれている場合は、getOffers()
呼び出しに consumerId: "mbox1, mbox2, mbox3"
を含めます。
decisioningMethod
request
timeout
リクエスト
tntId
、thirdPartyId
、または marketingCloudVisitorId
のいずれか 1 つが必須です。以下をページに実装する必要があります。
- 訪問者 ID サービス
- Appmeasurement.js
次の値がサポートされています。
client_side:指定すると、分析ペイロードが呼び出し元に返されます。これは Data Insertion API 経由で Adobe Analytics に送信するために使用する必要があります。
server_side: これはデフォルト値で、TargetとAnalytics バックエンドが SDID を使用してレポート目的で呼び出しをステッチします。
最大数は 50 です。
名前が空白ではありません。
名前の長さ <=
128 です。
値の長さ <=
5000。
名前を「profile」で始めないでください。
最大値は 50 です。
名前が空白ではありません。
名前の長さ <=
128 です。
値の長さ <=
5000。
文字列値のみを使用できます。
名前を「profile」で始めないでください。
空白ではありません。
最大サイズ = 128。
空白ではありません。
最大サイズ = 128。
>=
0。空白の値はありません。
各値の最大長は 50 です。
コンマで連結および区切ります。
商品 ID の長さ <=
合計 250。
Request > execute > pageLoad
parameters
最大数は 50 です。
名前が空白ではありません。
名前の長さ <=
128 です。
値の長さ <=
5000。
文字列値のみを使用できます。
名前を「profile」で始めないでください。
使用できない名前:「orderId」、「orderTotal」、「productPurchasedId」。
Request > execute > pageLoad
profileParameters
最大数は 50 です。
名前が空白ではありません。
名前の長さ <=
128 です。
値の長さ <=
256。
名前を「profile」で始めないでください。
文字列値のみを使用できます。
Request > execute > pageLoad
product
Request > execute > pageLoad
product -> id
空白ではありません。
最大サイズ = 128。
Request > execute > pageLoad
product > categoryId
空白ではありません。
最大サイズ = 128。
Request > execute > pageLoad
order
Request > execute > pageLoad
order > id
Request > execute > pageLoad
order > total
>=
。Request > execute > pageLoad
order > purchasedProductIds
空白の値はありません。
各値の最大長は 50 です。
コンマで連結および区切ります。
商品 ID の長さ <=
合計 250。
最大サイズ = 50。
null 要素がありません。
空白ではありません。
「– クリック」サフィックスはありません。
最大サイズ = 250。
使用できる文字:`'-, ./=:;&!@#$%^&*()+
null ではありません。
一意。
0>=
。
最大数= 50。
名前が空白ではありません。
名前の長さ <=
128 です。
文字列値のみを使用できます。
値の長さ <=
5000。
名前を「profile」で始めないでください。
使用できない名前:「orderId」、「orderTotal」、「productPurchasedId」。
最大数= 50。
名前が空白ではありません。
名前の長さ <=
128 です。
文字列値のみを使用できます。
値の長さ <=
256。
名前を「profile」で始めないでください。
空白ではありません。
最大サイズ = 128。
空白ではありません。
最大サイズ = 128。
>=
。空白の値はありません。
各値の最大長= 50。
コンマで連結および区切ります。
製品 ID の全長 <=
250 です。
すべてのビューに getOffers() を呼び出す
adobe.target.getOffers({
request: {
prefetch: {
views: [{}]
}
}
});
getOffers() を呼び出し、オンデバイス判定を行う
adobe.target.getOffers({
decisioningMethod:"on-device",
request: {
execute: {
mboxes: [
{
index: 0,
name: "homepage"
}
]
}
}
});
getOffers() を呼び出し、渡されたパラメーターとプロファイルを使用して最新ビューを取得する
adobe.target.getOffers({
request: {
"prefetch": {
"views": [
{
"parameters": {
"ad": "1"
},
"profileParameters": {
"age": 23
}
}
]
}
}
});
getOffers() を呼び出し、渡されたパラメーターとプロファイルを使用して mbox を取得する
adobe.target.getOffers({
request: {
execute: {
mboxes: [
{
index: 0,
name: "first-mbox"
},
{
index: 1,
name: "second-mbox",
parameters: {
a: 1
},
profileParameters: {
b: 2
}
}
]
}
}
});
getOffers() を呼び出して、クライアント側から分析ペイロードを取得します
adobe.target.getOffers({
request: {
experienceCloud: {
analytics: {
logging: "client_side"
}
},
prefetch: {
mboxes: [{
index: 0,
name: "a1-serverside-xt"
}]
}
}
})
.then(console.log)
応答:
{
"prefetch": {
"mboxes": [{
"index": 0,
"name": "a1-serverside-xt",
"options": [{
"content": "<img src=\"http://s7d2.scene7.com/is/image/TargetAdobeTargetMobile/L4242-xt-usa?tm=1490025518668&fit=constrain&hei=491&wid=980&fmt=png-alpha\"/>",
"type": "html",
"eventToken": "n/K05qdH0MxsiyH4gX05/2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==",
"responseTokens": {
"profile.memberlevel": "0",
"geo.city": "bucharest",
"activity.id": "167169",
"experience.name": "USA Experience",
"geo.country": "romania"
}
}],
"analytics": {
"payload": {
"pe": "tnt",
"tnta": "167169:0:0|0|100,167169:0:0|2|100,167169:0:0|1|100"
}
}
}]
}
}
その後、ペイロードは Data Insertion API を介して Adobe Analytics に転送できます。
getOffers() および applyOffers()を使用した複数の mbox からのデータの取得とレンダリング
at.js 2.x を使用すると、getOffers()
API を使用して複数の mbox を取得できます。複数の mbox のデータを取得して、applyOffers()
CSS セレクターによって識別されるさまざまな場所で、データをレンダリングすることもできます。
次の例は、at.js 2.x を実装した単純な HTML ページを示しています。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>at.js 2.x, multiple selectors and multiple mboxes</title>
<script src="at.js"></script>
</head>
<body>
<div id="container1">Default content 1</div>
<div id="container2">Default content 2</div>
<div id="container3">Default content 3</div>
</body>
</html>
Target から受け取ったコンテンツを介して変更したい 3 つのコンテナがあるとします。3 つの mbox に対して 1 つのリクエストを作成し、それぞれの mbox に、それぞれのコンテナにレンダリングするためのコンテンツを含めることができます。
リクエストおよびレンダリングコードは次の例のようになります。
adobe.target.getOffers({
request: {
prefetch: {
mboxes: [
{
index: 0,
name: "mbox1"
},
{
index: 1,
name: "mbox2"
},
{
index: 2,
name: "mbox3"
}
]
}
}
})
.then(response => {
// get all mboxes from response
const mboxes = response.prefetch.mboxes;
let count = 1;
mboxes.forEach(el => {
adobe.target.applyOffers({
selector: "#container" + count,
response: {
prefetch: {
mboxes: [el]
}
}
});
count += 1;
});
});
request > prefetch > mboxes
セクションでは、3 つの異なる mbox があります。リクエストが正常に完了した場合は、それぞれの mbox に対する応答を response > prefetch > mboxes
から受信します。レスポンスとレンダリングに使用する場所が決まったら、applyOffers()
を呼び出して Target から取得したコンテンツをレンダリングできます。この例では、次のマッピングがあります。
- mbox1/CSS セレクター# container1
- mbox2/CSS セレクター# container2
- mbox3/CSS セレクター# container3
この例では、count 変数を使用して CSS セレクターを作成します。実際のシナリオでは、CSS セレクターと mbox との異なるマッピングを使用できます。
この例では prefetch > mboxes
を使用していますが、execute > mboxes
を使用することもできます。getOffers()
でプリフェッチを使用する場合は、applyOffers()
呼び出しでもプリフェッチを使用する必要があります。
getOffers() を呼び出して pageLoad を実行します
次の例は、at.js 2 で getOffers() を使用して pageLoad を実行する方法を示しています。x
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {}
}
}
}
});