Делайте ставки от имени нескольких аккаунтов

Участник торгов может приобрести инвентарь для нескольких покупателей за один ответ на ставку. Например, платформа спроса (DSP) может использовать свое приложение для назначения ставок для покупки инвентаря для нескольких маркетологов или агентств, которые являются покупателями. В этом руководстве объясняется, как запрограммировать систему назначения ставок для обработки одного запроса, отправленного от имени нескольких покупателей.

Фон

В некоторых сценариях рекламная сеть или торговое агентство агентства могут выбрать работу с одним или несколькими 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 . Вы заметите, что в этих запросах присутствует несколько идентификаторов выставления счетов, поскольку запросы применимы к нескольким учетным записям.

OpenRTB Протобуф

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
  }
}
,

Участник торгов может приобрести инвентарь для нескольких покупателей за один ответ на ставку. Например, платформа спроса (DSP) может использовать свое приложение для назначения ставок для покупки инвентаря для нескольких маркетологов или агентств, которые являются покупателями. В этом руководстве объясняется, как запрограммировать систему назначения ставок для обработки одного запроса, отправленного от имени нескольких покупателей.

Фон

В некоторых сценариях рекламная сеть или торговое агентство агентства могут выбрать работу с одним или несколькими 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 . Вы заметите, что в этих запросах присутствует несколько идентификаторов выставления счетов, поскольку запросы применимы к нескольким учетным записям.

OpenRTB Протобуф

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
  }
}
,

Участник торгов может приобрести инвентарь для нескольких покупателей за один ответ на ставку. Например, платформа спроса (DSP) может использовать свое приложение для назначения ставок для покупки инвентаря для нескольких маркетологов или агентств, которые являются покупателями. В этом руководстве объясняется, как запрограммировать систему назначения ставок для обработки одного запроса, отправленного от имени нескольких покупателей.

Фон

В некоторых сценариях рекламная сеть или торговое агентство агентства могут выбрать работу с одним или несколькими 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 . Вы заметите, что в этих запросах присутствует несколько идентификаторов выставления счетов, поскольку запросы применимы к нескольким учетным записям.

OpenRTB Протобуф

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
  }
}
,

Участник торгов может приобрести инвентарь для нескольких покупателей за один ответ на ставку. Например, платформа спроса (DSP) может использовать свое приложение для назначения ставок для покупки инвентаря для нескольких маркетологов или агентств, которые являются покупателями. В этом руководстве объясняется, как запрограммировать систему назначения ставок для обработки одного запроса, отправленного от имени нескольких покупателей.

Фон

В некоторых сценариях рекламная сеть или торговое агентство агентства могут выбрать работу с одним или несколькими 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 . Вы заметите, что в этих запросах присутствует несколько идентификаторов выставления счетов, поскольку запросы применимы к нескольким учетным записям.

OpenRTB Протобуф

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
  }
}