Prebid Mobile SDK in Apps

Aus Dokumentation
Zur Navigation springen Zur Suche springen

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.

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

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:

  1. Config Id, diese ist für jedes iqadtile anders und wird in einer Tabelle von der iqdigital zur Verfügung gestellt
  2. 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

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:

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()  
)


iOS:

OmidPartnerVersion: afma-sdk-i-v12.11.0 OmidPartnerName: Google

Android:

OmidPartnerVersion: 253830000.253830000 OmidPartnerName: Google

Beispiel:
TargetingParams.setOmidPartnerVersion("253830000.253830000");  
TargetingParams.setOmidPartnerName("Google");


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

  1. Prebid Mobile SDK einbinden
iOS: https://github.com/prebid/prebid-mobile-ios
Android: https://github.com/prebid/prebid-mobile-android
  1. 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)
  2. Das Prebid Mobile SDK sendet ein Request an Prebid Server
  3. Prebid Server liefert, falls vorhanden, ein Gebot zurück
  4. Das Adrequest an den Google Ad Manager wird um die Prebid Parameter ergänzt
  5. Der Google Ad Manager prüft das Request und liefert Werbung aus
  6. 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");

Wichtige Links

iOS

Android