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 an den Adserver weitergegeben, der das gebot mit weiteren dort vorliegenden Buchungen vergleicht und die passendste Buchung ausliefert.
Einbau
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 - Weitere Konfigurationen für BannerAdUnits
Globale Konfigurationen
Diese gelten für alle BannerAdUnits gleichermaßen
iqadtile/Seiten spezifische Konfigurationen
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()
Einbau und Funktionsweise
- Prebid Mobile SDK einbinden
- BannerAdUnit anlegen, mit allen Größen und zusätzlichen Größen, die im Prebid Request enthalten sein sollen (Die PREBID_SERVER_CONFIGURATION_ID wird dabei aus einer separaten Tabelle entnommen und der entsprechenden Platzierung zugeordnet (Hinweis für Ad Technology iq digital: Die PREBID_SERVER_CONFIGURATION_ID einer Platzierung ist die "Targeting ID" in Prebid Server Premioum von Xandr)
- 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
Beispiel Android
Das Beispiel auf der Seite zeigt, dass man wohl einen DFP PublisherAdView und erzeugt danach die Prebid BannerAdUnit. Dieser gibt man die Prebid Server Request ID, welche der BannerAdUnit zugeordnet ist und übergibt ihr eine Größe. Mit der Methode addAdditionalSize übergibt man dem Objekt noch weitere Größen. Hier sollten alle Größen übergeben werden, die auch normalerweise beim Adrequest für die Platzierung dabei sind.
Mit fetchDemand werden dann die Gebote eingeholt. Die ResultCodes sind hier definiert: http://prebid.org/prebid-mobile/pbm-api/android/pbm-api-result-codes-android.html Generell sollte aber ein Adrequest immer erfolgen, egal ob Gebote enthalten sind oder nicht.
Wichtige Konfigurationen
Das Prebid Mobile SDK arbeitet in unserem Fall mit Prebid Server Premium zusammen und benötigt daher ein paar Anpassungen:
Host
Prebid Server Premium muss als Custom Host konfigurtiert sein. Dies erfolgt in Android so:
Host custom = Host.CUSTOM;
custom.setHostUrl("https://ib.adnxs.com/openrtb2/prebid");
PrebidMobile.setPrebidServerHost(custom);
Anleitung Android Custom Host
Anleitung iOS Custom Host
Account ID Setzen
Es muss zusätzlich unsere Account ID gesetzt werden.
PrebidMobile.setPrebidServerAccountId("6975");