Um bidder pode comprar inventário para vários compradores com um único lance. resposta. Por exemplo, uma plataforma de demanda (DSP) pode usar os lances aplicativo para comprar inventário para vários profissionais de marketing ou agências que estejam os compradores. Este guia explica como codificar seu bidder para processar uma única solicitação. enviada em nome de vários compradores.
Contexto
Em alguns cenários, uma rede de publicidade ou agência negociadora pode optar por trabalhar com uma ou mais DSPs. Há duas opções disponíveis para compradores que trabalham por um DSP:
- A DSP compra inventário para profissionais de marketing ou agências que estejam que não são compradores. Nesse caso, a DSP recebe uma solicitação de lance e responde com um lance. O Google cobra a DSP diretamente.
- A DSP compra inventário para profissionais de marketing ou agências que estejam compradores. A DSP recebe uma solicitação de lance, incluindo várias solicitações IDs associados a compradores qualificados, podendo dar lances diferentes para cada comprador em nome do qual pretendem definir lances. Nesse modelo, o Google cobra e não a DSP. O restante deste guia se concentra nesse cenário.
Configuração e pré-segmentação
O Google vai enviar uma solicitação de lance com um ou mais IDs de faturamento associados
com compradores e configurações de pré-segmentação que segmentavam a impressão.
Eles podem ser encontrados no BidRequest.imp.ext.billing_id
.
Ao responder a um BidRequest
que contém IDs de faturamento de
vários compradores, BidResponse.seatbid.bid.ext.billing_id
é
para que o Google saiba qual conta associar ao lance. Qualquer um
A resposta que não define o campo é filtrada. O campo permanece opcional
para qualquer BidRequest
que inclua apenas um ID de faturamento.
Exemplo de pré-segmentação
Um proponente faz um lance em nome de dois compradores, um com o ID de faturamento 123; e e outro com ID de faturamento 124. O bidder configura uma pré-segmentação com ID de faturamento 213 para segmentar o idioma inglês e outra com ID de faturamento 231 para segmentar computadores pessoais. Confira a seguir a descrição que aparecem nas solicitações de lance para diferentes tipos de impressões.
Descrição da impressão | IDs de faturamento na solicitação de lance |
---|---|
Conteúdo em japonês em um computador pessoal. | 123, 124 e 231 |
Conteúdo em inglês em um smartphone. | 123, 124 e 213 |
Conteúdo em inglês em um computador pessoal. | 123, 124, 213 e 231 |
Exemplos de solicitações de lance
Confira abaixo exemplos de BidRequest
. Há vários IDs de faturamento
nessas solicitações, pois elas são aplicáveis a várias contas.
id: "n9YFp0D9qE02Q5A49bo68a" imp { id: "1" banner { w: 320 h: 50 pos: ABOVE_THE_FOLD api: MRAID_1 api: MRAID_2 format { w: 320 h: 50 } } displaymanager: "GoogleMobileAds-iOS" displaymanagerver: "11.2.0" tagid: "2913643481" bidfloor: 0.04 bidfloorcur: "USD" secure: true exp: 3600 clickbrowser: true metric { type: "click_through_rate" value: 0.0003642654628492892 vendor: "EXCHANGE" } metric { type: "viewability" value: 0.98 vendor: "EXCHANGE" } [com.google.doubleclick.imp] { billing_id: 41048190734 billing_id: 87998475627 publisher_settings_list_id: 5889715199959683550 publisher_settings_list_id: 3379823455061055318 allowed_vendor_type: 566 allowed_vendor_type: 113 ampad: AMP_AD_NOT_ALLOWED skadn { sourceapp: "com.google.testapp" skadnetids: "6ZVs3vs4" versions: "2.0" versions: "2.1" fidelities: VIEW_THROUGH_ADS fidelities: STOREKIT_RENDERED_ADS } creative_enforcement_settings { policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES } auction_environment: SERVER_SIDE_AUCTION ae: 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: false language: "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.0 lon: 0.0 country: "USA" region: "TX" metro: "623" city: "Lewisville" type: IP utcoffset: -300 accuracy: 6225 } make: "Apple" model: "iPhone13,2" os: "iOS" osv: "17.4.1" connectiontype: WIFI devicetype: HIGHEND_PHONE lmt: true hwv: "iPhone13,2" w: 390 h: 844 pxratio: 3.0 sua { browsers { brand: "Mozilla" version: "5" version: "0" } browsers { brand: "AppleWebKit" version: "605" version: "1" } platform { brand: "iPhone" version: "17" version: "4" } mobile: true bitness: "64" model: "iPhone" source: USER_AGENT_STRING } [com.google.doubleclick.device] { atts: 2 } } at: FIRST_PRICE tmax: 1000 cur: "USD" bcat: "IAB18-5" bcat: "IAB23-4" bapp: "359917414" bapp: "1446254576" source { schain { complete: true nodes { 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: 1 nodes { 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_APP privacy_treatments { allow_user_data_collection: true } }
{ "id": "pu96xf0D7otnT4Q317588G", "imp": [ { "id": "1", "banner": { "w": 320, "h": 50, "pos": 1, "expdir": [ 1, 2, 3, 4 ], "api": [ 3, 5 ], "format": [ { "w": 320, "h": 50 }, { "w": 320, "h": 100 } ] }, "displaymanager": "GoogleMobileAds-iOS", "displaymanagerver": "10.5.0", "tagid": "1077633402", "bidfloor": 0.01, "bidfloorcur": "USD", "secure": 1, "exp": 3600, "clickbrowser": 1, "metric": [ { "type": "viewability", "value": 0.74, "vendor": "EXCHANGE" }, { "type": "session_depth", "value": 1, "vendor": "EXCHANGE" } ], "ext": { "billing_id": [ 77621228638, 75301362736 ], "dfp_ad_unit_code": "/9041646/google/test", "ampad": 2, "buyer_generated_request_data": [ { "source_app": { "id": "com.google.ads.mediation.test.TestAdapter" }, "data": "Test Data" } ], "excluded_creatives": [ { "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID" }, { "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID" } ], "creative_enforcement_settings": { "policy_enforcement": 1, "publisher_blocks_enforcement": 2 }, "billable_event_rate_adjustment": 1, "auction_environment": 0, "ad_unit_mapping": [ { "keyvals": [ { "key": "OMITTED", "value": "OMITTED" }, { "key": "OMITTED", "value": "OMITTED" } ], "format": 1 } ], "ae": 0 } } ], "app": { "name": "Test App", "bundle": "com.google.testapp", "publisher": { "id": "pub-3858090347872942", "ext": { "country": "JP" } }, "content": { "url": "https://www.google.com", "livestream": 0, "language": "ja" }, "storeurl": "https://www.google.com", "ext": { "installed_sdk": [ { "id": "com.google.ads.mediation.test.TestAdapter", "sdk_version": { "major": 5, "minor": 2, "micro": 6 }, "adapter_version": { "major": 5, "minor": 2, "micro": 600 } } ], "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.0, "lon": 0.0, "country": "JPN", "region": "JP-11", "city": "Wako", "type": 2, "utcoffset": 540, "accuracy": 1656 }, "make": "Apple", "model": "iPhone13,2", "os": "iOS", "osv": "17.4.1", "connectiontype": 2, "devicetype": 4, "ifa": "644t6oo9K5630T4P55UhH3U6QwBvyR8434j1", "lmt": 0, "hwv": "iPhone13,2", "w": 390, "h": 844, "pxratio": 3, "sua": { "browsers": [ { "brand": "Mozilla", "version": [ "5", "0" ] }, { "brand": "AppleWebKit", "version": [ "605", "1" ] } ], "platform": { "brand": "iPhone", "version": [ "17", "4" ] }, "mobile": 1, "bitness": "64", "model": "iPhone", "source": 3 }, "ext": { "atts": 3 } }, "user": { "id": "wr62bT596f06jhZ1V77n3I1b63h", "data": [ { "id": "pub-9226299926337762", "name": "Publisher Passed", "segment": [ { "name": "TEST_NAME", "value": "TEST_VALUE" }, { "name": "TEST_NAME", "value": "TEST_VALUE" } ] } ], }, "at": 1, "tmax": 1000, "cur": [ "USD" ], "source": { "schain": { "complete": 1, "nodes": [ { "asi": "testssp.com", "sid": "pub-1111111111111111", "hp": 1 } ], "ver": "1.0" }, "ext": { "omidpn": "Google", "omidpv": "afma-sdk-i-v10.5.0", "schain": { "complete": 1, "nodes": [ { "asi": "testssp.com", "sid": "pub-1111111111111111", "hp": 1 } ], "ver": "1.0" } } }, "ext": { "google_query_id": "ANy-z3D398-yn1l2uC2D50Bl9f19AQ3nSQAI82307LmCWc646P925n10EqSpUdQ1wt1IxQj7", "fcap_scope": 1 } }
id: "\330\334\201\343\345\\jN\3313`V^\214\207\003\345\022GP\023\323\251" user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148" url: "https://www.google.com" detected_language: "it" adslot { id: 1 width: 414 width: 320 height: 50 height: 50 excluded_attribute: 15 excluded_attribute: 22 allowed_vendor_type: 489 allowed_vendor_type: 550 excluded_sensitive_category: 36 excluded_sensitive_category: 4 matching_ad_data { billing_id: 97713609660 billing_id: 60373602214 minimum_cpm_micros: 40000 } matching_ad_data { billing_id: 84882034591 billing_id: 74365219129 minimum_cpm_micros: 520000 } slot_visibility: ABOVE_THE_FOLD ad_block_key: 4252652432 publisher_settings_list_id: 8511095895255592384 excluded_creatives { buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID" } excluded_creatives { buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID" } viewability: 89 click_through_rate: 0.0027791813 allowed_ad_types: ALLOWED_AD_TYPE_BANNER is_amp_page: DIALECT_HTML amp_ad_requirement_type: AMP_AD_NOT_ALLOWED consented_providers_settings { consented_providers: 196 consented_providers: 153 additional_consent_string: "OMITTED" } regs_gdpr: true api: OMID_1 api: MRAID_1 omidpn: "Google" omidpv: "afma-sdk-i-v9.0.0" creative_enforcement_settings { policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES } auction_environment: SERVER_SIDE_AUCTION impression_expiration_seconds: 3600 supported_auction_environment: SERVER_SIDE_AUCTION display_manager: "GoogleMobileAds-iOS" display_manager_version: "9.0.0" } is_test: false timezone_offset: 120 mobile { app_id: "116395214" is_app: true app_name: "Test App" } postal_code: "10011" geo_criteria_id: 20524 publisher_settings_list_id: 9033154688577085139 publisher_type: PUBLISHER_OWNED_AND_OPERATED partner_id: 8689962800479104672 device { device_type: HIGHEND_PHONE platform: "iphone" brand: "Apple" model: "iPhone9,4" os_version { major: 15 minor: 8 micro: 2 } carrier_id: 0 screen_width: 414 screen_height: 736 screen_pixel_ratio_millis: 3000 screen_orientation: PORTRAIT hardware_version: "iPhone9,4" limit_ad_tracking: true app_tracking_authorization_status: DENIED connection_type: WIFI } publisher_country: "IT" publisher_id: "pub-1111111111111111" response_deadline_ms: 1000 google_query_id: "ANy-z17d1Q-rs050w92ve6V2Lm2820pMZ0517u12jT7m02AURu7dw0XbsQ0pK5EAd173Cm1Q" auction_type: FIRST_PRICE geo { lat: 42.85 lon: 13.7 country: "ITA" region: "IT-AP" zip: "63082" utcoffset: 120 accuracy: 19730 } user_agent_data { platform { brand: "iPhone" version: "15" version: "0" } mobile: true model: "iPhone" browsers { brand: "Mozilla" version: "5" version: "0" } browsers { brand: "AppleWebKit" version: "605" version: "1" } bitness: "64" source: USER_AGENT_STRING } supply_chain { complete: true nodes { advertising_system_identifier: "testdomain.com" seller_identifier: "pub-1111111111111111" handles_payment: true } version: "1.0" } frequency_capping_scope: FREQUENCY_CAPPING_SCOPE_NONE privacy_treatments { ip: IP_REDACTED user_agent: USER_AGENT_COARSENED non_personalized_ads_reason: PUBLISHER_DECLARED_NPA allow_user_data_collection: false device_storage_restriction_reason: INSUFFICIENT_USER_CONSENT } inventory_partner_domain: "OMITTED"