Toto je článek o vývoji reklam pro sadu SDK pro mobilní reklamy Google. Je v něm uvedeno, jaké informace váš vývojář potřebuje a jak se tyto informace používají k vytvoření značek, které určují chování reklamy.
K dispozici jsou různé formáty reklam, včetně bannerů v aplikacích, rozbalitelných bannerů a reklam přes celou obrazovku. Každý formát reklamy má vlastní podklady a funkce. Rozbalitelné bannery například po kliknutí mohou změnit velikost a barvu pozadí. Sada SDK pro mobilní reklamy Google je kompatibilní se standardy MRAID.
Pokud chcete používat sadu SDK pro mobilní reklamy Google, musíte pro vývojáře shromažďovat ID aplikace, ID reklamních jednotek a velikosti reklam.
Obsah této stránky:
- Zjištění ID aplikací pro mobilní reklamy Google
- Zjištění ID a velikostí reklamních jednotek
- Další funkce JavaScriptu
- Kompatibilita se standardem MRAID
Zjištění ID aplikací pro mobilní reklamy Google
- Přihlaste se do služby Google Ad Manager.
- Klikněte na Inventář a poté na Aplikace.
- Vyhledejte mobilní aplikaci, jejíž ID potřebujete, nebo si nárokujte novou mobilní aplikaci.
- Kliknutím na tlačítko zkopírujte ID aplikace do schránky. Příklad:
ca-app-pub-3940256099942544~3347511713
- Odešlete tyto informace vývojáři.
Zjištění ID a velikostí reklamních jednotek
- Klikněte na Inventář a poté na Reklamní jednotky.
- Klikněte na název reklamní jednotky, pro kterou chcete vytvořit značku reklamy, nebo vytvořte novou reklamní jednotku.
- Klikněte na Značky.
- Vyberte typ značky „Značka mobilní aplikace“ a klikněte na Pokračovat.
- Ze sekce Výsledná značka zkopírujte údaje ID reklamní jednotky a Velikosti reklamních jednotek. Odešlete tyto informace vývojáři.
Další funkce JavaScriptu
Pokud chcete používat funkce sady SDK pro mobilní reklamy Google, přečtěte si dokumentaci pro vývojáře.
Zde najdete výběr některých funkcí k úpravě sekce <head>
kreativy.
Sada SDK umožňuje využít funkce prohlížečů v aplikacích dostupných na platformách iOS a Android. Díky tomu mají vývojáři přístup k funkcím zařízení, jako je akcelerometr, gyroskop nebo kompas, a to pomocí HTML5 (pokud platforma tyto funkce podporuje).
Události aplikací umožňují spustit v aplikaci vlastní kód, když kreativa odešle událost. Pomocí událostí aplikací můžete zavést vlastní spouštění reklam, které vzájemně reagují s aplikací, například změní barvu pozadí aplikace.
Pokud zjistíte, že reklama na celou obrazovku zabírá pouze část obrazovky, vložte do sekce <head>
kreativy následující kód:
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
.
Tato šablona je bannerová reklamní jednotka, která se zobrazí jako banner v dolní části obrazovky. Pokud uživatel na banner klikne, jeho výchozí kalendářová aplikace s jeho souhlasem vytvoří novou událost.
Chování a prvky uživatelského rozhraní
Kreativa se skládá z následujících prvků uživatelského rozhraní:
- Bannerový obrázek a jeho výška a šířka.
- Jsou požadovány informace o události, jako jsou souhrn, popis, místo, datum zahájení a datum ukončení.
Název | Typ | Povinné | Popis |
---|---|---|---|
Obrázkový soubor banneru | Soubor | Ano | Obrázek bannerové reklamy. |
Šířka obrázku banneru | Číslo | Ano | Šířka obrázku banneru. |
Výška obrázku banneru | Číslo | Ano | Výška obrázku banneru. |
Souhrnné informace o události | Text | Ano | Souhrnné informace o události. |
Popis události | Text | Ano | Popis události. |
Místo události | Text | Ne | Místo konání události. |
Datum zahájení události | Text | Ano | Datum zahájení události. Datum zahájení musí být uvedeno v následujícím tvaru: „2016-10-22T00:00-05:00“. Tento údaj například znamená 22. října 2016 od 0:00 do 5:00. |
Datum ukončení události | Text | Ano | Datum ukončení události. Datum ukončení musí být uvedeno v následujícím tvaru: „2016-10-22T00:00-05:00“. Tento údaj například znamená 22. října 2016 od 0:00 do 5:00. |
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<head>
<script type="text/javascript" src="mraid.js"></script>
</head>
<body>
<div id="normal" style="display:none; margin:auto;top:0px;text-align:center">
<a href="#" onClick="addToCalendar()"; return false;>
<img width="[%BannerImageWidth%]" height="[%BannerImageHeight%]" src="[%BannerImageFile%]" />
</a>
</div>
<script>
// Check whether mraid is ready by adding event listener
function doReadyCheck(){
if(mraid.getState() == 'loading'){
mraid.addEventListener("ready", mraidIsReady);
}else{
showMyAd();
}
}
// Once mraid is ready, it does not need to listen to the ready event anymore
function mraidIsReady(){
mraid.removeEventListener("ready", mraidIsReady);
showMyAd();
}
// Only show Ad when mraid is ready
function showMyAd(){
var advertElement = document.getElementById("normal");
advertElement.style.display = 'block';
}
// Add event to the calendar using appropriate input if the device supports calendar manipulation
function addToCalendar(){
// Register the click by creating an image
var x = document.createElement("IMG");
x.setAttribute("src", "%%CLICK_URL_ESC%%");
window.top.document.body.appendChild(x);
if(mraid.getVersion()=="2.0"){
mraid.createCalendarEvent({summary: "[%EventSummary%]", description: "[%EventDescription%]", location: "[%EventLocation%]", start: "[%EventStartDate%]", end: "[%EventEndDate%]"});
}
return false;
}
doReadyCheck();
</script>
</body>
</html>
Název testovací reklamní jednotky: ali_Calendar
Tato šablona je reklamní jednotka tvořená dvěma částmi, která se zobrazí jako bannerová reklama v dolní části obrazovky. Pokud uživatel na banner klikne, rozbalí se reklama do nějakých konkrétních rozměrů. Pokud uživatel klikne na rozbalenou reklamu, bude přesměrován na cílovou adresu URL.
Jako šířku lze použít buď rozměr banneru, nebo reklama může zabrat celou šířku obrazovky (pokud je parametr FullWidthResize
nastaven na hodnotu „Yes“).
Chování a prvky uživatelského rozhraní
Kreativa se skládá z následujících prvků uživatelského rozhraní:
- Podklady (pro každý z těchto podkladů je požadován soubor, výška a šířka)
- součást obrázku banneru,
- součást rozbaleného banneru,
- ikona tlačítka zavření.
- Pozici tlačítka zavření lze upravit, aby bylo buď v pravém horním rohu obrazovky, nebo v levém horním rohu obrazovky.
- Barvu pozadí reklamy lze změnit.
Název | Typ | Povinné | Popis |
---|---|---|---|
Obrázkový soubor banneru | Soubor | Ano | Obrázek, který se zobrazí v bannerové reklamě. |
Výška obrázku banneru | Číslo | Ano | Výška obrázku banneru. |
Šířka obrázku banneru | Číslo | Ano | Šířka obrázku banneru. |
Barva pozadí | Text | Ano | Barva pozadí místa obsazeného obrázkem s upravenou velikostí a místa obsazeného bannerem. |
Cílová adresa URL | URL | Ano | Adresa URL, na kterou bude uživatel přesměrován, když klikne na rozbalenou reklamu. |
Obrázkový soubor rozbalené reklamy | Soubor | Ano | Obrázek, který se zobrazí, když uživatel na banner klikne. |
Výška rozbaleného obrázku | Číslo | Ano | Výška rozbaleného obrázku. |
Šířka rozbaleného obrázku | Číslo | Ano | Šířka rozbaleného obrázku. |
Ikona zavření | Soubor | Ano | Obrázkový soubor pro tlačítko Zavřít. |
Šířka ikony zavření | Číslo | Ano | Šířka tlačítka Zavřít. (Průměrná šířka je 30.) |
Výška ikony zavření | Číslo | Ano | Výška tlačítka Zavřít. (Průměrná výška je 30.) |
Pozice tlačítka Zavřít | Seznam | Ne | Umožňuje stanovit, zda se má tlačítko Zavřít zobrazit v pravém, nebo levém horním rohu obrazovky. Možné hodnoty jsou „Right“ (Vpravo) a „Left“ (Vlevo). Pokud je tento parametr ponechán prázdný, tlačítko zavření se zobrazí v pravém horním rohu obrazovky. |
Rozšíření na celou šířku | Seznam | Ne | Pokud má hodnotu „Yes“ (Ano), reklama po rozbalení zabere celou šířku obrazovky. Pokud má hodnotu „No“ (Ne), zůstane šířka stejná jako u původního banneru. Možné hodnoty jsou „Yes“ (Ano) a „No“ (Ne). Výchozí hodnota je „No“ (Ne). |
<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<head>
<script type="text/javascript" src="mraid.js"></script>
<style>
#close_button {
position: absolute;
top: 4px;
right: 4px;
display:block;
}
#resized img {
display : block;
margin : auto;
}
</style>
</head>
<body>
<div id="normal" style="display:none; margin:auto;top:0px;text-align:center">
<a onClick="resize();">
<img width="[%BannerImageWidth%]" height="[%BannerImageHeight%]" src="[%BannerImageFile%]" />
</a>
</div>
<div id="resized" style="display:none; top:0px;">
<a onClick="openURL()">
<img width="[%ResizedImageWidth%]" height="[%ResizedImageHeight%]" src="[%ResizedImageFile%]"/>
</a>
<div id="close_button">
<img width="[%CloseIconWidth%]" height="[%CloseIconHeight%]" src="[%CloseIcon%]"/>
</div>
</div>
<script>
<!--
// Variables
var closeButton = document.getElementById("close_button");
var bodyElement = document.body;
var advertElement = document.getElementById("normal");
var resizedElement = document.getElementById("resized");
var resizeBannerWidth;
function changeBodyElementStyle() {
// Change background color
if ("[%ResizedBackgroundColor%]") {
bodyElement.style.backgroundColor = "[%ResizedBackgroundColor%]";
resizedElement.style.backgroundColor = "[%ResizedBackgroundColor%]";
}
}
function openURL() {
mraid.open("%%CLICK_URL_ESC%%[%ClickThroughURL%]");
}
//Check whether MRAID is ready by adding event listener
function checkIfReady(){
if(mraid.getState() == 'loading'){
mraid.addEventListener("ready", mraidIsReady);
} else{
showMyAd();
}
}
function mraidIsReady(){
mraid.removeEventListener("ready", mraidIsReady);
showMyAd();
}
// Set resizing properties and resize
function resize(){
// If FullWidthResize is "Yes", then the resized advert takes up the whole width. Otherwise takes up the width of the original banner
if ("[%FullWidthResize%]" == "Yes") {
resizeBannerWidth = screen.width;
} else {
resizeBannerWidth = mraid.getDefaultPosition().width;
}
if(mraid.getVersion()=="2.0"){
if ("[%PositionOfCloseButton%]" === "Left") {
closeButton.style.left = "0";
mraid.setResizeProperties({"width":""+resizeBannerWidth+"","height":"[%ResizedImageHeight%]","offsetX":"","offsetY":"","customClosePosition":"top-left", "allowOffscreen":false});
} else {
closeButton.style.right = "0";
mraid.setResizeProperties({"width":""+resizeBannerWidth+"","height":"[%ResizedImageHeight%]","offsetX":"","offsetY":"","customClosePosition":"top-right", "allowOffscreen":false});
}
mraid.resize();
return false;
}
else{
return true;
}
}
// Displays the advert and add an event listener to it to detect whether to resize
function showMyAd(){
advertElement.style.display = "inline";
mraid.addEventListener("stateChange",updateAd);
}
// updateAd is called when MRAID changes state - calls toggleLayer to expand/ reduce ad size
function updateAd(state){
if (state == "resized"){
toggleLayer('normal', 'resized');
}else if(state == "default"){
toggleLayer('resized', 'normal');
}
}
// Goes to the other state (either resized or banner)
function toggleLayer(fromLayer, toLayer){
var fromLayerElem = document.getElementById(fromLayer);
fromLayerElem.style.display = 'none';
var toLayerElem = document.getElementById(toLayer);
toLayerElem.style.display = 'block';
}
changeBodyElementStyle();
checkIfReady();
//-->
</script>
</body>
</html>
Název testovací reklamní jednotky: ali_resizeBanner
Tato šablona je reklamní jednotka tvořená dvěma částmi, která se zobrazí jako bannerová reklama v dolní části obrazovky. Pokud uživatel na banner klikne, reklama se rozbalí na celou obrazovku. Pokud uživatel klikne na rozbalenou reklamu, bude přesměrován na cílovou adresu URL.
Tato šablona využívá výchozí tlačítko zavření standardu MRAID.
Chování a prvky uživatelského rozhraní
Kreativa se skládá z následujících prvků uživatelského rozhraní:
- Podklady:
- součást obrázku banneru (je vyžadována také šířka a výška),
- součást rozbaleného banneru.
- Je možné změnit barvu pozadí bannerové reklamy a rozbalené reklamy.
Název | Typ | Povinné | Popis |
---|---|---|---|
Obrázkový soubor banneru | Soubor | Ano | Obrázek, který se zobrazí v bannerové reklamě. |
Výška obrázku banneru | Číslo | Ano | Výška obrázku banneru. |
Šířka obrázku banneru | Číslo | Ano | Šířka obrázku banneru. |
Barva pozadí | Text | Ano | Barva pozadí místa obsazeného obrázkem banneru. |
Cílová adresa URL | URL | Ano | Adresa URL, na kterou bude uživatel přesměrován, když klikne na rozbalenou reklamu. |
Soubor rozbaleného obrázku | Soubor | Ano | Obrázek, který se zobrazí, když uživatel na banner klikne. |
Výška rozbaleného obrázku | Číslo | Ano | Výška rozbaleného obrázku. |
Šířka rozbaleného obrázku | Číslo | Ano | Šířka rozbaleného obrázku. |
<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<head>
<script type="text/javascript" src="mraid.js"></script>
</head>
<body>
<div id="normal" style="display:none; margin:auto;top:0px;text-align:center">
<a onClick="expand();">
<img width="[%BannerImageWidth%]" height="[%BannerImageHeight%]" src="[%BannerImageFile%]" />
</a>
</div>
<div id="expanded" style="display:none;top:0px;text-align:center">
<a onClick="openURL()">
<img width="[%ExpandedImageWidth%]" height="[%ExpandedImageHeight%]" src="[%ExpandedImageFile%]" />
</a>
</div>
<script>
<!--
function openURL() {
mraid.open("%%CLICK_URL_ESC%%[%ClickThroughURL%]");
}
// Change background color if present
function changeBodyElementStyle() {
if ("[%BackgroundColor%]") {
var bodyElement = document.body;
bodyElement.style.backgroundColor = "[%BackgroundColor%]";
}
}
// Check whether MRAID is ready by adding event listener
function checkIfReady(){
if(mraid.getState() == 'loading'){
mraid.addEventListener("ready", mraidIsReady);
} else{
showMyAd();
}
}
// Once MRAID is ready, it does not need to listen to the ready event anymore
function mraidIsReady(){
mraid.removeEventListener("ready", mraidIsReady);
showMyAd();
}
function showMyAd(){
// Displays the advert
var advertElement = document.getElementById("normal");
advertElement.style.display = "inline";
// Add event listener to detect whether to expand or not
mraid.addEventListener("stateChange",updateAd);
// Change background color of the expanded advert
var expandedDiv = document.getElementById("expanded");
if ("[%BackgroundColor%]") {
expandedDiv.style.backgroundColor = "[%BackgroundColor%]";
}
}
function expand() {
if(mraid.getVersion()=="2.0"){
mraid.expand();
return false;
}
else {
return true;
}
}
// updateAd is called when mraid changes state
// Calls toggleLayer to expand/ reduce ad size
function updateAd(state){
if (state == "expanded"){
toggleLayer('normal', 'expanded');
}else if(state == "default"){
toggleLayer('expanded', 'normal');
}
}
// Goes to the other state (either expands or banner)
function toggleLayer(fromLayer, toLayer){
var fromLayerElem = document.getElementById(fromLayer);
fromLayerElem.style.display = 'none';
var toLayerElem = document.getElementById(toLayer);
toLayerElem.style.display = "block";
}
changeBodyElementStyle();
checkIfReady();
//-->
</script>
</body>
</html>
Název testovací reklamní jednotky: ali_expandDefaultClose
Jestliže chcete vsunutou reklamu po určité době zavřít:
- Vložte do kreativy kód, který vsunutou reklamu po uplynutí určité doby zavře. Při tomto přístupu můžete jako šablonu použít následující kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<script type="text/javascript" src="https://www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script>
<!--
function
_admStartCountDown(){setTimeout('admob.opener.close()',parseInt('[%displayTime%]')*1000)}
function
_admOnload(){if(admob.opener.isOverlayShowing()){_admStartCountDown()}else{admob.events.addEventListener('onshow',
_admStartCountDown)}}
if(window.addEventListener){window.addEventListener("load",_admOnload,false)}else{window.attachEvent("onload",_admOnload)}
//-->
</script>
</head>
<body>
[Your_AdCode_Goes_Here]
</body>
</html>
Pomocí funkce admob.opener.openOverlay()
můžete otevřít překryvný prohlížeč na celou obrazovku, který bude animován z dolního okraje obrazovky. Tento prohlížeč nezahrnuje stavový řádek a v jeho levém horním rohu se vždy zobrazí tlačítko k zavření okna. Tato možnost je vhodná pro rozbalitelnou reklamu, u které lze kreativu na celou obrazovku hostovat na samostatné stránce.
Níže naleznete ukázku kódu pro banner, u kterého lze jednotku na celou obrazovku načíst do překryvného okna prohlížeče. Následující zástupné prvky je třeba nahradit vlastními hodnotami. Pokud je pro vaši síť k dispozici, můžete ukázkový kód použít k vytvoření šablony kreativ.
[BANNER_UNIT]
: URL bannerové kreativy.[WIDTH]
: Šířka bannerové kreativy.[HEIGHT]
: Výška bannerové kreativy.[FULLSCREEN_UNIT]
: URL kreativy na celou obrazovku. Poznámka: Jednotka na celou obrazovku by měla zahrnovat javascriptový kód, který analyzuje cílovou adresu URL a při obdržení akce kliknutí přesměruje uživatele na vstupní stránku. Další podrobnosti naleznete v tématu Práce s koncovou adresou URL z jednotky na celou obrazovku.[DESTINATION_URL]
: URL cílové stránky.[FALLBACK_URL]
: Záložní koncová adresa URL, která se použije v případě, že se funkce jazyka JavaScript nespustí.[ORIENTATION]
: Podporovaná orientace pro koncovou adresu URL. (Pro orientaci na výšku zadejte „p“, pro orientaci na šířku zadejte „l“. Pokud tuto hodnotu neuvedete, budou povoleny obě orientace.)
Zde je ukázka kódu kreativy:
<!DOCTYPE html>
<head>
<meta name="viewport"
content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<script type="text/javascript" src="https://www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
</head>
<body>
<a href="[FALLBACK_CLICKURL]"
onClick="admob.opener.openOverlay('%%CLICK_URL_ESC%%[FULLSCREEN_UNIT]?destination=[DESTINATION_URL]',
'[ORIENTATION]'); return false;"><img border="0"
src="[BANNER_UNIT]" width="[WIDTH]" height="[HEIGHT]"></a>
</body>
</html>
Práce s koncovou adresou URL z jednotky na celou obrazovku
Funkce admob.opener.openOverlay()
neumožňuje určit koncovou URL obsahu HTML.
Za předpokladu, že jste koncovou adresu URL při určování jednotky na celou obrazovku předali ve formě páru klíč–hodnota (například „https://odkaz.na.jednotku.na.celou.stranku?destination=https://cilova.adresa.url
“), můžete napsat funkci jazyka JavaScript a zahrnout fragment kódu HTML, který zachytí kliknutí a přesměruje uživatele na cílovou stránku.
Zde je zdroj vzorové stránky:
<!DOCTYPE html>
<head>
<meta name="viewport"
content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<script type="text/javascript" src="https://www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script type="text/javascript">
function destinationUrl() {
// Get current url after ?
var destinationUrl = window.location.search;
// Strip off the leading '?'
destinationUrl = destinationUrl.substring(1);
// Parse destination=url key-value pair
var kvPair = destinationUrl.split("=");
var key = kvPair[0]; // key: destination
var value = kvPair[1]; // value: url
var url = decodeURIComponent(value);
// Open destination inside overlay
window.location = url;
// Open destination in an external browser
// admob.opener.openUrl(url, true);
}
</script>
</head>
<body>
<div style="position:relative;">
<!-- Load content source into an iframe -->
<iframe src="https://creative.admob.com/t1/bestBuy/tradeinJul/gi/"
align="middle" frameborder=0 width=320 height=480 marginheight=0 marginwidth=0 scrolling=no></iframe>
<!-- Create a clickable area -->
<a href="#" onClick="destinationUrl(); return false;" style="position:absolute; top:0; left:0;
display:inline-block; width:320px; height:480px; z-index:5;"></a>
</div>
</body>
</html>
Kompatibilita se standardem MRAID
Sada SDK pro mobilní reklamy Google podporuje standard MRAID (Mobile Rich Media Ad Interface Definitions) organizace IAB pro inzerci v mobilních aplikacích. Řádkovou položku můžete nastavit jako MRAID verze 1 nebo MRAID verze 2 pomocí nastavení cílení řádkové položky v sekci Přidat cílení a Funkce zařízení.
Požadavky rozhraní MRAID:
- MRAID verze 2 vyžaduje v případě Androidu služby Google Play verze 7.8 nebo vyšší a v případě systému iOS sadu SDK pro mobilní reklamy Google verze 7.4.0 nebo vyšší.
- MRAID verze 3 vyžaduje v případě Androidu služby Google Play verze 15.0.0. nebo vyšší a v případě systému iOS sadu SDK pro mobilní reklamy Google verze 7.30.0 nebo vyšší.
K použití funkcí MRAID musíte do kreativy importovat soubor mraid.js
. Do kreativy vložte značku <script src="mraid.js">
. Sada SDK pro mobilní reklamy Google je kompatibilní se standardem MRAID, takže tento kód v kreativě vyhledá a nahradí jej adresou URL odkazující na implementaci standardu MRAID. Stejně fungují i jiné sady SDK s podporou standardu MRAID, použijí však jiné adresy URL.
Volitelně můžete ve stejné kreativě zahrnout knihovny MRAID i funkce sady SDK pro mobilní reklamy Google.
mraid.resize()
a další podobné funkce se projeví až po kliknutí na reklamu. Bráníme tak škodlivým kreativám v automatické změně velikosti a obsazení celé obrazovky.