Реклама, отображаемая с помощью SDK

В рекламных объявлениях, созданных с помощью Buyer SDK, используются креативы, генерируемые вашим собственным SDK.

Мобильные приложения от издателей, интегрировавших ваш адаптер для размещения ставок в свои приложения, могут принимать ставки с использованием формата рекламы, отображаемого SDK покупателя. Способ отображения рекламы зависит от вашей реализации SDK и SDKRenderedAd , который вы отправляете в ответе на запрос ставки.

Вы можете разместить ставку, включающую либо объявление, отображаемое с помощью SDK покупателя, либо любой другой формат объявления, поддерживаемый SDK Google Mobile Ads , но ставки, содержащие оба формата, будут отфильтрованы.

Требования

Реклама с использованием SDK покупателя доступна только одобренным покупателям. Этот формат требует дополнительных усилий с вашей стороны и со стороны издателя. Свяжитесь со своим техническим менеджером по работе с клиентами, чтобы настроить вашу учетную запись для рекламы с использованием SDK покупателя. Затем вы можете внедрить адаптер для назначения ставок , который позволит вашему SDK взаимодействовать с SDK Google Mobile Ads. Издатель должен интегрировать ваш SDK и адаптер в свои мобильные приложения.

Мы рекомендуем отправлять креативы на проверку перед включением их в заявку на участие в тендере. Если вы не знаете тип креатива на момент подачи заявки, свяжитесь со своим техническим менеджером по работе с клиентами.

Если запрос на размещение рекламы поддерживает этот формат объявления, вы можете указать объявление, которое будет отображаться с помощью вашего SDK, задав поле sdk_rendered_ad в ответе на запрос .

Запрос на участие в тендере

В заявках на размещение мобильного приложения необходимо указывать подробную информацию об SDK и адаптерах, которые можно использовать для отображения в приложении издателя, в следующих полях:

Идентификатор SDK

Вы можете использовать запрос на участие в тендере, чтобы найти идентификатор SDK, который необходимо указать в ответе на запрос, в поле BidRequest.app.ext.installed_sdk.id .

Более подробную информацию об этом можно найти в справочной документации InstalledSdk .

Сопоставление рекламных блоков

С помощью запроса на назначение ставки вы можете найти сопоставления рекламных блоков, соответствующие слоту назначения ставки, с помощью поля BidRequest.imp.ext.ad_unit_mapping .

Более подробную информацию об этом можно найти в справочной документации AdUnitMapping .

Защищенные сигналы

Издатели могут обмениваться защищенными сигналами с участниками торгов. Эти сигналы можно найти в BidRequest.imp.ext.buyer_generated_request_data.data .

Более подробную информацию о том, как представляются защищенные сигналы, можно найти в справочной документации BuyerGeneratedRequestData .

Запросы на тестирование

Вы можете использовать поле BidRequest.test , чтобы проверить, является ли запрос на участие в тендере тестовым.

Более подробную информацию об этом поле можно найти в справочной документации BidRequest .

Пример запроса на коммерческое предложение

id: "<bid_request_id>"
imp {
  id: "1"
  banner {
    w: 320
    h: 50
    ...
  }
...
  adx_ext {
   ...
    ad_unit_mapping {
      keyvals {
        key: "key_1"
        value: "value_1"
      }
      keyvals {
        key: "key_2"
        value: "value_2"
      }
      ...
      format: FORMAT_BANNER
    }
  }
}
app {
 ...
  adx_ext {
    installed_sdk {
      id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      sdk_version {
        major: 1
        minor: 2
        micro: 30
      }
      adapter_version {
        major: 1
        minor: 2
        micro: 3000
      }
    }
    installed_sdk {
    ...
    }
    ...
  }
}
device {
  ...
}
user {
  ...
  }
  adx_ext {
    eids {
      source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      uids {
        id: "<partner_signal_string>"
      }
    }
  }
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
  google_query_id: "<query_string>"
  ...
}

Ответ на заявку

В заявке на участие в тендере необходимо заполнить следующие поля:

  • BidResponse.seatbid.bid.adomain
  • BidResponse.seatbid.bid.ext.billing_id
  • BidResponse.seatbid.bid.crid
  • BidResponse.seatbid.bid.w
  • BidResponse.seatbid.bid.h

