קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
מציע מחיר יכול לרכוש מלאי שטחי פרסום עבור כמה קונים בתשובה אחת לבידינג. לדוגמה, פלטפורמה למפרסמים (DSP) עשויה להשתמש באפליקציית הבידינג שלה כדי לרכוש מלאי שטחי פרסום עבור כמה משווקים או סוכנויות שהן קונים. במדריך הזה מוסבר איך לכתוב את הקוד של הבידינג כך שיאפשר עיבוד של בקשה אחת שנשלחת בשם כמה קונים.
רקע
בתרחישים מסוימים, רשת פרסום או סוכנות ניהול חשבונות פרסום עשויות לבחור לעבוד עם פלטפורמת ניהול מודעות אחת או יותר. יש שתי אפשרויות לקונים שפועלים דרך פלטפורמת ניהול רשתות (DSP):
מערכת ה-DSP רוכשת מלאי שטחי פרסום למשווקים או לסוכנות שלא קונים. במקרה כזה, ה-DSP מקבל בקשה אחת להצעת מחיר ומגיב עם הצעת מחיר אחת. Google מחייבת את פלטפורמת ה-DSP ישירות.
מערכת ה-DSP רוכשת מלאי שטחי פרסום עבור משווקים או סוכנויות שמבצעות רכישות. מערכת ה-DSP מקבלת בקשת הצעת מחיר אחת שכוללת כמה מזהי חיוב שמשויכים לקונים שעומדים בדרישות, והיא יכולה להגיש הצעות מחיר נפרדות לכל קונה שהיא מתכוונת להגיש הצעות מחיר בשבילו. במודל הזה, Google מחייבת את הקונה ולא את פלטפורמת ה-DSP. שאר המדריך מתמקד בתרחיש הזה.
הגדרה וטירגוט מראש
Google תשלח בקשת הצעת מחיר שמכילה מזהה חיוב אחד או יותר שמשויך לקונים ולהגדרות טירגוט מראש שרלוונטיות לחשיפת המודעה.
אפשר למצוא אותם בשדה BidRequest.imp.ext.billing_id.
כשמשיבים להודעת BidRequest שמכילה מספר מזהי חיוב של קונים, צריך לציין את השדה BidResponse.seatbid.bid.ext.billing_id כדי ש-Google תדע איזה חשבון לשייך לבידינג. כל תגובה שלא מגדירה את השדה מסוננת. השדה יישאר אופציונלי לכל BidRequest שכולל רק מזהה חיוב אחד.
דוגמה למיקוד מראש
מציע מחיר שולח הצעות מחיר בשם שני קונים, אחד עם מזהה חיוב 123 והשני עם מזהה חיוב 124. המגיש של הצעות המחיר מגדיר הגדרה אחת של טירגוט מראש עם מזהה החיוב 213 כדי לטרגט את השפה האנגלית, והגדרה אחרת עם מזהה החיוב 231 כדי לטרגט מחשבים אישיים. בהמשך מוסבר על מזהי החיוב שמופיעים בבקשות להצעות מחיר עבור סוגים שונים של חשיפות.
תיאור החשיפה
מספרי לקוח לחיוב בבקשת הצעת מחיר
תוכן בשפה היפנית במחשב אישי.
123, 124, 231
תוכן באנגלית בטלפון נייד.
123, 124, 213
תוכן בשפה האנגלית במחשב אישי.
123, 124, 213, 231
דוגמה לבקשות להצעת מחיר
בהמשך מפורטות דוגמאות ל-BidRequest. שימו לב שיש כמה מזהי חיוב בבקשות האלה, כי הבקשות רלוונטיות לכמה חשבונות.
id:"n9YFp0D9qE02Q5A49bo68a"imp{id:"1"banner{w:320h:50pos:ABOVE_THE_FOLDapi:MRAID_1api:MRAID_2format{w:320h:50}}displaymanager:"GoogleMobileAds-iOS"displaymanagerver:"11.2.0"tagid:"2913643481"bidfloor:0.04bidfloorcur:"USD"secure:trueexp:3600clickbrowser:truemetric{type:"click_through_rate"value:0.0003642654628492892vendor:"EXCHANGE"}metric{type:"viewability"value:0.98vendor:"EXCHANGE"}[com.google.doubleclick.imp]{billing_id:41048190734billing_id:87998475627publisher_settings_list_id:5889715199959683550publisher_settings_list_id:3379823455061055318allowed_vendor_type:566allowed_vendor_type:113ampad:AMP_AD_NOT_ALLOWEDskadn{sourceapp:"com.google.testapp"skadnetids:"6ZVs3vs4"versions:"2.0"versions:"2.1"fidelities:VIEW_THROUGH_ADSfidelities:STOREKIT_RENDERED_ADS}creative_enforcement_settings{policy_enforcement:POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICYpublisher_blocks_enforcement:PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES}auction_environment:SERVER_SIDE_AUCTIONae:SERVER_SIDE_AUCTION}}app{name:"Test App"bundle:"com.google.testapp"publisher{id:"pub-6227762759521589"[com.google.doubleclick.publisher]{country:"US"}}content{url:"https://www.google.com"livestream:falselanguage:"en"}storeurl:"https://www.google.com"[com.google.doubleclick.app]{inventorypartnerdomain:"OMITTED"}}device{ua:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"ip:"192.168.1.0"geo{lat:0.0lon:0.0country:"USA"region:"TX"metro:"623"city:"Lewisville"type:IPutcoffset:-300accuracy:6225}make:"Apple"model:"iPhone13,2"os:"iOS"osv:"17.4.1"connectiontype:WIFIdevicetype:HIGHEND_PHONElmt:truehwv:"iPhone13,2"w:390h:844pxratio:3.0sua{browsers{brand:"Mozilla"version:"5"version:"0"}browsers{brand:"AppleWebKit"version:"605"version:"1"}platform{brand:"iPhone"version:"17"version:"4"}mobile:truebitness:"64"model:"iPhone"source:USER_AGENT_STRING}[com.google.doubleclick.device]{atts:2}}at:FIRST_PRICEtmax:1000cur:"USD"bcat:"IAB18-5"bcat:"IAB23-4"bapp:"359917414"bapp:"1446254576"source{schain{complete:truenodes{asi:"testssp.com"sid:"pub-1111111111111111"hp:true}ver:"1.0"}[com.google.doubleclick.source]{omidpn:"Google"omidpv:"afma-sdk-i-v11.2.0"schain{complete:1nodes{asi:"testssp.com"sid:"pub-1111111111111111"hp:1}ver:"1.0"}}}[com.google.doubleclick.bid_request]{google_query_id:"ANy-z17251-40u3eXfXPL5j3MDPa7n6Ree92uf7354o71FP67Rk5i3G30Ez7p39Ze1722D8H"fcap_scope:FREQUENCY_CAPPING_SCOPE_APPprivacy_treatments{allow_user_data_collection:true}}
[null,null,["עדכון אחרון: 2025-08-16 (שעון UTC)."],[[["\u003cp\u003eBidders can purchase ad inventory for multiple buyers using a single bid response, streamlining the buying process for demand-side platforms (DSPs).\u003c/p\u003e\n"],["\u003cp\u003eWhen bidding for multiple buyers, the bid response must specify the billing ID (\u003ccode\u003eBidResponse.seatbid.bid.ext.billing_id\u003c/code\u003e) to ensure proper billing allocation.\u003c/p\u003e\n"],["\u003cp\u003eBid requests will include billing IDs for all eligible buyers and any applicable pretargeting configurations, allowing bidders to tailor their bids accordingly.\u003c/p\u003e\n"],["\u003cp\u003eGoogle provides detailed examples of bid requests in OpenRTB Protobuf, OpenRTB JSON, and Google's own format, demonstrating how multiple billing IDs are incorporated.\u003c/p\u003e\n"]]],["A demand-side platform (DSP) can bid on behalf of multiple buyers in a single bid request. These requests include multiple billing IDs, and pretargeting configurations. When responding, the `BidResponse` must specify the `billing_id` to indicate which buyer the bid is for, or it will be filtered. Pretargeting determines which bid requests a bidder receives. Bid requests contain multiple billing IDs, allowing the bidder to bid for various accounts.\n"],null,["# Bid on Behalf of Multiple Accounts\n\nA bidder can purchase inventory for multiple buyers in a single bid\nresponse. For example, a demand-side platform (DSP) might use its bidding\napplication to purchase inventory for several marketers or agencies who are\nbuyers. This guide explains how to code your bidder to process a single request\nsent on behalf of multiple buyers.\n\nBackground\n----------\n\nIn some scenarios, an ad network or agency trading desk may choose to work\nwith one or more DSPs. There are two options available for buyers who work\nthrough a DSP:\n\n- **The DSP purchases inventory for marketers or agencies that are\n *not* buyers**. In this case, the DSP receives one bid request and responds with one bid. Google bills the DSP directly.\n- **The DSP purchases inventory for marketers or agencies that are\n buyers**. The DSP receives one bid request including multiple billing IDs associated with eligible buyers, and can place distinct bids for each buyer they intend to bid on behalf of. In this model, Google bills the buyer, not the DSP. The rest of this guide focuses on this scenario.\n\nSetup and pretargeting\n----------------------\n\nGoogle will send a bid request containing one or more billing IDs associated\nwith buyers and pretargeting configurations that targeted the impression.\nThese can be found with the `BidRequest.imp.ext.billing_id`\nfield.\n\nWhen responding to a `BidRequest` that contains billing IDs from\nmultiple buyers, `BidResponse.seatbid.bid.ext.billing_id` is\nrequired so that Google knows which account to associate with the bid. Any\nresponse that does not set the field is filtered. The field remains optional\nfor any `BidRequest` that only includes a single billing ID.\n\n### Pretargeting example\n\nA bidder bids on behalf of two buyers, one having a billing ID of 123, and\nthe other with billing ID 124. The bidder configures one pretargeting\nconfiguration with billing ID 213 to target the English language, and another\nwith billing ID 231 to target personal computers. The following describes the\nbilling IDs that appear in bid requests for different kinds of impressions.\n\n| Impression description | Billing IDs in bid request |\n|---------------------------------------------------|----------------------------|\n| Japanese language content on a personal computer. | 123, 124, 231 |\n| English language content on a mobile phone. | 123, 124, 213 |\n| English language content on a personal computer. | 123, 124, 213, 231 |\n\n| **Important:** If these were your only active pretargeting configurations, you wouldn't receive bid requests for impressions that didn't originate from a personal computer and include non-English content.\n\nExample BidRequests\n-------------------\n\nBelow are examples of a `BidRequest`. You'll note that there are multiple billing IDs\nin these requests because the requests are applicable to multiple accounts. \n\n### OpenRTB Protobuf\n\n[sample]() \n\n```carbon\nid: \"n9YFp0D9qE02Q5A49bo68a\"\nimp {\n id: \"1\"\n banner {\n w: 320\n h: 50\n pos: ABOVE_THE_FOLD\n api: MRAID_1\n api: MRAID_2\n format {\n w: 320\n h: 50\n }\n }\n displaymanager: \"GoogleMobileAds-iOS\"\n displaymanagerver: \"11.2.0\"\n tagid: \"2913643481\"\n bidfloor: 0.04\n bidfloorcur: \"USD\"\n secure: true\n exp: 3600\n clickbrowser: true\n metric {\n type: \"click_through_rate\"\n value: 0.0003642654628492892\n vendor: \"EXCHANGE\"\n }\n metric {\n type: \"viewability\"\n value: 0.98\n vendor: \"EXCHANGE\"\n }\n [com.google.doubleclick.imp] {\n billing_id: 41048190734\n billing_id: 87998475627\n publisher_settings_list_id: 5889715199959683550\n publisher_settings_list_id: 3379823455061055318\n allowed_vendor_type: 566\n allowed_vendor_type: 113\n ampad: AMP_AD_NOT_ALLOWED\n skadn {\n sourceapp: \"com.google.testapp\"\n skadnetids: \"6ZVs3vs4\"\n versions: \"2.0\"\n versions: \"2.1\"\n fidelities: VIEW_THROUGH_ADS\n fidelities: STOREKIT_RENDERED_ADS\n }\n creative_enforcement_settings {\n policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY\n publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES\n }\n auction_environment: SERVER_SIDE_AUCTION\n ae: SERVER_SIDE_AUCTION\n }\n}\napp {\n name: \"Test App\"\n bundle: \"com.google.testapp\"\n publisher {\n id: \"pub-6227762759521589\"\n [com.google.doubleclick.publisher] {\n country: \"US\"\n }\n }\n content {\n url: \"https://www.google.com\"\n livestream: false\n language: \"en\"\n }\n storeurl: \"https://www.google.com\"\n [com.google.doubleclick.app] {\n inventorypartnerdomain: \"OMITTED\"\n }\n}\ndevice {\n ua: \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148\"\n ip: \"192.168.1.0\"\n geo {\n lat: 0.0\n lon: 0.0\n country: \"USA\"\n region: \"TX\"\n metro: \"623\"\n city: \"Lewisville\"\n type: IP\n utcoffset: -300\n accuracy: 6225\n }\n make: \"Apple\"\n model: \"iPhone13,2\"\n os: \"iOS\"\n osv: \"17.4.1\"\n connectiontype: WIFI\n devicetype: HIGHEND_PHONE\n lmt: true\n hwv: \"iPhone13,2\"\n w: 390\n h: 844\n pxratio: 3.0\n sua {\n browsers {\n brand: \"Mozilla\"\n version: \"5\"\n version: \"0\"\n }\n browsers {\n brand: \"AppleWebKit\"\n version: \"605\"\n version: \"1\"\n }\n platform {\n brand: \"iPhone\"\n version: \"17\"\n version: \"4\"\n }\n mobile: true\n bitness: \"64\"\n model: \"iPhone\"\n source: USER_AGENT_STRING\n }\n [com.google.doubleclick.device] {\n atts: 2\n }\n}\nat: FIRST_PRICE\ntmax: 1000\ncur: \"USD\"\nbcat: \"IAB18-5\"\nbcat: \"IAB23-4\"\nbapp: \"359917414\"\nbapp: \"1446254576\"\nsource {\n schain {\n complete: true\n nodes {\n asi: \"testssp.com\"\n sid: \"pub-1111111111111111\"\n hp: true\n }\n ver: \"1.0\"\n }\n [com.google.doubleclick.source] {\n omidpn: \"Google\"\n omidpv: \"afma-sdk-i-v11.2.0\"\n schain {\n complete: 1\n nodes {\n asi: \"testssp.com\"\n sid: \"pub-1111111111111111\"\n hp: 1\n }\n ver: \"1.0\"\n }\n }\n}\n[com.google.doubleclick.bid_request] {\n google_query_id: \"ANy-z17251-40u3eXfXPL5j3MDPa7n6Ree92uf7354o71FP67Rk5i3G30Ez7p39Ze1722D8H\"\n fcap_scope: FREQUENCY_CAPPING_SCOPE_APP\n privacy_treatments {\n allow_user_data_collection: true\n }\n}\n```"]]