Einbau des Google Mobile Ads SDK: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung Markierung: Manuelle Zurücksetzung |
|||
(26 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Diese Dokumentation dient dazu den Einbau des Google Mobile Ads SDK (GMA SDK) und die Werbeintegration der iq digital zu erklären. Sie geht dabei auf notwendige und wichtige Eigenheiten ein und versucht übliche Missverständnisse aufzuklären. | |||
Die Dokumentation beginnt dabei mit dem GMA SDK und allgemeinen Informationen, welche für alle Werbeformen gelten, die in der App laufen sollen. Darauf folgen Werbeform spezifische Erklärungen und zum Abschluss werden werbeform spezifische Events erklärt, welche die App berücksichtigen muss. | |||
==Offizielle Dokumentation zum Google Mobile Ads SDK== | ==Offizielle Dokumentation zum Google Mobile Ads SDK== | ||
Das Google Mobile Ads SDK (GMA SDK) bringt alles mit, was für eine Werbeausspielung in nativen Apps benötigt wird. | Das Google Mobile Ads SDK (GMA SDK) bringt alles mit, was für eine Werbeausspielung in nativen Apps benötigt wird. | ||
Zeile 5: | Zeile 9: | ||
[https://developers.google.com/ad-manager/mobile-ads-sdk/ios/quick-start GMA SDK iOS Getting Started] | [https://developers.google.com/ad-manager/mobile-ads-sdk/ios/quick-start GMA SDK iOS Getting Started] | ||
[https://developers.google.com/ad-manager/mobile-ads-sdk/android/quick-start GMA SDK | [https://developers.google.com/ad-manager/mobile-ads-sdk/android/quick-start GMA SDK Android Getting Started] | ||
===Download des Google Mobile Ads SDK=== | ===Download des Google Mobile Ads SDK=== | ||
Zeile 51: | Zeile 55: | ||
====Begriffserklärung==== | ====Begriffserklärung==== | ||
;netzwerkId:Hier ist immer die Netzwerk ID der iq digital einzugeben: 183 | ;netzwerkId:Hier ist immer die Netzwerk ID der iq digital einzugeben: 183 | ||
;level1:Dies ist die Bezeichnung der App im Google Ad Manager und wird von der iq digital vorgegeben. Die | ;level1:Dies ist die Bezeichnung der App im Google Ad Manager und wird von der iq digital vorgegeben. Die Bezeichnung besteht aus <appname>_app_<plattform>_<gerätetyp>. | ||
:;appname:Der Name der App | :;appname:Der Name der App | ||
:;plattform:Das Betriebsystem, also ''ios'' oder ''android'' | :;plattform:Das Betriebsystem, also ''ios'' oder ''android'' | ||
:;gerätetyp:Der Gerätetyp, also '''phone''' oder ''tablet'' | :;gerätetyp:Der Gerätetyp, also '''phone''' oder ''tablet'' | ||
;level2:Dies ist die Bezeichnung einer Rubrik der App, z.B. ''politik'' | ;level2:Dies ist die Bezeichnung einer Rubrik der App oder der Startseite, z.B. ''politik'', ''openingpage'' | ||
;level3 (usw.):Dies ist die Bezeichnung für eine Unterrubrik, z.B. im Falle von ''politik'' als level2 wäre ''ausland'' eine Unterrubrik für level3. Level4 und höher sind weitere tiefere Verzweigungen der App, diese werden im Normalfall nicht | ;level3 (usw.):Dies ist die Bezeichnung für eine Unterrubrik, z.B. im Falle von ''politik'' als level2 wäre ''ausland'' eine Unterrubrik für level3. Level4 und höher sind weitere tiefere Verzweigungen der App, diese werden im Normalfall nicht als Adunits angelegt. Solche Seiten würden dann über das übergeordnete level3 vermarktet werden. Beispiel: Eine Seite ''politik/ausland/usa'' ist zu speziell, um sie einzeln zu vermarkte. In so einem Fall ist es sinnvoll, dass sie nur bis level3, also als ''politik/ausland'', vertaggt wird. | ||
;seitentyp:In Apps mit Banner-Anzeigen (z.B. News Apps) bezeichnet ''seitentyp'' die unterschiedlichen Seitentypen, also ob es sich z.B. um eine Übersichts-, Artikel- oder Bildergalerieseite handelt. Übliche Werte dafür sind ''homepage'', ''index'', ''artikel'', ''bildgal''. In Apps mit Fullscreen-Anzeigen (z.B. epaper oder Zeitungs Apps) werden mit ''seitentyp'' die unterschiedlichen Anzeigeplätze innerhalb der Rubrik gemeint, also ob es sich z.B. erste, zweite oder dritte Swipe Anzeige handelt. Übliche Werte sind | ;seitentyp:In Apps mit Banner-Anzeigen (z.B. News Apps) bezeichnet ''seitentyp'' die unterschiedlichen Seitentypen, also ob es sich z.B. um eine Übersichts-, Artikel- oder Bildergalerieseite handelt. Übliche Werte dafür sind ''homepage'', ''index'', ''artikel'', ''bildgal''. In Apps mit Fullscreen-Anzeigen (z.B. epaper oder Zeitungs Apps) werden mit ''seitentyp'' die unterschiedlichen Anzeigeplätze innerhalb der Rubrik gemeint, also ob es sich z.B. erste, zweite oder dritte Swipe Anzeige handelt. Übliche Werte sind ''swipe_1'', ''swipe_2'', ''swipe_3'' usw. | ||
====Beispiel für die fiktive Rheinischer Kurier News App mit Banner-Anzeigen:==== | ====Beispiel für die fiktive Rheinischer Kurier News App mit Banner-Anzeigen:==== | ||
Zeile 72: | Zeile 76: | ||
*/183/Rheinischer_Kurier_epaper_app_ios_tablet | */183/Rheinischer_Kurier_epaper_app_ios_tablet | ||
*/183/Rheinischer_Kurier_epaper_app_ios_tablet/preloading_ad | */183/Rheinischer_Kurier_epaper_app_ios_tablet/preloading_ad | ||
*/183/Rheinischer_Kurier_epaper_app_ios_tablet/openingpage | */183/Rheinischer_Kurier_epaper_app_ios_tablet/openingpage/swipe_1 | ||
*/183/Rheinischer_Kurier_epaper_app_ios_tablet/politik/swipe_1 | */183/Rheinischer_Kurier_epaper_app_ios_tablet/politik/swipe_1 | ||
*/183/Rheinischer_Kurier_epaper_app_ios_tablet/politik/swipe_2 | */183/Rheinischer_Kurier_epaper_app_ios_tablet/politik/swipe_2 | ||
Zeile 82: | Zeile 86: | ||
===Creative Sizes=== | ===Creative Sizes=== | ||
Im Google Ad Manager stehen die Creative Sizes für die Werbemittel-Größen. Dabei ist es möglich dass die tatsächlich ausgespielte Größe eines Werbemittels von der CreativeSize abweicht (in so einem Fall wird von Pseudogröße gesprochen). Die App muss für ein Adrequest der entsprechenden Platzierung alle zugehörigen Creative Sizes abfragen. Die oft lange Liste aus Größen ergibt sich aus den vielen möglichen unterschiedlichen Werbeformen und den | Im Google Ad Manager stehen die Creative Sizes für die Werbemittel-Größen. Dabei ist es möglich dass die tatsächlich ausgespielte Größe eines Werbemittels von der CreativeSize abweicht (in so einem Fall wird von Pseudogröße gesprochen). Die App muss für ein Adrequest der entsprechenden Platzierung alle zugehörigen Creative Sizes abfragen. Die oft lange Liste aus Größen ergibt sich aus den vielen möglichen unterschiedlichen Werbeformen und den Unterschieden in direkter und programmatischer Vermarktung. | ||
Bei Fullscreen Ad und Preloading Ad Platzierungen werden meist Größen für Portrait- und Landscape-Modus gemeinsam abgefragt. | Bei Fullscreen Ad und Preloading Ad Platzierungen werden meist Größen für Portrait- und Landscape-Modus gemeinsam abgefragt. | ||
Zeile 112: | Zeile 116: | ||
;doc:Die Bezeichnung des Seitentyps. Gültige Werte sind homepage, index, artikel, bildgal | ;doc:Die Bezeichnung des Seitentyps. Gültige Werte sind homepage, index, artikel, bildgal | ||
;iqadtype:Die Angabe der Plattform. Gültige Werte sind online, mew, app, amp | ;iqadtype:Die Angabe der Plattform. Gültige Werte sind online, mew, app, amp | ||
;appver:Die Bezeichnung der Appversions-Nummer | ;appver:Die Bezeichnung der Appversions-Nummer. Beispiel: Version 4.01 sollte dann appver=4_01 sein. Es sollte eine sinnvolle Bezeichnung sein, damit im Problemfall eine bestimmte Appversion von der Vermarktung ausgeschlossen werden kann. | ||
Angaben welche Keywords für welche Platzierung verwendet werden sollen, finden sich in der creative_sizes_and_keywords.xlsc Tabelle, die von der iq digital zu Projektstart zur Verfügung gestellt wird. | Angaben welche Keywords für welche Platzierung verwendet werden sollen, finden sich in der creative_sizes_and_keywords.xlsc Tabelle, die von der iq digital zu Projektstart zur Verfügung gestellt wird. | ||
Zeile 119: | Zeile 123: | ||
*https://developers.google.com/ad-manager/mobile-ads-sdk/ios/targeting#custom_targeting | *https://developers.google.com/ad-manager/mobile-ads-sdk/ios/targeting#custom_targeting | ||
*https://developers.google.com/ad-manager/mobile-ads-sdk/android/targeting#custom_targeting | *https://developers.google.com/ad-manager/mobile-ads-sdk/android/targeting#custom_targeting | ||
===Content-Url Parameter im Adrequest=== | |||
Damit programmatische Partner (z.B. Adexchange, Headerbidding oder Backfill) möglichst hoch um eine Werbeplatzierung bieten, muss dieser App-Werbeplatzierung mitgeteilt werden, zu welcher stationären Webseite sie tatsächlich gehört. Dies geschieht über den content-url Parameter im Adrequest. Hier ist als Wert die URL der Webseite zu übergeben, die möglichst genau zu dem Inhalt in der App passt. Beispiel: Ein App-Artikel sollte im content-url Parameter auf seinen stationären Webartikel verlinken, eine App Startseite auf die Homepage usw. | |||
Das GMA SDK besitzt dazu eine setContentUrl-Funktion. | |||
Dies wird hier genauer beschrieben: | |||
*https://developers.google.com/ad-manager/mobile-ads-sdk/ios/targeting?hl=de#content_url | |||
*https://developers.google.com/ad-manager/mobile-ads-sdk/android/targeting?hl=de#content_url | |||
===Debugging=== | ===Debugging=== | ||
Zeile 186: | Zeile 197: | ||
*im Falle einer Buchung: | *im Falle einer Buchung: | ||
**erzeugt das Interstitial mit Hilfe des GMA SDKs | **erzeugt das Interstitial mit Hilfe des GMA SDKs | ||
** | **vergrößert den Werbecontainers auf Display-Größe | ||
*bei Orientationchange- oder Resize-Event: passt die Werbeseite und den Werbecontainer an die neuen Display-Maße an | *bei Orientationchange- oder Resize-Event: passt die Werbeseite und den Werbecontainer an die neuen Display-Maße an | ||
*bereitet im Hintergrund weiter den Content vor | *bereitet im Hintergrund weiter den Content vor | ||
Zeile 277: | Zeile 288: | ||
#App sendet Adrequest an Adserver | #App sendet Adrequest an Adserver | ||
#Adserver antwortet mit Werbebuchung | #Adserver antwortet mit Werbebuchung | ||
#App erzeugt | #App erzeugt Werbecontainer mit der Größe, die in der Response des Adservers enthalten ist | ||
#Werbecontainer | #eventuell muss der Werbecontainer auf Grund eines setsize-Events angepasst werden | ||
|workflownoad= | |workflownoad= | ||
#App sendet Adrequest an Adserver | #App sendet Adrequest an Adserver | ||
#Adserver antwortet | #Adserver antwortet mit Ausbuchung als Werbebuchung | ||
#App | #App empfängt eine Response mit der Größe 99x1 und erhält kurze Zeit später ein noad-Event | ||
#App blendet Werbeplatzierung und Anzeigenkennzeichnung bis zum nächsten Pagerequest aus | |||
|creativesizes= | |creativesizes= | ||
320x50, 320x53, 320x80, 320x106, 320x160, 320x320, 320x416, 320x460, 300x50, 300x75, 300x100, 300x150, 300x200, 300x250, 300x600 | 320x50, 320x53, 320x80, 320x106, 320x160, 320x320, 320x416, 320x460, 300x50, 300x75, 300x100, 300x150, 300x200, 300x250, 300x600 | ||
Zeile 297: | Zeile 308: | ||
==Dokumentation der iq digital App Events== | ==Dokumentation der iq digital App Events== | ||
Die App Events bestehen aus dem Namen und einem "data"-String | Die Werbetemplates der iq digital senden in bestimmten Situationen Events an die App. Die App muss auf diese Events reagieren und gemäß der folgenden Spezifikation den Werbecontainer verändern. Die App Events bestehen dabei immer aus dem Namen und einem "data"-String. | ||
===Wichtige Links in der GMA SDK Dokumentation=== | |||
*[https://developers.google.com/ad-manager/mobile-ads-sdk/ios/banner#app_events GMA SDK iOS App Events] | |||
*[https://developers.google.com/ad-manager/mobile-ads-sdk/android/banner#app_events GMA SDK Android App Events] | |||
===setsize – Event=== | ===setsize – Event=== | ||
Zeile 307: | Zeile 322: | ||
;width:Die neue Breite des Adviews in Pixel (Device-Independent-Pixel) als ganze Zahl. | ;width:Die neue Breite des Adviews in Pixel (Device-Independent-Pixel) als ganze Zahl. | ||
;height:Die neue Höhe des Adviews in Pixel (Device-Independent-Pixel) als ganze Zahl. | ;height:Die neue Höhe des Adviews in Pixel (Device-Independent-Pixel) als ganze Zahl. | ||
{{Warnung|text=Ausnahme: Für eine Anpassung auf die maximal verfügbare Breite oder Höhe wird der Wert '''max''' verwendet.}} | {{Warnung|text=Ausnahme: Für eine Anpassung auf die maximal verfügbare Breite oder Höhe wird der Wert '''max''' verwendet. Mit maximaler verfügbare Breite bzw. Höhe ist im Normalfall die Displaybreite bzw. -Höhe gemeint. Sollte eine App hier zwingende Abweichungen haben, wie einen notwendigen Rand, muss dies unbedingt '''frühzeitig mit iq digital''' besprochen werden.}} | ||
Beispielaufrufe: | Beispielaufrufe: | ||
Zeile 318: | Zeile 334: | ||
Das noad-Event wird von den Werbetemplates der iq digital aufgerufen, um der App zu signalisieren, dass für die Platzierung keine Buchung vorliegt und die App die Werbeplatzierung '''und die zugehörige Anzeigenkennzeichnung''' entfernen soll. | Das noad-Event wird von den Werbetemplates der iq digital aufgerufen, um der App zu signalisieren, dass für die Platzierung keine Buchung vorliegt und die App die Werbeplatzierung '''und die zugehörige Anzeigenkennzeichnung''' entfernen soll. | ||
Der "data"-String hat für dieses Event keine Bedeutung und kann ignoriert werden. | Der "data"-String hat für dieses Event keine Bedeutung und kann ignoriert werden. Da das AppEventListener Interface von Google eine @NonNull Annotation für data hat, wird beim noad-Event einfach der Wert "noad" für data übergeben, da der leere String von Google als null umgewandelt wird. | ||
[[Kategorie:Ad Technology]][[Kategorie:APP]] | [[Kategorie:Ad Technology]][[Kategorie:APP]] | ||
[[en:Integration of the Google Mobile Ads SDK]] | [[en:Integration of the Google Mobile Ads SDK]] |