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
매개 변수를 사용하십시오.
getOffers()
에 "mbox1", "mbox2" 및 "mbox3"이라는 mbox가 3개 있는 경우 getOffers()
호출에 consumerId: "mbox1, mbox2, mbox3"
을(를) 포함하십시오.
decisioningMethod
request
timeout
요청
tntId
, thirdPartyId
, marketingCloudVisitorId
중 하나는 필수입니다.페이지에서 다음을 구현해야 합니다.
- 방문자 ID 서비스
- Appmeasurement.js
지원되는 값은 다음과 같습니다.
client_side: 지정하면 Data Insertion API을(를) 통해 Adobe Analytics에 보내는 데 사용해야 하는 호출자에게 분석 페이로드가 반환됩니다.
server_side: Target 및 Analytics 백엔드가 보고 목적으로 SDID를 사용하여 호출을 함께 연결하는 기본값입니다.
최대 개수 50.
이름은 비워둘 수 없습니다.
이름 길이 <=
128.
값 길이 <=
5000입니다.
이름은 "profile"로 시작하면 안 됩니다.
허용되지 않는 이름: "orderId", "orderTotal", "productPurchasedId".
최대 개수 50.
이름은 비워둘 수 없습니다.
이름 길이 <=
128.
값 길이 <=
5000입니다.
문자열 값만 허용합니다.
이름은 "profile"로 시작하면 안 됩니다.
비어 있지 않음.
최대 크기 = 128.
비어 있지 않음.
최대 크기 = 128.
>=
개빈 값이 없습니다.
각 값의 최대 길이는 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
}
}
]
}
}
});
전달된 매개 변수와 프로필 매개 변수를 사용하여 mbox를 검색하기 위해 getOffers() 호출
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"
}
}
}]
}
}
데이터 삽입 API를 통해 페이로드를 Adobe Analytics에 전달할 수 있습니다.
getOffers() 및 applyOffers()을(를) 통해 여러 mbox에서 데이터를 가져와 렌더링합니다.
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()을(를) 호출하여 페이지 로드를 수행합니다.
다음 예제에서는 at.js 2에서 getOffers()을(를) 사용하여 pageLoad를 수행하는 방법을 보여 줍니다.x
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {}
}
}
}
});