게시자 제공 신호

광고 요청에서 잠재고객 및 문맥 데이터를 게시자 제공 신호(PPS)로 전송할 수 있습니다. PPS를 사용하면 사용자 식별자를 공유할 필요 없이 표준 분류를 사용하여 잠재고객 특성을 모든 거래 유형의 입찰자에게 전달함으로써 사용자 데이터를 사용하여 프로그래매틱 수익 창출을 개선할 수 있습니다. 잠재고객 특성에는 행동 및 관심분야 기반 데이터(IAB 잠재고객 분류 1.1) 및 문맥 데이터(IAB 콘텐츠 분류 2.2)가 포함될 수 있습니다. 또한 Google에서 정의하고 추가 신호 전송을 허용하는 게시자 제공 구조화된 신호를 보낼 수도 있습니다.

사용자 신호 JSON 구성

최상위 수준에서 단일 키-값 쌍이 있는 JSON 객체를 만듭니다. 키는 PublisherProvidedTaxonomySignals여야 하고 값은 객체의 배열이어야 합니다. 배열의 각 객체에는 2개의 키-값 쌍이 있어야 합니다.

  • taxonomy 키: 다음 IAB 공개 사양에 매핑되는 다음 값을 허용합니다.

    • IAB_AUDIENCE_1_1: 잠재고객 분류 1.1
    • IAB_CONTENT_2_2: 콘텐츠 분류 2.2
  • 문자열 분류 값의 해당 배열이 있는 values

구조화된 신호 배열 구성

구조화된 신호의 경우 PublisherProvidedStructuredSignals 키를 객체 배열의 값과 함께 추가합니다. 다음 신호 키-값 목록을 기반으로 객체를 구성합니다.

구조화된 신호 표 보기 전환

신호 <code" dir="ltr" translate="no">"type" Value</code"> 가능한 "single_value" 가능한 "values"
오디오 피드 유형 "audio_feed"
  • "af_1": 음악
  • "af_2": 브로드캐스트
  • "af_3": 팟캐스트
해당 사항 없음
콘텐츠 등급 "content_rating"
  • "cr_1": G
  • "cr_2": PG
  • "cr_3": T
  • "cr_4": MA
해당 사항 없음
콘텐츠 전송 "delivery" 해당 사항 없음
  • "cd_1": 스트리밍
  • "cd_2": 프로그레시브
  • "cd_3": 다운로드
제작 품질 "prodq"
  • "pq_1": 전문 제작
  • "pq_2": 프로슈머
  • "pq_3": 사용자 제작 (UGC)
해당 사항 없음

분류 신호에 IAB_AUDIENCE_1_1IAB_CONTENT_2_2를 사용하고 구조화된 신호를 포함하는 다음 예를 참고하세요.

const userSignals = {
  "PublisherProvidedTaxonomySignals": [{
     "taxonomy": "IAB_AUDIENCE_1_1",
     "values": ["6", "284"]
     // '6' = 'Demographic | Age Range | 30-34'
     // '284' = 'Interest | Business and Finance |  Mergers and Acquisitions'
  },
  {
     "taxonomy": "IAB_CONTENT_2_2",
     "values": ["49", "138"]
     // '49' = 'Books and Literature | Poetry'
     // '138' = 'Education | College Education | College Planning'
  }],
  "PublisherProvidedStructuredSignals": [{
      "type": "audio_feed",
      "single_value": "af_1",
    },
    {
      "type": "delivery",
      "values": ["cd_1", "cd_3"],
    },
  ],
};

스트림 요청 구성

StreamRequest를 사용하여 PPS를 전송하려면 다음 단계를 따르세요.

  • 사용자의 관심분야, 행동 또는 문맥 데이터로 JSON 문자열을 만듭니다.
  • 위의 JSON 문자열에서 Base64로 인코딩된 ASCII 문자열을 만듭니다.
  • StreamRequest.setAdTagParameters를 사용하여 인코딩된 JSON을 추가합니다.
JSONObject userSignalsObject = new JSONObject();
JSONArray userSignalsArray = new JSONArray();
JSONObject audienceTaxonomyObject = new JSONObject();
JSONArray valuesArray = new JSONArray();
valuesArray.put("1");
valuesArray.put("284");
try {
  audienceTaxonomyObject.put("taxonomy", "IAB_AUDIENCE_1_1");
  audienceTaxonomyObject.put("values", valuesArray);
} catch (JSONException e) {
  e.printStackTrace();
}

userSignalsArray.put(audienceTaxonomyObject);

try {
  userSignalsObject.put("PublisherProvidedTaxonomySignals", userSignalsArray);
} catch (JSONException e) {
  e.printStackTrace();
}

byte[] userSignalsByte=new byte[0];
try {
  userSignalsByte = userSignals.getBytes(StandardCharsets.UTF_8);
  String encodedBas64Signals = android.util.Base64.encodeToString(
    userSignalsByte,
    android.util.Base64.URL_SAFE);
  encodedSignals = URLEncoder.encode(encodedBas64Signals, "UTF-8");
} catch (java.io.UnsupportedEncodingException error) {
  Log.w("Sample app", error);
}

Map<String, String> adTagParamMap = new java.util.HashMap<String, String>();
adTagParamMap.put("ppsj", encodedSignals);

streamRequest.setAdTagParameters(adTagParamMap)