Lance em nome de várias contas

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"