adobe.target.getOffers(options) - at.js 2.x

이 함수를 사용하면 여러 mbox를 전달하여 여러 오퍼를 검색할 수 있습니다. 또한 활성 활동의 모든 보기에 대해 여러 오퍼를 검색할 수 있습니다.

NOTE

이 함수는 at.js 2.x에서 도입되었으며, at.js 버전 1.x​에는 사용할 수 없습니다.

유형 필수? 설명
consumerId 문자열 아니오 기본값이 제공되지 않을 경우 기본값은 클라이언트의 글로벌 mbox입니다. 이 키는 A4T 통합에 사용되는 보조 데이터 ID를 생성하는 데 사용됩니다. 이 키는 방문자별로 고유한 문자열입니다.
요청 개체 아래의 "요청" 표를 참조하십시오.
timeout 숫자 아니오 요청 시간 제한. 지정하지 않으면 기본값 at.js 시간 제한이 사용됩니다.

요청

NOTE

아래 나열된 모든 필드에 대해 허용되는 유형에 대한 자세한 내용은 배달 API 설명서를 참조하십시오.

필드 이름 필수? 제한 설명
request > id 아니오 tntId, thirdPartyId, marketingCloudVisitorId 중 하나는 필수입니다.
request > id > thirdPartyId 아니오 최대 크기 = 128
Request > experienceCloud 아니오
Request > experienceCloud > analytics 아니오 Adobe Analytics 통합
Request > experienceCloud > analytics > logging 아니오 페이지에서 다음을 구현해야 합니다.
  • 방문자 ID 서비스
  • Appmeasurement.js
