ปรับปรุงแคมเปญโฆษณาด้วย PPS
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
คุณสามารถส่งข้อมูลกลุ่มเป้าหมายและข้อมูลตามบริบทเป็นสัญญาณที่ได้จากผู้เผยแพร่โฆษณา (PPS) ในคําขอโฆษณา PPS ช่วยให้คุณสามารถใช้ข้อมูลผู้ใช้เพื่อปรับปรุงการสร้างรายได้แบบเป็นโปรแกรมได้โดยสื่อสารลักษณะกลุ่มเป้าหมายกับผู้เสนอราคาในธุรกรรมทุกประเภทโดยใช้การจัดหมวดหมู่มาตรฐานโดยไม่ต้องแชร์ตัวระบุผู้ใช้ ลักษณะของกลุ่มเป้าหมายอาจรวมถึงข้อมูลตามพฤติกรรมและความสนใจ (การจัดหมวดหมู่กลุ่มเป้าหมายของ IAB 1.1) และข้อมูลตามบริบท (การจัดหมวดหมู่เนื้อหาของ IAB 2.2)
นอกจากนี้ คุณยังส่ง Structured Signal ที่ได้จากผู้เผยแพร่โฆษณาซึ่ง Google เป็นผู้กําหนด และอนุญาตให้ส่งสัญญาณเพิ่มเติมได้ด้วย
สร้าง JSON สัญญาณของผู้ใช้
ที่ระดับบนสุด ให้สร้างออบเจ็กต์ JSON ที่มีคู่คีย์-ค่ารายการเดียว คีย์ควรเป็น PublisherProvidedTaxonomySignals
และค่าควรเป็นอาร์เรย์ของออบเจ็กต์ ออบเจ็กต์แต่ละรายการในอาร์เรย์ควรมีคู่คีย์-ค่า 2 คู่ ดังนี้
สร้างอาร์เรย์ Structured Signal
สําหรับสัญญาณที่มีโครงสร้าง ให้เพิ่มคีย์ 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_1
และ IAB_CONTENT_2_2
สำหรับสัญญาณการจัดหมวดหมู่และมี Structured Data
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"],
},
],
};
ทําตามขั้นตอนต่อไปนี้เพื่อส่ง PPS กับ AdsRequest
- สร้างสตริง JSON ที่มีความสนใจ พฤติกรรม หรือข้อมูลตามบริบทของผู้ใช้
- สร้างสตริง ASCII ที่เข้ารหัส Base64 จากสตริง JSON ด้านบน
- ต่อสตริงที่เข้ารหัสต่อท้าย URL ของแท็กโฆษณาด้วยพารามิเตอร์
&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;
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-08-31 UTC
[null,null,["อัปเดตล่าสุด 2025-08-31 UTC"],[[["\u003cp\u003ePublisher provided signals (PPS) let you share audience and contextual data with bidders to enhance programmatic ad monetization using standardized taxonomies, without exposing user identifiers.\u003c/p\u003e\n"],["\u003cp\u003ePPS utilizes IAB taxonomies like Audience Taxonomy 1.1 and Content Taxonomy 2.2 to categorize user characteristics, such as interests and behaviors, and content details, for improved ad targeting.\u003c/p\u003e\n"],["\u003cp\u003eYou can structure this data as a JSON object, containing taxonomy signals and optional structured signals with predefined keys like audio feed type or content rating.\u003c/p\u003e\n"],["\u003cp\u003eTo send PPS, create a JSON string with user 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"]]],[],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 ad request\n-------------------------\n\nFollow these steps to send PPS with your\n[`AdsRequest`](/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRequest):\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 JSONObject userSignalsObject = new JSONObject();\n JSONArray userSignalsArray = new JSONArray();\n JSONObject audienceTaxonomyObject = new JSONObject();\n JSONArray valuesArray = new JSONArray();\n valuesArray.put(\"1\");\n valuesArray.put(\"284\");\n try {\n audienceTaxonomyObject.put(\"taxonomy\", \"IAB_AUDIENCE_1_1\");\n audienceTaxonomyObject.put(\"values\", valuesArray);\n } catch (JSONException e) {\n e.printStackTrace();\n }\n\n userSignalsArray.put(audienceTaxonomyObject);\n\n try {\n userSignalsObject.put(\"PublisherProvidedTaxonomySignals\", userSignalsArray);\n } catch (JSONException e) {\n e.printStackTrace();\n }\n\n String userSignals = userSignalsObject.toString();\n\n byte[] userSignalsByte=new byte[0];\n try {\n userSignalsByte = userSignals.getBytes(StandardCharsets.UTF_8);\n String encodedBas64Signals = android.util.Base64.encodeToString(\n userSignalsByte,\n android.util.Base64.URL_SAFE);\n encodedSignals = URLEncoder.encode(encodedBas64Signals, \"UTF-8\");\n } catch (java.io.UnsupportedEncodingException error) {\n Log.w(\"Sample app\", error);\n }\n\n String finalAdTag = sampleAdTag + \"&ppsj=\" + encodedSignals;"]]