Das Google Mobile Ads SDK bietet jetzt Beta-Unterstützung für MRAID Version 3. Diese basiert auf der Unterstützung von MRAID Version 2. So können Werbetreibende MRAID Version 3-Creatives für Ad Manager-Publisher ausliefern. In diesem Leitfaden werden die Details zur MRAID-Implementierung erläutert, die in den MRAID-Spezifikationen für Version 3 unklar und für Interpretationen offen waren. Die Zielgruppe sind Autoren von MRAID Version 3-Creatives.
Voraussetzungen
Publisher müssen Folgendes ausführen:
- Google Mobile Ads SDK für iOS 7.30.0 oder höher für MRAID Version 3
- Google Mobile Ads SDK für iOS 7.4.0 oder höher für MRAID Version 2
Hilfreiche Einführungen
Falls Sie mit MRAID nicht vertraut sind, finden Sie auf der IAB-MRAID-Seite weitere Informationen. Sie können auch das Dokument mit MRAID v3-Definitionen herunterladen, das Details zu allen unten aufgeführten Parametern enthält, sowie den IAB-Blogpost zu MRAID v3.
Details zur Implementierung von MRAID Version 3 (Beta)
Sichtbarkeit – „ExposureChange“-Ereignis
Dieses Ereignis wird unterstützt. Wir empfehlen die Verwendung eines Listeners für das neue exposureChange
-Ereignis anstelle des verworfenen viewableChange
-Ereignisses.
Die Methode mraid.isViewable()
wurde ebenfalls eingestellt. Diese eingestellten Methoden werden jedoch weiterhin unterstützt, um die Abwärtskompatibilität aufrechtzuerhalten.
Bei jeder Änderung der Anzeigenansicht wird die Ereignisdefinition exposureChange
gesendet. Das SDK verfügt über einen Abfragemechanismus, um die Generierung zu vieler Ereignisse zu vermeiden.
Der Anfangszustand wird asynchron gesendet, nachdem die Anzeige einen Listener registriert hat.
Der Callback enthält den Parameter exposed_percentage
, bei dem es sich um eine Gleitkommazahl zwischen 0.0
und 100.0
handelt.
Die Beispielverwendung finden Sie in der MRAID v3-Spezifikation.
MRAID-Erkennung und -Initialisierung sowie MRAID_ENV-Attribute
Das SDK entspricht dem Initialisierungsprotokoll, das in den MRAID-Spezifikationen für Version 3 definiert ist.
Im MRAID_ENV
-Objekt sendet das SDK weder IDFA
noch limitAdTracking
, keine App-ID oder COPPA (optional). Er enthält alle erforderlichen Variablen im MRAID_ENV
-Objekt, einschließlich MRAID-Version, SDK-Name und SDK-Version.
Hörbarkeitsmessung
Ein neues Ereignis (audioVolumeChange
) wird eingeführt, um festzustellen, ob der Ton zu hören ist und wenn sich die Lautstärke ändert.
Das audioVolumeChange
-Ereignis hat einen einzelnen Parameter: volume_percentage
.
Der Wert gibt den Prozentsatz der maximalen Lautstärke der Audiowiedergabe an. Es ist eine Gleitkommazahl zwischen 0.0
und 100.0
(0.0
, wenn die Wiedergabe nicht zulässig ist) oder null
, wenn die Lautstärke nicht ermittelt werden kann.
Die Beispielverwendung finden Sie in der MRAID v3-Spezifikation.
mraid.getLocation()
Da mraid.getLocation()
nicht unterstützt wird, wird immer -1
zurückgegeben.
mraid.unload()
Diese Methode kann jederzeit aufgerufen werden und das SDK reagiert darauf, indem die Anzeige geschlossen wird, die Ressourcenzuweisung aufgehoben wird und dann entweder das WebView entfernt oder durch ein anderes Dokument oder eine neue Anzeige ersetzt wird.
Wenn das Creative unload()
aufruft, reagiert die native Ebene für die verschiedenen Creative-Typen so:
Typ | unload()-Verhalten |
---|---|
Banner | Stellen Sie eine neue Anzeigenanfrage mit denselben Anfrageparametern wie die aktuelle Anzeige. |
Interstitial | Schließen Sie das Interstitial. |
VPAID (Video Player Ad Interface Definition)
VPAID wird vom Google Mobile Ads SDK nicht unterstützt. mraid.supports('vpaid')
gibt „false“ zurück.
mraid.useCustomClose()
mraid.useCustomClose()
wird je nach Format und Creative-Typ möglicherweise nicht unterstützt.
Details zur MRAID Version 2-Implementierung
mraid.getVersion()
mraid.getVersion()
gibt erst 2.0
zurück, wenn das Creative geladen wurde. Überprüfen Sie die MRAID-Version nicht, solange mraid.getState()
loading
zurückgibt.
mraid.resize()
Wenn mraid.resize()
aufgerufen wird, wird das ursprüngliche Banner durch das Screenshotbild des Banners ersetzt. Dies ist zu beobachten, wenn die größenangepasste Anzeige nicht die ursprüngliche Werbefläche abdeckt.
Anzeigen mit angepasster Größe entsprechen auch nicht dem ursprünglichen Banner-Frame. Wenn ein Banner in einer Scroll-Ansicht platziert wird, scrollt die größenangepasste Anzeige nicht mit dem Banner.
mraid.setResizeProperties()
Alle Aufrufe von mraid.setResizeProperties()
müssen eine vollständige Liste der erforderlichen Attribute enthalten. Wenn die Eigenschaften zur Größenanpassung ungültig sind, werden sie auf ihre Standardwerte zurückgesetzt. Alle nachfolgenden Aufrufe von mraid.resize()
schlagen dann fehl, bis mraid.setResizeProperties()
noch einmal mit gültigen Parametern aufgerufen wird.
mraid.getMaxSize()
mraid.getMaxSize()
sollte nur verwendet werden, um die maximale Größe von Anzeigen mit angepasster Größe zu bestimmen. Verwenden Sie mraid.getScreenSize()
, um die Größe einer Expandable-Anzeige zu bestimmen.
mraid.setOrientationProperties()
Wenn Sie mraid.setOrientationProperties()
aufrufen und das Attribut allowOrientationChange
auf true
festgelegt ist, geschieht beim Festlegen des Attributs forceOrientation
nichts.
Für Creatives, deren Ausrichtung erzwungen werden soll, muss für allowOrientationChange
der Wert false
festgelegt werden.
mraid.isViewable()
Wenn ein Aufruf eine ansonsten sichtbare Anzeige verdeckt, wird von mraid.isViewable()
trotzdem true
zurückgegeben. App-Inhalte dürfen sichtbare Anzeigen nicht verdecken.
mraid.getCurrentPosition()
Während eine zweiteilige Expandable-Anzeige maximiert ist, wird bei einem Aufruf von mraid.getCurrentPosition()
für den ersten Teil die Größe des Bildschirms zurückgegeben.
mraid.supports()
Ab SDK-Version 7.11.0 geben mraid.supports("storePicture")
und mraid.supports("calendar")
immer false
zurück. Gemäß MRAID Version 2-Spezifikationen sollten Creatives für den Fall geeignet sein, dass diese Methoden nicht verfügbar sind.
mraid.storePicture()
Von der App wird automatisch die Berechtigung zum Speichern eines Bildes angefordert, wenn von einem MRAID-Creative mraid.storePicture()
aufgerufen wird.