Integration of the Google Mobile Ads SDK: Difference between revisions
No edit summary |
|||
| (15 intermediate revisions by the same user not shown) | |||
| Line 59: | Line 59: | ||
:;platform:The operating system, in other words ''ios'' or ''android'' | :;platform:The operating system, in other words ''ios'' or ''android'' | ||
:;devicetype:The device type, in other words ''phone'' or ''tablet'' | :;devicetype:The device type, in other words ''phone'' or ''tablet'' | ||
;level2:This is the designation of a section of the app, e.g. politik | ;level2:This is the designation of a section of the app or the homepage, e.g. ''politik'', ''openingpage'' | ||
;level3 (etc.):This is the designation for a sub-section. For example: in the case of politik as level2 ausland (foreign) would be a sub-section for level3. level4 and higher are further, deeper branches of the app and are not usually created as ad units. These types of pages would then be marketed via the supraordinate level3. Example: a page politik/ausland/usa is too specific to be marketed individually. In such a case, it is a good idea that it is only tagged down to level3, in other words as politik/ausland. | ;level3 (etc.):This is the designation for a sub-section. For example: in the case of politik as level2 ausland (foreign) would be a sub-section for level3. level4 and higher are further, deeper branches of the app and are not usually created as ad units. These types of pages would then be marketed via the supraordinate level3. Example: a page politik/ausland/usa is too specific to be marketed individually. In such a case, it is a good idea that it is only tagged down to level3, in other words as politik/ausland. | ||
;pagetype:In apps with banner ads (e.g. news apps), seitentyp designates the different page types – in other words, whether the page is, for example, an overview, article or photo gallery page. Standard values here are homepage, index, artikel, bildgal. In apps with fullscreen ads (e.g. ePaper or newspaper apps), seitentyp refers to the different ad positions within the section – in other words, whether they are the first, second or third swipe ad, for example. Standard values are | ;pagetype:In apps with banner ads (e.g. news apps), seitentyp designates the different page types – in other words, whether the page is, for example, an overview, article or photo gallery page. Standard values here are homepage, index, artikel, bildgal. In apps with fullscreen ads (e.g. ePaper or newspaper apps), seitentyp refers to the different ad positions within the section – in other words, whether they are the first, second or third swipe ad, for example. Standard values are swipe_1, swipe_2, swipe_3 etc. | ||
====Example for the fictitious Rheinischer Kurier news app with banner ads:==== | ====Example for the fictitious Rheinischer Kurier news app with banner ads:==== | ||
| Line 76: | Line 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 | ||
| Line 126: | Line 126: | ||
*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 in the adrequest=== | |||
In order for programmatic partners (e.g. Adexchange, Headerbidding or Backfill) to bid as high as possible for an ad placement, this app ad placement must be told which stationary website it actually belongs to. This is done via the content-url parameter in the adrequest. The URL of the web page that matches the content in the app as closely as possible must be passed here as the value. Example: An app article should link to its stationary web article in the content-url parameter, an app home page to the home page, etc. The GMA SDK has a setContentUrl function for this purpose. This is described in more detail here: | |||
*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 | |||
===Political advertising in native apps=== | |||
Political campaigns require consent from the user. In order for the ad server to take this into account correctly, it needs information from the app. The exact workflow works as follows: | |||
====Workflow==== | |||
#The user decides in the CMP whether to give consent for political advertising | |||
#The app evaluates the consent and checks whether consent has been given for political advertising | |||
#If consent has been given, the app adds the keyword '''''political_ad''''' to the '''''kw''''' keywords for each ad request (see [[#Keywords (attachment of key-value pairs)]]). | |||
#The ad server sees the keyword '''''political_ad''''' in the ad request and now has the option of delivering a political campaign targeted to that keyword (however, this is not mandatory; it can also deliver other campaigns). | |||
#When an ad server plays a political campaign, a creative is delivered to the app that contains an additional setting in the template. This causes the creative to inform the app that the advertising slot in question actually contains a political campaign and that the app should respond by changing the ad label. The message is sent to the app via a political_ad event (see [[#Documentation of the iq digital app events]]). | |||
#The app receives the '''''political_ad''''' event and can respond to it. iqdigital recommends that the ad label above the affected ad slot be changed to '''''Politische Anzeige''''' and that there be a link to the Political Ad Transparency URL for the campaign (which is passed in the event). '''Important''': The responsibility for whether and how the app responds to the '''''political_ad''''' event lies with the publisher and the app. | |||
====App tasks (publisher tasks)==== | |||
*The app evaluates the consent string and checks whether the user has given consent for political advertising. | |||
*If consent for political advertising has been given, the app adds the keyword '''''political_ad''''' to CustomTargeting (to key '''''kw'''''). | |||
*When the app receives a '''''political_ad''''' event through a creative, it should respond to it, for example by changing the ad label to '''''Politische Anzeige''''', as described above. If a URL is also passed as a data-String in the event, a link with the URL and the text '''''(mehr dazu)''''' should appear next to the ad label '''''Politische Anzeige'''''. Clicking on the link then opens the URL, where the user can find further information about the type of campaign. | |||
====Tasks of the advertising template==== | |||
*A political campaign must be configured accordingly in the ad server. This is done via settings in the advertising template. This involves marking that the creative belongs to a political campaign and setting the PoliticalAdTransparencyUrl (for the "(mehr dazu)" link). | |||
*The advertising template internally evaluates whether it is a political ad. | |||
*In the case of a political advertisement, it sends an event to the app with the key political_ad and the set PoliticalAdTransparencyUrl as the "data" string. | |||
====Example==== | |||
Attached is an example of a test campaign that has been marked as a political ad. | |||
[[File:Political_Ad_Testkampagne.png|800px|thumbnail|Display of a political campaign from the web (right side of the image)]] | |||
====Test placement==== | |||
The following keywords (separated by commas) can be set in the debug Easter egg: | |||
<pre>iqdtests,political_ad_test</pre> | |||
This will run an orange test ad on iqadtile1, iqadtile3 and/or iqadtile4 with the text "POLITICAL AD Test 320x320." However, this will only appear if the app transmits the keyword political_ad after evaluating consent in accordance with the instructions for political advertising. | |||
===Debugging=== | ===Debugging=== | ||
| Line 330: | Line 365: | ||
The "data" string has no meaning for this event and can be ignored. Since Google's AppEventListener interface has a @NonNull annotation for data, the noad event simply passes the value "noad" for data, since the empty string is converted as null by Google. | The "data" string has no meaning for this event and can be ignored. Since Google's AppEventListener interface has a @NonNull annotation for data, the noad event simply passes the value "noad" for data, since the empty string is converted as null by Google. | ||
===policial_ad event=== | |||
The policial_ad event is called by iq digital's advertising templates to signal to the app that a political campaign exists on this placement and that it should respond to it (see [[#Political advertising in native apps]]). | |||
The "data" string contains the PolticialAdTransparencyUrl, provided it has been defined in the campaign in the ad server. | |||
====Example call:==== | |||
;<nowiki>"policial_ad","https://www.diesisteinekampagne.de/transparency.html"</nowiki>:The app should use "Politische Anzeige [https://www.diesisteinekampagne.de/transparency.html (mehr dazu)]" as the ad label for the placement, as recommended | |||
[[Kategorie:Ad Technology]][[Kategorie:APP]] | [[Kategorie:Ad Technology]][[Kategorie:APP]] | ||
[[de:Einbau des Google Mobile Ads SDK]] | [[de:Einbau des Google Mobile Ads SDK]] | ||