다음 값이 지원됩니다.
client_side: 이 값을 지정하면 데이터 삽입 API를 통해 Adobe Analytics로 보낼 때 사용해야 하는 호출자에게 분석 페이로드가 반환됩니다.
server_side: Target 및 Analytics 백엔드가 보고 목적으로 SDID를 사용하여 호출을 함께 연결하는 기본값입니다.
request > prefetch 아니오
request > prefetch > views 아니오 최대 개수 50
이름은 공백 아님
이름 길이 <= 128
값 길이 <= 5000
이름은 "profile"로 시작하면 안 됨
허용되지 않는 이름: "orderId", "orderTotal", "productPurchasedId"
활성 활동에서 적절한 보기를 검색하는 데 사용할 매개 변수를 전달합니다.
request > prefetch > views > profileParameters 아니오 최대 개수 50
이름은 공백 아님
이름 길이 <= 128
값 길이 <= 5000
이름은 "profile"로 시작하면 안 됨
활성 활동에서 적절한 보기를 검색하는 데 사용할 프로필 매개 변수를 전달합니다.
request > prefetch > views > product 아니오
request > prefetch > views > product -> id 아니오 공백은 안 됨
최대 크기 = 128
활성 활동에서 적절한 보기를 검색하는 데 사용할 제품 ID를 전달합니다.
request > prefetch > views > product > categoryId 아니오 공백은 안 됨
최대 크기 = 128
활동에서 적절한 보기를 검색하는 데 사용할 제품 카테고리 ID를 전달합니다.
request > prefetch > views > order 아니오
request > prefetch > views > order > id 아니오 최대 길이 = 250 활성 활동에서 적절한 보기를 검색하는 데 사용할 주문 ID를 전달합니다.
request > prefetch > views > order > total 아니오 합계 >= 0 활성 활동에서 적절한 보기를 검색하는 데 사용할 주문 합계를 전달합니다.
request > prefetch > views > order > purchasedProductIds 아니오 빈 값 없음
각 값의 최대 길이 50
쉼표로 연결 및 구별
제품 ID 총 길이 <= 250
활성 활동에서 적절한 보기를 검색하는 데 사용할 구입 제품 ID를 전달합니다.
request > execute 아니오
request > execute > pageLoad 아니오
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
페이지가 로드될 때 지정된 제품 ID로 오퍼를 검색합니다.
request > execute > pageLoad > product > categoryId 아니오 공백은 안 됨
최대 크기 = 128
페이지가 로드될 때 지정된 카테고리 ID로 오퍼를 검색합니다.
request > execute > pageLoad > order 아니오
request > execute > pageLoad > order > id 아니오 최대 길이 = 250 페이지가 로드될 때 지정된 주문 ID로 오퍼를 검색합니다.
request > execute > pageLoad > order > total 아니오 >= 0 페이지가 로드될 때 지정된 주문 합계로 오퍼를 검색합니다.
request > execute > pageLoad > order > purchasedProductIds 아니오 빈 값 없음
각 값의 최대 길이 50
쉼표로 연결 및 구별
제품 ID 총 길이 <= 250
페이지가 로드될 때 지정된 구입 제품 ID로 오퍼를 검색합니다.
request > execute > mboxes 아니오 최대 크기 = 50
null 요소가 없음
request > execute > mboxes>mbox 공백은 안 됨
‘-clicked’ 접미어 없음
최대 크기 = 250
허용되는 문자: '-, ._\/=:;&!@#$%^&*()_+|?~[]{}'
mbox 이름.
request > execute > mboxes>mbox>index null 아님
고유함
>= 0
색인은 mbox가 처리되는 순서를 나타내지 않습니다. 몇 개의 지역 mbox가 있는 웹 페이지에서와 마찬가지로, 처리되는 순서를 지정할 수 없습니다.
request > execute > mboxes > mbox > parameters 아니오 최대 개수 = 50
이름은 공백 아님
이름 길이 <= 128
값 길이 <= 5000
이름은 "profile"로 시작하면 안 됨.
허용되지 않는 이름: "orderId", "orderTotal", "productPurchasedId"
지정된 매개 변수를 사용하여 주어진 mbox에 대한 오퍼를 검색합니다.
request > execute > mboxes>mbox>profileParameters 아니오 최대 개수 = 50
이름은 공백 아님
이름 길이 <= 128
값 길이 <=256
이름은 "profile"로 시작하면 안 됨.
지정된 프로필 매개 변수를 사용하여 주어진 mbox에 대한 오퍼를 검색합니다.
request > execute > mboxes>mbox > product 아니오
request > execute > mboxes > mbox > product > id 아니오 공백은 안 됨
최대 크기 = 128
지정된 제품 ID를 사용하여 주어진 mbox에 대한 오퍼를 검색합니다.
request > execute > mboxes > mbox > product > categoryId 아니오 공백은 안 됨
최대 크기 = 128
지정된 제품 카테고리 ID를 사용하여 주어진 mbox에 대한 오퍼를 검색합니다.
request > execute > mboxes > mbox > order 아니오
request > execute > mboxes>mbox > order > id 아니오 최대 길이 = 250 지정된 주문 ID를 사용하여 주어진 mbox에 대한 오퍼를 검색합니다.
request > execute > mboxes > mbox > order > total 아니오 >= 0 지정된 주문 합계를 사용하여 주어진 mbox에 대한 오퍼를 검색합니다.
request > execute > mboxes > mbox > order > purchasedProductIds 아니오 빈 값 없음
각 값의 최대 길이 = 50
쉼표로 연결 및 구별
제품 ID 총 길이 <= 250
지정된 주문 구입 제품 ID를 사용하여 주어진 mbox에 대한 오퍼를 검색합니다.

모든 보기에 대해 getOffers() 호출

adobe.target.getOffers({
    request: {
      prefetch: {
        views: [{}]
    }
  }
});

전달된 매개 변수 및 프로필 매개 변수를 사용하여 최신 보기를 검색하기 위해 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에 대한 응답을 받게 됩니다. 응답 및 렌더링에 사용할 위치가 있으면 [!DNL 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: {}
            }
        }
    }
});

이 페이지에서는