adobe.target.getOffers() - at.js 2.x
이 함수를 사용하면 여러 mbox를 전달하여 여러 오퍼를 검색할 수 있습니다. 또한 활성 활동의 모든 보기에 대해 여러 오퍼를 검색할 수 있습니다.
consumerId
기본값이 제공되지 않을 경우 기본값은 클라이언트의 글로벌 mbox입니다. 이 키는 A4T 통합에 사용되는 SDID(Supplemental Data ID)를 생성하는 데 사용됩니다.
사용 시 getOffers()
, 각 호출은 새 SDID를 생성합니다. 동일한 페이지에 여러 개의 mbox 요청이 있고 SDID를 유지하려는 경우(target-global-mbox의 SDID와 일치하도록) Adobe Analytics SDID), consumerId
매개 변수.
If getOffers()
에는 "mbox1", "mbox2" 및 "mbox3"으로 명명된 세 개의 mbox가 포함되어 있습니다. consumerId: "mbox1, mbox2, mbox3"
다음에서 getOffers()
호출합니다.
decisioningMethod
request
timeout
요청
tntId
, thirdPartyId
, marketingCloudVisitorId
중 하나는 필수입니다.페이지에서 다음을 구현해야 합니다.
- 방문자 ID 서비스
- Appmeasurement.js
지원되는 값은 다음과 같습니다.
client_side: 이 매개 변수를 지정하면 를 전송하는 데 사용해야 하는 호출자에게 분석 페이로드가 반환됩니다 Adobe Analytics 를 통해 데이터 삽입 API.
server_side TargetAnalytics: 및 백엔드가 보고 목적으로 SDID를 사용하여 호출을 함께 연결하는 기본값입니다.
최대 개수 50.
이름은 비워둘 수 없습니다.
이름 길이 <=
128.
값 길이 <=
5000.
이름은 "profile"로 시작하면 안 됩니다.
허용되지 않는 이름: "orderId", "orderTotal", "productPurchasedId".
최대 개수 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
>=
0.request > execute > pageLoad
order > purchasedProductIds
빈 값이 없습니다.
각 값의 최대 길이는 50자입니다.
쉼표로 연결 및 구분됩니다.
제품 ID 총 길이 <=
250
최대 크기 = 50.
null 요소가 없습니다.
비어 있지 않음.
'-clicked' 접미사가 없습니다.
최대 크기 = 250.
허용되는 문자: `'-, ./=:;&!@#$%^&*()+
null 아님
고유.
>=
0.
최대 개수 = 50.
이름은 비워둘 수 없습니다.
이름 길이 <=
128.
문자열 값만 허용합니다.
값 길이 <=
5000.
이름은 "profile"로 시작하면 안 됩니다.
허용되지 않는 이름: "orderId", "orderTotal", "productPurchasedId".
최대 개수 = 50.
이름은 비워둘 수 없습니다.
이름 길이 <=
128.
문자열 값만 허용합니다.
값 길이 <=
256.
이름은 "profile"로 시작하면 안 됩니다.
비어 있지 않음.
최대 크기 = 128.
비어 있지 않음.
최대 크기 = 128.
>=
0.빈 값이 없습니다.
각 값의 최대 길이 = 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() 클라이언트측에서 analytics 페이로드를 검색하려면
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"
}
}
}]
}
}
그런 다음 페이로드를 로 전달할 수 있습니다. Adobe Analytics 를 통해 데이터 삽입 API.
를 통해 여러 mbox에서 데이터 가져오기 및 렌더링 getOffers() 및 applyOffers()
at.js 2.x를 사용하면 getOffers()
API를 통해 여러 mbox를 가져올 수 있습니다. 여러 mbox에 대한 데이터를 가져온 다음 CSS 선택기에서 식별한 다른 위치에 데이터를 렌더링하는 데 applyOffers()
를 사용할 수도 있습니다.
다음 예는 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개 있다고 가정합니다. 각 mbox에 각 컨테이너로 렌더링할 콘텐츠가 있는 세 개의 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
섹션에는 세 개의 다른 mbox가 있습니다. 요청이 성공적으로 완료되면 response > prefetch > mboxes
에서 각 mbox에 대한 응답을 받게 됩니다. 응답 및 렌더링에 사용할 위치가 있으면 Target에서 검색된 콘텐츠를 렌더링하도록 applyOffers()
를 호출할 수 있습니다. 이 예에는 다음 매핑이 있습니다.
- mbox1 > CSS selector #container1
- mbox2 > CSS selector #container2
- mbox3 > CSS selector #container3
이 예에서는 count 변수를 사용하여 CSS 선택기를 구성합니다. 실제 시나리오에서는 CSS 선택기와 mbox 간에 다른 매핑을 사용할 수 있습니다.
이 예제에서는 prefetch > mboxes
를 사용하지만 execute > mboxes
를 사용할 수도 있습니다. getOffers()
에서 미리 가져오기 작업을 실행하는 경우 applyOffers()
호출에서도 미리 가져오기 작업을 실행해야 합니다.
호출 getOffers() 페이지 로드를 수행하려면
다음 예에서는 을 사용하여 pageLoad를 수행하는 방법을 보여 줍니다 getOffers() at.js 2.x
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {}
}
}
}
});