運用 PPS 改善廣告活動
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
您可以在廣告請求中,以發布商提供的信號 (PPS) 的形式傳送目標對象和比對內容資料。透過 PPS,您可以使用使用者資料,透過標準分類,向所有交易類型的出價方傳達目標對象特徵,藉此改善程式輔助營利,而無須分享使用者 ID。目標對象特徵可包含行為和興趣相關資料 (IAB 目標對象分類 1.1 版),以及比對內容資料 (IAB 內容分類 2.2 版)。您也可以傳送發布商提供的結構化信號,這些信號由 Google 定義,並允許傳送額外信號。
建構使用者信號 JSON
在頂層建立 JSON 物件,其中包含單一鍵/值組合。鍵應為 PublisherProvidedTaxonomySignals
,其值應為物件陣列。陣列中的每個物件都應包含 2 個鍵/值組合:
建構結構化信號陣列
針對結構化信號,請新增 PublisherProvidedStructuredSignals
索引鍵,並將物件陣列設為值。根據下列信號鍵/值清單建構物件:
切換結構化信號表格檢視畫面
信號 |
<code" dir="ltr" translate="no">"type" Value</code"> |
可能的 "single_value" 值 |
可能的 "values" 值 |
音訊動態饋給類型 |
"audio_feed" |
"af_1" :音樂
"af_2" :廣播
"af_3" :Podcast
|
不適用 |
內容分級 |
"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_1
和 IAB_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"],
},
],
};
請按照下列步驟,透過 IMAAdsRequest
傳送 PPS:
- 建立包含使用者興趣、行為或情境資料的 JSON 字串。
- 使用上述 JSON 字串建立 Base64 編碼 ASCII 字串。
- 使用
&ppsj=
參數,將已編碼的字串附加至廣告代碼網址。
let userSignals = """
{
"PublisherProvidedTaxonomySignals": [
{
"taxonomy": "IAB_AUDIENCE_1_1",
"values": [
"1",
"284"
]
}
],
}
"""
let base64Signals = Data(userSignals.utf8).base64EncodedString()
var encodedSignals = base64Signals.replacingOccurrences(of: "+", with: "%2B")
encodedSignals = encodedSignals.replacingOccurrences(of: "/", with: "%2F")
encodedSignals = encodedSignals.replacingOccurrences(of: "=", with: "%3D")
let finalAdTag = sampleAdTag + "&ppsj=" + encodedSignals
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-31 (世界標準時間)。
[null,null,["上次更新時間:2025-08-31 (世界標準時間)。"],[[["\u003cp\u003ePublisher Provided Signals (PPS) let you share audience and contextual data with bidders to enhance programmatic ad revenue, using standardized taxonomies without exposing user identifiers.\u003c/p\u003e\n"],["\u003cp\u003ePPS leverages IAB taxonomies like Audience Taxonomy 1.1 and Content Taxonomy 2.2 to categorize user interests and content, as well as Google-defined structured signals for specific attributes.\u003c/p\u003e\n"],["\u003cp\u003eTo implement PPS, construct a JSON object containing taxonomy and structured signal data, Base64-encode it, and append it to your ad tag URL using the \u003ccode\u003e&ppsj=\u003c/code\u003e parameter.\u003c/p\u003e\n"],["\u003cp\u003ePPS works across all transaction types, allowing you to provide valuable insights to advertisers for improved targeting and monetization.\u003c/p\u003e\n"]]],[],null,["You 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\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\nConstruct 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\nToggle 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 ad request\n\nFollow these steps to send PPS with your\n[`IMAAdsRequest`](/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest):\n\n- Create a JSON string with the user's interest, behavior, or contextual data.\n- Create a Base64-encoded ASCII string from the JSON string above.\n- Append the encoded string to your ad tag URL with the `&ppsj=` parameter.\n\n let userSignals = \"\"\"\n {\n \"PublisherProvidedTaxonomySignals\": [\n {\n \"taxonomy\": \"IAB_AUDIENCE_1_1\",\n \"values\": [\n \"1\",\n \"284\"\n ]\n }\n ],\n }\n \"\"\"\n let base64Signals = Data(userSignals.utf8).base64EncodedString()\n var encodedSignals = base64Signals.replacingOccurrences(of: \"+\", with: \"%2B\")\n encodedSignals = encodedSignals.replacingOccurrences(of: \"/\", with: \"%2F\")\n encodedSignals = encodedSignals.replacingOccurrences(of: \"=\", with: \"%3D\")\n\n\n let finalAdTag = sampleAdTag + \"&ppsj=\" + encodedSignals"]]