Cải thiện chiến dịch quảng cáo bằng PPS
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Bạn có thể gửi dữ liệu về đố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 các 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 truyền đạt các đặc điểm về đối tượng của bạn cho bên đặt giá thầu trong tất cả các loại giao dịch, bằng cách sử dụng dữ liệu phân loại chuẩn mà không cần chia sẻ giá trị nhận dạng người dùng. Đặ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 theo bối cảnh (Hệ thống phân loại nội dung của IAB 2.2).
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ị:
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"> |
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" : T
"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" : Tăng tiến
"cd_3" : Tải xuống
|
Chất lượng sản xuất |
"prodq" |
"pq_1" : Sản xuất chuyên nghiệp
"pq_2" : Nhà tiêu dùng
"pq_3" : Nội dung do người dùng tạo (UGC)
|
không áp dụng |
Hãy xem ví dụ sau đây về việc sử dụng IAB_AUDIENCE_1_1
và IAB_CONTENT_2_2
cho tín hiệu phân loại và bao gồm 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"],
},
],
};
Hãy làm theo các bước sau để gửi PPS bằng StreamRequest
của bạn:
- Tạo một đối tượng JSON có dữ liệu về mối quan tâm, hành vi hoặc bối cảnh của người dùng.
- Tạo chuỗi ASCII được mã hoá Base64 từ đối tượng JSON ở trên.
- Thêm chuỗi đã mã hoá bằng
StreamRequest.adTagParameters
.
userSignalsJson = {
"PublisherProvidedTaxonomySignals": [{
"taxonomy": "IAB_AUDIENCE_1_1",
"values": ["1", "284"]
}]
}
userSignalsString = FormatJson(userSignalsJson)
byteArray = CreateObject("roByteArray")
byteArray.FromAsciiString(userSignalsString)
encodedSignals = byteArray.ToBase64String().EncodeUri()
' This shows adding a single parameter. More can be added with:
' streamRequest.adTagParameters = "ppsj=" + encodedSignals + "&..."
streamRequest.adTagParameters = "ppsj=" + encodedSignals
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-08-21 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-08-21 UTC."],[[["\u003cp\u003ePublisher provided signals (PPS) let you share audience and contextual data to improve programmatic ad revenue, using standard IAB taxonomies like Audience Taxonomy 1.1 and Content Taxonomy 2.2.\u003c/p\u003e\n"],["\u003cp\u003ePPS uses JSON to structure signals, encompassing taxonomy signals (e.g., user demographics, interests, content categories) and structured signals (e.g., audio feed type, content rating).\u003c/p\u003e\n"],["\u003cp\u003eYou need to Base64-encode the JSON object containing the signals before including it as the \u003ccode\u003eppsj\u003c/code\u003e parameter in your ad request.\u003c/p\u003e\n"],["\u003cp\u003eThis approach enables sharing valuable data with bidders to enhance ad targeting without exposing user identifiers, thereby increasing monetization potential.\u003c/p\u003e\n"]]],["Publishers can enhance programmatic monetization by sending audience and contextual data (Publisher Provided Signals - PPS) in ad requests. This data, structured using IAB taxonomies (Audience 1.1, Content 2.2), can include user behavior and interests. Structured signals, like audio feed type and content delivery, can also be added. Data is formatted into a JSON object containing `PublisherProvidedTaxonomySignals` and `PublisherProvidedStructuredSignals` as needed, converted to Base64, and added to the `StreamRequest.adTagParameters` as the parameter \"ppsj=\".\n"],null,["# Improve ad campaigns with PPS\n\nYou can send audience and contextual data as\n[publisher provided signals](//support.google.com/admanager/answer/12451124)\n(PPS) in ad requests. With PPS, you can use your user data to improve\nprogrammatic monetization by communicating your audience characteristics to\nbidders in all\n[transaction types](//support.google.com/admanager/answer/2805834), using\nstandard taxonomies, without the need to share user identifiers. Your audience\ncharacteristics can include behavioral and interest-based data (\n[IAB Audience Taxonomy 1.1](//iabtechlab.com/standards/audience-taxonomy/)), and\ncontextual data (\n[IAB Content Taxonomy 2.2](https://iabtechlab.com/standards/content-taxonomy/)).\nYou can also send publisher provided structured signals, which are defined by\nGoogle, and allow for additional signals to be sent.\n\nConstruct the user signals JSON\n-------------------------------\n\nAt the top level, create a JSON object with a single key-value pair. The key\nshould be `PublisherProvidedTaxonomySignals`, and its value should be an array\nof objects. Each object in the array should have 2 key-value pairs:\n\n- The `taxonomy` key, which accepts the following values that are mapped to\n following IAB public specifications:\n\n - `IAB_AUDIENCE_1_1` for Audience Taxonomy 1.1\n - `IAB_CONTENT_2_2` for Content Taxonomy 2.2\n- The `values` key with a corresponding array of string taxonomy values.\n\n### Construct the structured signals array\n\nFor structured signals, add the `PublisherProvidedStructuredSignals` key with a\nvalue of an array of objects. Construct the object based on the following list\nof signal key-values: \n\n#### Toggle view of structured signals table\n\n| Signal | \"type\" Value | Possible `\"single_value\"` Values | Possible `\"values\"` Values |\n|--------------------|--------------------|-------------------------------------------------------------------------------------------|--------------------------------------------------------------------|\n| Audio Feed Type | `\"audio_feed\"` | - `\"af_1\"`: Music - `\"af_2\"`: Broadcast - `\"af_3\"`: Podcast | n/a |\n| Content Rating | `\"content_rating\"` | - `\"cr_1\"`: G - `\"cr_2\"`: PG - `\"cr_3\"`: T - `\"cr_4\"`: MA | n/a |\n| Content Delivery | `\"delivery\"` | n/a | - `\"cd_1\"`: Streaming - `\"cd_2\"`: Progressive - `\"cd_3\"`: Download |\n| Production Quality | `\"prodq\"` | - `\"pq_1\"`: Professionally Produced - `\"pq_2\"`: Prosumer - `\"pq_3\"`: User Generated (UGC) | n/a |\n\nSee the following example that uses the `IAB_AUDIENCE_1_1` and `IAB_CONTENT_2_2`\nfor taxonomy signals and includes structured signals. \n\n const userSignals = {\n \"PublisherProvidedTaxonomySignals\": [{\n \"taxonomy\": \"IAB_AUDIENCE_1_1\",\n \"values\": [\"6\", \"284\"]\n // '6' = 'Demographic | Age Range | 30-34'\n // '284' = 'Interest | Business and Finance | Mergers and Acquisitions'\n },\n {\n \"taxonomy\": \"IAB_CONTENT_2_2\",\n \"values\": [\"49\", \"138\"]\n // '49' = 'Books and Literature | Poetry'\n // '138' = 'Education | College Education | College Planning'\n }],\n \"PublisherProvidedStructuredSignals\": [{\n \"type\": \"audio_feed\",\n \"single_value\": \"af_1\",\n },\n {\n \"type\": \"delivery\",\n \"values\": [\"cd_1\", \"cd_3\"],\n },\n ],\n };\n\nConfigure your stream request\n-----------------------------\n\nFollow these steps to send PPS with your\n[`StreamRequest`](/interactive-media-ads/docs/sdks/roku/dai/apis#ima.StreamRequest):\n\n- Create a JSON object with the user's interest, behavior, or contextual data.\n- Create a Base64-encoded ASCII string from the JSON object above.\n- Add your encoded string using [`StreamRequest.adTagParameters`](/interactive-media-ads/docs/sdks/roku/dai/apis#ima.StreamRequest.adTagParameters).\n\n userSignalsJson = {\n \"PublisherProvidedTaxonomySignals\": [{\n \"taxonomy\": \"IAB_AUDIENCE_1_1\",\n \"values\": [\"1\", \"284\"]\n }]\n }\n\n userSignalsString = FormatJson(userSignalsJson)\n byteArray = CreateObject(\"roByteArray\")\n byteArray.FromAsciiString(userSignalsString)\n encodedSignals = byteArray.ToBase64String().EncodeUri()\n\n ' This shows adding a single parameter. More can be added with:\n ' streamRequest.adTagParameters = \"ppsj=\" + encodedSignals + \"&...\"\n streamRequest.adTagParameters = \"ppsj=\" + encodedSignals"]]