Tín hiệu do nhà xuất bản cung cấp

Bạn có thể gửi dữ liệu đối tượng và bối cảnh dưới dạng tín hiệu do nhà xuất bản cung cấp (PPS) trong yêu cầu quảng cáo. Với PPS, bạn có thể sử dụng dữ liệu người dùng để cải thiện hoạt động kiếm tiền có lập trình bằng cách thông báo các đặc điểm của đối tượng cho bên đặt giá thầu trong tất cả loại giao dịch bằng cách sử dụng các hệ thống phân loại chuẩn mà không cần chia sẻ giá trị nhận dạng người dùng. Các đặc điểm của đối tượng có thể bao gồm dữ liệu hành vi và dữ liệu dựa trên mối quan tâm (Hệ thống phân loại đối tượng của IAB 1.1) và dữ liệu bối cảnh (Hệ thống phân loại nội dung 2.2 của IAB). Bạn cũng có thể gửi tín hiệu có cấu trúc do nhà xuất bản cung cấp (do Google xác định) và cho phép gửi thêm tín hiệu.

Tạo JSON tín hiệu người dùng

Ở cấp cao nhất, hãy tạo một đối tượng JSON có một cặp khoá-giá trị duy nhất. Khoá phải là PublisherProvidedTaxonomySignals và giá trị của khoá phải là một mảng đối tượng. Mỗi đối tượng trong mảng phải có 2 cặp khoá-giá trị:

  • Khoá taxonomy chấp nhận các giá trị sau được liên kết với các thông số kỹ thuật công khai của IAB:

    • IAB_AUDIENCE_1_1 cho Hệ thống phân loại đối tượng 1.1
    • IAB_CONTENT_2_2 cho Hệ thống phân loại nội dung 2.2
  • Khoá values có một mảng tương ứng gồm các giá trị phân loại chuỗi.

Tạo mảng tín hiệu có cấu trúc

Đối với tín hiệu có cấu trúc, hãy thêm khoá PublisherProvidedStructuredSignals có giá trị của một mảng đối tượng. Tạo đối tượng dựa trên danh sách giá trị khoá tín hiệu sau:

Bật/tắt chế độ xem của bảng tín hiệu có cấu trúc

Tín hiệu <code" dir="ltr" translate="no">"type" Value</code"> Các giá trị "single_value" có thể có Các giá trị "values" có thể có
Loại nguồn cấp dữ liệu dạng âm thanh "audio_feed"
  • "af_1": Âm nhạc
  • "af_2": Truyền tin
  • "af_3": Podcast
không áp dụng
Phân loại nội dung "content_rating"
  • "cr_1": G
  • "cr_2": PG
  • "cr_3": T5
  • "cr_4": MA
không áp dụng
Cung cấp nội dung "delivery" không áp dụng
  • "cd_1": Truyền trực tuyến
  • "cd_2": Luỹ tiến
  • "cd_3": Tải xuống
Chất lượng sản xuất "prodq"
  • "pq_1": Được sản xuất chuyên nghiệp
  • "pq_2": Nhà sản xuất không chuyên
  • "pq_3": Do người dùng tạo (Nội dung do người dùng tạo)
không áp dụng

Hãy xem ví dụ sau đây sử dụng IAB_AUDIENCE_1_1IAB_CONTENT_2_2 cho các tín hiệu phân loại và bao gồm cả các tín hiệu có cấu trúc.

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"],
    },
  ],
};

Định cấu hình yêu cầu quảng cáo

Hãy làm theo các bước sau để gửi PPS bằng AdsRequest của bạn:

  • Tạo một chuỗi JSON chứa mối quan tâm, hành vi hoặc dữ liệu theo bối cảnh của người dùng.
  • Tạo một chuỗi ASCII được mã hoá Base64 từ chuỗi JSON ở trên.
  • Nối chuỗi mã hóa vào URL thẻ quảng cáo của bạn bằng thông số &ppsj=.
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();
}

String userSignals = userSignalsObject.toString();

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);
}

String finalAdTag = sampleAdTag + "&ppsj=" + encodedSignals;