Кроме того, в поле BidResponse.seatbid.bid.ext.sdk_rendered_ad необходимо указать следующее:

Идентификатор SDK

Используйте поле id , чтобы указать идентификатор, по которому SDK будет отображать рекламу.

Идентификатор можно найти в BidRequest.app.ext.installed_sdk .

Объявленное объявление

Используйте BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad чтобы указать креатив, соответствующий требованиям, указанным в BidRequest.imp.ext.creative_enforcement_settings , и отражающий данные рендеринга объявления. Следует заполнить только один из параметров: html_snippet , video_url , video_vast_xml или native_response .

Если вы не заполните declared_ad , мы не сможем просмотреть рекламный материал, и все ставки с этим материалом будут исключены из аукциона.

Более подробную информацию о заявленном объявлении можно найти в справочной документации по DeclaredAd .

Визуализация данных

Используйте поле BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data , чтобы предоставить данные для SDK покупателя, которые будут использоваться для отображения вашей рекламы.

Для размещения рекламы, созданной с помощью SDK покупателя, необходимо указать креатив в поле declared_ad . Объявленный креатив должен точно соответствовать данным rendering_data .

Вот пример объекта SdkRenderedAd :

{
  "id": "1234567",
  "rendering_data": "\xd58...,\xd4\x89\xd\xf9",
  "declared_ad": {
    "html_snippet": "<iframe src=\"https://example.com/ads?id=123&
      curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>",
  }
}

Мы рекомендуем использовать API для торгов в реальном времени, чтобы отправлять рекламные материалы на проверку перед включением их в ответ на запрос о ставке.

Более подробную информацию о полях SdkRenderedAd см. в руководстве OpenRTB .

Пример ответа на заявку

Ниже приведены примеры ответов на ставки для каждого формата объявления:

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 99
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 320
    h: 50
    burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          html_snippet: "<!doctype html> <html> ... </html>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
      billing_id: 141763360450
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Интерстициальный

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Видео, за которое награда

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Родной

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 1200
    h: 627
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          native_response {
            ...
            assets {
              id: 1
              title {
                text: ""
              }
            }
            assets {
              id: 2
              data {
                value: "<some_string>"
              }
            }
            assets {
              id: 3
              data {
                value: "View now"
              }
            }
            assets {
              id: 4
              img {
                url: "<valid_image_url>"
                w: 1200
                h: 627
                type: 3
              }
            }
            assets {
              id: 5
              img {
                url: "<valid_image_url>"
                w: 100
                h: 100
                type: 1
              }
            }
            assets {
              id: 6
              data {
                value: ""
              }
            }
            assets {
              id: 7
              data {
                value: "<some_string>"
              }
            }
            link {
              url: "<destination_link>"
            }
          }
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Творческий обзор

Рекламные материалы проходят проверку перед публикацией, чтобы убедиться в их соответствии нашим правилам и настройкам издателя.

Вот два способа отправить свои работы на рассмотрение:

API для торгов в реальном времени (рекомендуется)

Для отправки рекламных материалов на проверку вы можете использовать метод buyers.creatives.create API Real-time Bidding.

API требует всего одной отправки для каждого креатива и позволяет отслеживать статус его проверки.

Ответ на заявку

Новые рекламные материалы можно отправлять непосредственно в ответе на заявку .

Для отправки ответа на ставку с креативом из SDK покупателя на проверку необходимо использовать поле declared_ad объекта SdkRenderedAd .

Рекламные материалы, представленные в ответе на заявку, рассматриваются только после получения большого количества заявок. Все заявки, поданные до завершения рассмотрения, исключаются из аукциона. Вы можете проверить статус рекламного материала после начала рассмотрения, используя интерфейс торгов в реальном времени или API торгов в реальном времени .

Более подробную информацию можно найти в руководстве для творческих специалистов .

Другие интеграции Google Mobile Ads SDK

Авторизованные покупатели имеют несколько вариантов прямой интеграции с SDK Google Mobile Ads, включая медиацию , адаптеры для участников торгов и защищенные сигналы . Для получения дополнительной информации об этих точках интеграции или для обсуждения других вариантов интеграции сигналов или обработки данных на устройстве с SDK Google Mobile Ads для повышения релевантности или эффективности измерения рекламы, свяжитесь со своим техническим менеджером по работе с клиентами.