Prebid Mobile SDK in Apps
Einführung
Das Prebid Mobile SDK dient dazu verschiedene HeaderBidding Anbieter in eine App zu integrieren, die dann bei Seitenaufruf initial auf die dort verfügbaren Werbeplatzierungen bieten. Das Gewinner Gebot wird dann an vie Google Mobile Ads SDK (GMA SDK) an den Adserver weitergegeben, der das gebot mit weiteren dort vorliegenden Buchungen vergleicht und die passendste Buchung ausliefert.
Hinweis: Die Einbauanleitung benutzt als Codebeispiele Schnipsel für Android und geht davon aus, dass das Google Mobile Ads SDK bereits in der App integriert ist. Grundsätzliche Dokumentation von Prebid Mobile befindet sich hier: iOS: https://docs.prebid.org/prebid-mobile/pbm-api/ios/code-integration-ios.html Android: https://docs.prebid.org/prebid-mobile/pbm-api/android/code-integration-android.html
Schritt 1 - Prebid Mobile SDK einbinden
iOS: https://github.com/prebid/prebid-mobile-ios Android: https://github.com/prebid/prebid-mobile-android
Schritt 2 - initiale globale Konfiguration
Zu Beginn muss den Endpoint und die Account ID im SDK gesetzt werden und in eine initialisierungs Methode gepackt werden
- Prebid Server Account Id: <<<PREBID_SERVER_ACCOUNT_ID>>>
- Prebid Server Url: https://client-pbs.relevant-digital.com/openrtb2/auction
Beispiel
PrebidMobile.setPrebidServerAccountId("<<<PREBID_SERVER_ACCOUNT_ID>>>")
PrebidMobile.setCustomStatusEndpoint("https://client-pbs.relevant-digital.com/s
tatus")
PrebidMobile.initializeSdk(
applicationContext,
"https://client-pbs.relevant-digital.com/openrtb2/auction") { status ->
if (status == InitializationStatus.SUCCEEDED) {
Log.d(TAG, "SDK initialized successfully!")
} else {
Log.e(TAG, "SDK initialization error: $status\\
${status.description}")
}
}
)
Schritt 3 - BannerAdUnits anlegen pro Platzierung
Für jede Werbeplatzierung (iqadtile) muss eine BannerAdUnit angelegt und konfiguriert werden:
- Config Id, diese ist für jedes iqadtile anders und wird in einer Tabelle von der iqdigital zur Verfügung gestellt
- Die Größen, die für das iqadtile definiert worden sind, müssen der BannerAdUnit ebenfalls mitgeteilt werden. (Wichtig: im Normalfall müssen mehr als eine Size übergeben werden, sie unterscheiden sich oft von iqadtile zu iqadtile)
Schritt 4 - Globale Konfigurationen für BannerAdUnits
Diese gelten für alle BannerAdUnits gleichermaßen
OMID
Mit OMID wird den Headerbidding Partnern mitgeteilt, welches OpenMeasurement SDK benutzt wird. Das GMA SDK hat das OpenMeasurementSDK verbaut, weswegen hier die IDs für Google angegeben werden müssen:
iOS:
- OmidPartnerVersion: afma-sdk-i-v12.11.0
- OmidPartnerName: Google
Android:
- OmidPartnerVersion: 253830000.253830000
- OmidPartnerName: Google
Beispiel:
TargetingParams.setOmidPartnerVersion("253830000.253830000");
TargetingParams.setOmidPartnerName("Google");
Banner API
Den Headerbidding Partnern muss mitgeteilt werden, welche APIs verfügbar sind. Im Falle des GMA SDKs sind folgende Werte gültig:
MRAID 1 bis 3, OMID 1
Beispiel:
val parameters = BannerParameters() parameters.api = listOf(Signals.Api.MRAID_3, Signals.Api.OMID_1, Signals.Api.MRAID_2, Signals.Api.MRAID_1) adUnit?.bannerParameters = parameters
Display Manager
Den Headerbidding Partnern sollte mitgeteilt werden, welcher DisplayManager und welche Version benutzt wird.
Beispiel:
TargetingParams.setGlobalOrtbConfig(
"""
{
"displaymanager": "Google",
"displaymanagerver": "${MobileAds.getVersion()}",
"ext": {
"myext": {
"test": 1
}
}
}
""".trimIndent()
)
Schritt 5 - iqadtile/Seiten -spezifische Konfigurationen für BannerAdUnits
Diese unterscheiden sich je nach iqadtile oder Seite.
GPID
Die GPID ist dazu da, bestimmten Headerbidding Partnern mitzuteilen, für welche Platzierung sie bieten und deshalb sehr wichtig. Ein Fehlen dieser Information führt zu schlechteren Geboten!
GPID entspricht der AdUnit, welche für das iqadtile benutzt wird, z.B. /183/FAZ_app_android_phone/homepage pbadslot ist eine Kombination aus AdUnit und iqadtile, Beispiel /183/FAZ_app_android_phone/homepage#iqadtile3 relevant_slotInstance ist die Nummer des iqadtiles, Beispiel 3 für iqadtile3
Beispiel
adUnit?.impOrtbConfig = """
{
"ext": {
"gpid":"/183/FAZ_app_android_phone/homepage"
"data": {
"pbadslot":"/183/FAZ_app_android_phone/homepage#iqadtile3"
"relevant_slotInstance": "3" // optional extra to RY analytics
}
}
}
""".trimIndent()
Anhang: Funktionsweise Prebid Mobile SDK und GMA SDK
- Das Prebid Mobile SDK sendet ein Request an Prebid Server
- Prebid Server liefert, falls vorhanden, ein Gebot zurück
- Das Adrequest an den Google Ad Manager wird um die Prebid Parameter ergänzt
- Der Google Ad Manager prüft das Request und liefert Werbung aus
- Die App zeigt die Werbung an
Wichtiger Hinweis: Ein Adrequest mit dem GMA SDK erfolgt immer, auch wenn das Prebid Mobile SDK keine Gebote hat. Prebid Gebote ergänzen das Adrequest, sie sind aber keine notwendige Bedingung.