Formato dell'annuncio dell'SDK acquirente

Gli annunci con SDK dell'acquirente utilizzano creatività visualizzate dal tuo SDK.

Inventario per app mobile di publisher che integrano le tue offerte adattatore nell'app può accettare offerte con il formato dell'annuncio visualizzato con l'SDK dell'acquirente. La modalità di rendering dipende dai tuoi l'implementazione dell'SDK e il SDKRenderedAd specificato nel all'offerta.

Puoi fare un'offerta che includa un annuncio visualizzato con l'SDK dell'acquirente o qualsiasi altro annuncio formato supportate dall'SDK Google Mobile Ads, ma qualsiasi le offerte contenenti entrambi vengono filtrate.

Requisiti

Gli annunci SDK dell'acquirente sono disponibili per gli acquirenti approvati. Questo formato richiede impegno da parte tua e del publisher. Contatta il tuo Technical Account Manager per configurare l'account per gli annunci SDK dell'acquirente. In seguito, potrai implementare un'offerta adattatore che consente all'SDK di comunicare con l'SDK Google Mobile Ads. Il publisher deve integrare l'SDK e l'adattatore nelle loro app mobile.

Ti consigliamo di inviare creatività per recensione prima di includerle in una risposta all'offerta. Contatta il tuo Technical Account Manager se non si conosce il tipo di creatività al momento dell'offerta.

Se una richiesta di offerta supporta questo formato di annuncio, puoi specificare un annuncio che viene visualizzato con il tuo SDK impostando il campo sdk_rendered_ad nella sezione dell'offerta personalizzata.

Richiesta di offerta

Le richieste di offerta per l'inventario per app mobile includono dettagli sugli SDK e adattatori nell'app del publisher che puoi usare per il rendering nei seguenti campi:

ID SDK

Puoi utilizzare la richiesta di offerta per trovare il valore id che devi fornire nell'offerta risposta per un annuncio visualizzato con l'SDK dell'acquirente.

Vedi i seguenti campi:

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Protocollo Google RTB (deprecato): BidRequest.mobile.installed_sdk

Puoi scoprire di più sul messaggio InstalledSdk nella OpenRTB e Google guide sul protocollo.

Mappatura delle unità pubblicitarie

Puoi utilizzare la richiesta di offerta per leggere le mappature delle unità pubblicitarie corrispondenti all'area dell'offerta.

Vedi i seguenti campi:

  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping
  • Protocollo Google RTB (deprecato): BidRequest.AdSlot.ad_unit_mapping

Puoi scoprire di più sull'oggetto AdUnitMapping nella sezione OpenRTB e Google guide sul protocollo.

Indicatori sicuri

I publisher possono condividere indicatori sicuri con gli offerenti. Puoi leggerle Oggetto BuyerGeneratedRequestData di OpenRTB o dall'oggetto Google deprecato Oggetto SecureSignal del protocollo RTB.

Vedi i seguenti campi:

  • OpenRTB: BidRequest.imp.ext.buyer_generated_request_data.data
  • Protocollo Google RTB (deprecato): BidRequest.AdSlot.SecureSignal.data

Puoi scoprire di più su come sono rappresentati gli indicatori sicuri nel OpenRTB e Google guide sul protocollo.

Richieste di prova

Puoi leggere il campo Richiesta di test per capire se la richiesta di offerta è test.

Vedi i seguenti campi:

  • OpenRTB: BidRequest.test
  • Protocollo Google RTB (deprecato): BidRequest.is_test

Puoi scoprire di più sul campo Test nel OpenRTB e Google guide sul protocollo.

Esempio di richiesta di offerta

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

Risposta all'offerta

Nella risposta all'offerta sono obbligatori i seguenti campi:

  • OpenRTB:
    • BidResponse.seatbid.bid.adomain
    • BidResponse.seatbid.bid.ext.billing_id
    • BidResponse.seatbid.bid.crid
    • BidResponse.seatbid.bid.w
    • BidResponse.seatbid.bid.h
  • Protocollo Google RTB (deprecato):
    • BidResponse.Ad.click_through_url
    • BidResponse.Ad.AdSlot.billing_id
    • BidResponse.Ad.buyer_creative_id
    • BidResponse.Ad.width
    • BidResponse.Ad.height

Inoltre, la risposta all'offerta deve includere un SdkRenderedAd con il campo seguenti:

ID SDK

Utilizza il campo id per fornire l'ID per l'SDK per il rendering dell'annuncio.

Puoi trovare l'ID nella richiesta di offerta con i seguenti campi:

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Protocollo Google RTB (deprecato): BidRequest.mobile.installed_sdk

Puoi scoprire di più sul messaggio InstalledSdk nella OpenRTB e Google guide sul protocollo.

Annuncio dichiarato

Utilizza un campo declared_ad per fornire una creatività che soddisfi le esigenze della richiesta di offerta CreativeEnforcementSettings ed è rappresentativo dei requisiti dell'annuncio di dati di rendering. Solo uno tra html_snippet, video_url, video_vast_xml o È necessario compilare native_response.

Se non compili declared_ad, non possiamo esaminare la creatività e tutte le offerte contenenti la creatività vengono filtrate dall'asta.

Dati di rendering

Utilizza il campo rendering_data per fornire all'SDK dell'acquirente i dati necessari per eseguire il rendering dell'annuncio.

  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
  • Protocollo Google RTB (deprecato): BidResponse.ad.sdk_rendered_ad.rendering_data

Le offerte per posizionare un annuncio SDK dell'acquirente devono specificare una creatività nel declared_ad . L'annuncio dichiarato deve rappresentare con precisione rendering_data.

Ecco un oggetto SdkRenderedAd di esempio:

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

Consigliamo di utilizzare l'API Real-Time Bidding per inviare creatività per recensione prima di includerli in una risposta all'offerta.

Consulta le Google e Guide al protocollo OpenRTB per ulteriori dettagli sui campi SdkRenderedAd.

Esempio di risposta all'offerta

Di seguito sono riportati esempi di risposte alle offerte per ciascun formato dell'annuncio:

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"

Interstitial

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"

Video con premio

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"

Nativo

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"

Verifica delle creatività

Le creatività vengono esaminate prima di essere pubblicate per verificare che soddisfino le nostre norme e il publisher impostazioni.

Ecco due modi per inviare le creatività per la revisione:

API Real-Time Bidding (consigliata)

Puoi utilizzare lo buyers.creatives.create dell'API Real-time Bidding per inviare le creatività per la revisione.

L'API richiede un solo invio per creatività e consente di verificare stato di revisione della creatività.

Risposta all'offerta

Puoi inviare nuove creatività direttamente nella risposta all'offerta.

Devi utilizzare il campo declared_ad dell'oggetto SdkRenderedAd per inviare una risposta all'offerta con una creatività SDK dell'acquirente per la revisione.

Le creatività inviate nella risposta all'offerta vengono esaminate solo dopo molte offerte. Tutte le offerte fatte prima del completamento della revisione vengono filtrate dall'asta. Puoi utilizzare l'interfaccia delle offerte in tempo reale. oppure delle offerte in tempo reale dell'API per controllare lo stato di una creatività dopo l'inizio della revisione.

Consulta la guida alle creatività per ulteriori dettagli.