Möglicherweise möchten Sie Ihre In-Page-HTML-Anzeigenblöcke mit Video- oder Overlay-Anzeigenblöcken verknüpfen. Diese Beziehung zwischen zugehörigen Anzeigen-Slots wird als Master-Companion-Beziehung bezeichnet.
Mit dem IMA SDK können Sie nicht nur Master-Videoanzeigen und ‑Overlay-Anzeigen anfordern, sondern auch Companion-HTML-Anzeigen präsentieren. Diese Anzeigen werden in einer HTML-Umgebung ausgeliefert.
Companion-Anzeigen verwenden
So verwenden Sie Companion-Anzeigen:
1. Companion-Anzeigen buchen
Sie müssen zuerst die Companion-Anzeigen buchen, die mit Ihren Master-Anzeigen ausgeliefert werden sollen. Companion-Anzeigen können in Ad Manager getraffickt werden. Sie können bis zu sechs Companion-Anzeigen pro Master-Anzeige ausliefern. Wenn ein einzelner Käufer alle Anzeigen auf der Seite steuert, wird dies auch als Roadblocking bezeichnet.
2. Companion-Anzeigen anfordern
Standardmäßig sind Companion-Anzeigen für jede Anzeigenanfrage aktiviert.
3. Companion-Anzeigen im Displaynetzwerk
Es gibt zwei Möglichkeiten, Companion-Anzeigen zu rendern:
Automatisch über das Google Publisher-Tag (GPT)
Wenn Sie GPT zum Implementieren Ihrer Companion-Anzeigen verwenden, werden sie automatisch ausgeliefert, sofern auf der HTML-Seite Companion-Anzeigenflächen deklariert sind und diese Anzeigen bei der API registriert sind. Das bedeutet, dass die Div-ID in JavaScript und HTML übereinstimmen muss. GPT bietet unter anderem folgende Vorteile:
- Erkennung von Companion-Anzeigenflächen.
- Companion-Backfill über das Publisher-Netzwerk, wenn die VAST-Antwort weniger Companion-Anzeigen enthält, als definierte Slots auf der HTML-Seite verfügbar sind.
- Automatisches Ausfüllen von Companion-Anzeigen, wenn eine Videoanzeige fehlt.
- Vorab geladene Companion-Anzeigenflächen für Click-to-Play-Videoplayer.
- Automatisierte Companion-Wiedergabe, einschließlich
HTMLResource
undiFrameResource
.
Manuell über die Ad API.
Companion-Anzeigen mit Google Publisher-Tag verwenden
Mit dem Google Publisher-Tag (GPT) wird die Anzeige von HTML-Companion-Anzeigen auf Ihrer Website automatisiert. Wir empfehlen den meisten Publishern, die GPT zu verwenden. Das HTML5 SDK erkennt GPT-Flächen, wenn GPT auf der Hauptwebseite (nicht in einem IFrame) geladen wird. Weitere Informationen zur Verwendung von GPT mit dem IMA SDK finden Sie in der GPT-Dokumentation.
Wenn Sie das HTML5 SDK in einem iFrame hosten
Wenn Sie beide der folgenden Kriterien erfüllen, müssen Sie ein zusätzliches Proxyskript einfügen, damit Ihre GPT-Begleiter richtig angezeigt werden:
- Laden Sie das HTML5 SDK in einem iFrame.
- Laden Sie GPT auf der Hauptwebseite (außerhalb des iFrames).
Damit Ihre Begleiter in diesem Szenario angezeigt werden, müssen Sie das GPT-Proxyscript vor dem Laden des SDK laden:
<script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script>
Was Sie unbedingt beachten sollten:
- Im IFrame, in dem das SDK geladen wird, darf kein GPT geladen werden.
- GPT muss auf der obersten Seite und nicht in einem anderen iFrame geladen werden.
- Das Proxy-Script muss im selben Frame wie GPT geladen werden, also auf der Hauptseite.
Companion-Anzeigenflächen in HTML deklarieren
In diesem Abschnitt wird erläutert, wie Sie Companion-Anzeigen in HTML mit GPT deklarieren. Außerdem finden Sie Beispielcode für verschiedene Szenarien. Für das HTML5 SDK müssen Sie Ihrer HTML-Seite JavaScript hinzufügen und die Companion-Anzeigen-Slots deklarieren.
- Beispiel 1: Einfache Implementierung von Anzeigen-Slots
- Beispiel 2: Implementierung dynamischer Anzeigenblöcke
- Beispiel 3: Vorab geladene Anzeigenflächen
Beispiel 1: Einfache Implementierung von Anzeigen-Slots
Im folgenden Beispielcode sehen Sie, wie Sie die gpt.js
-Datei in Ihre HTML-Seite einfügen und einen Anzeigen-Slot deklarieren. Die deklarierte Anzeigenfläche hat die Größe 728 × 90 Pixel. Das GPT versucht, den Slot mit Companion-Anzeigen zu füllen, die in der VAST-Antwort zurückgegeben werden und dieser Größe entsprechen. Nachdem die Anzeigen-Slots deklariert wurden, können sie mit der Funktion googletag.display()
überall auf der Seite gerendert werden, wo sie aufgerufen wird. Da es sich bei den Slots um Companion-Slots handelt, werden Anzeigen nicht sofort ausgeliefert. Stattdessen werden sie neben der Master-Videoanzeige eingeblendet.
Hier ein Beispiel für die Implementierung:
<html>
<head>
<!-- Uncomment the line below for the HTML5 SDK caveat proxy -->
<!--<script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script>-->
<!-- HEAD part -->
<!-- Initialize the tagging library -->
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<!-- Register your companion slots -->
<script>
window.googletag = window.googletag || { cmd: [] };
googletag.cmd.push(function() {
// Supply YOUR_NETWORK and YOUR_UNIT_PATH.
googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', [728, 90], 'companionDiv')
.addService(googletag.companionAds())
.addService(googletag.pubads());
googletag.companionAds().setRefreshUnfilledSlots(true);
googletag.pubads().enableVideoAds();
googletag.enableServices();
});
</script>
</head>
<body>
<!-- BODY part -->
<!-- Declare a div where you want the companion to appear. Use
googletag.display() to make sure the ad is displayed. -->
<div id="companionDiv" style="width:728px; height:90px;">
<script>
// Using the command queue to enable asynchronous loading.
// The unit does not actually display now - it displays when
// the video player is displaying the ads.
googletag.cmd.push(function() { googletag.display('companionDiv'); });
</script>
</div>
<body>
</html>
Jetzt ausprobieren
Eine funktionierende Implementierung finden Sie im folgenden Codepen.
CodePenBeispiel 2: Implementierung dynamischer Anzeigen-Slots
Manchmal wissen Sie erst nach dem Rendern der Seiteninhalte, wie viele Anzeigenflächen Sie auf einer Seite haben. Im folgenden Beispielcode sehen Sie, wie Anzeigen-Slots während des Renderns der Seite definiert werden. Dieses Beispiel ist mit Beispiel 1 identisch, mit dem Unterschied, dass die Anzeigen-Slots dort registriert werden, wo sie tatsächlich ausgeliefert werden.
<html>
<head>
<!-- Uncomment the line below for the HTML5 SDK caveat proxy -->
<!-- <script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script> -->
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<!-- HEAD part -->
<!-- Initialize the tagging library -->
<script>
window.googletag = window.googletag || { cmd: [] };
googletag.cmd.push(function() {
googletag.companionAds().setRefreshUnfilledSlots(true);
googletag.pubads().enableVideoAds();
googletag.enableServices();
});
</script>
</head>
<body>
<!-- BODY part -->
<!-- Declare a div where you want the companion to appear. Use
googletag.display() to make sure the ad is displayed. -->
<div id="companionDiv" style="width:728px; height:90px;">
<script>
// Using the command queue to enable asynchronous loading.
// The unit does not actually display now - it displays when
// the video player is displaying the ads.
googletag.cmd.push(function() {
// Supply YOUR_NETWORK and YOUR_UNIT_PATH.
googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', [728, 90], 'companionDiv')
.addService(googletag.companionAds())
.addService(googletag.pubads());
googletag.display('companionDiv');
});
</script>
</div>
<body>
</html>
Jetzt ausprobieren
Im folgenden Code sehen Sie eine funktionierende Implementierung.
Beispiel 3: Vorab geladene Anzeigen-Slots
In bestimmten Fällen müssen Sie möglicherweise etwas auf der Anzeigenfläche präsentieren, bevor die Companion-Anzeige angefordert wird. Companion-Anzeigen werden in der Regel zusammen mit einer Videoanzeige angefordert. Diese Anfrage kann nach dem Laden der Seite erfolgen. Eine Companion-Anzeige wird beispielsweise erst geladen, nachdem der Nutzer auf ein Click-to-Play-Video geklickt hat. In diesem Fall müssen Sie eine reguläre Anzeige anfordern können, um die Anzeigenfläche zu füllen, bevor die Companion-Anzeige angefordert wird. Für diesen Anwendungsfall können Sie Standard-Webanzeigen im Companion-Slot einblenden. Achten Sie darauf, dass die Webanzeigen auf die Companion-Anzeigenflächen ausgerichtet sind. Sie können die Companion-Anzeigenflächen auf dieselbe Weise ausrichten wie Standard-Anzeigenflächen im Web.
Hier ein Beispiel für die beschriebene Implementierung:
<html>
<head>
...
<!-- Register your companion slots -->
<script>
window.googletag = window.googletag || { cmd: [] };
googletag.cmd.push(function() {
// Supply YOUR_PRELOAD_NETWORK and YOUR_PRELOAD_UNIT_PATH.
googletag.defineSlot('/YOUR_PRELOAD_NETWORK/YOUR_PRELOAD_UNIT_PATH', [728, 90], 'companionDiv')
.addService(googletag.companionAds())
.addService(googletag.pubads());
googletag.companionAds().setRefreshUnfilledSlots(true);
googletag.pubads().enableVideoAds();
googletag.enableServices();
});
</script>
</head>
...
</html>
Jetzt ausprobieren
Im folgenden Code-Pen sehen Sie eine funktionierende Implementierung.
Companion-Anzeigen mit der Ad API verwenden
In diesem Abschnitt wird beschrieben, wie Sie Companion-Anzeigen mit der Ad
API präsentieren.
Companion-Anzeigen im Displaynetzwerk
Um Companion-Anzeigen zu präsentieren, müssen Sie zuerst über eines der AdEvent
-Ereignisse, die von AdsManager
gesendet werden, eine Referenz zu einem Ad
-Objekt abrufen. Wir empfehlen, das AdEvent.STARTED
-Ereignis zu verwenden, da die Companion-Anzeigen gleichzeitig mit der Master-Anzeige ausgeliefert werden sollten.
Verwenden Sie dieses Ad
-Objekt als Nächstes, um getCompanionAds()
aufzurufen und ein Array von CompanionAd
-Objekten abzurufen. Hier haben Sie die Möglichkeit, CompanionAdSelectionSettings
anzugeben. Damit können Sie Filter für Companion-Anzeigen nach Creative-Typ, prozentualer Übereinstimmung, Ressourcentyp und Größenkriterien festlegen.
Weitere Informationen zu diesen Einstellungen finden Sie in der IMA-Dokumentation zur CompanionAdSelectionSettings
API.
Die von getCompanionAds
zurückgegebenen CompanionAd
-Objekte können jetzt verwendet werden, um die Companion-Anzeigen auf der Seite zu präsentieren. Dabei sind folgende Richtlinien zu beachten:
- Erstellen Sie auf der Seite einen Companion-Anzeigenblock
<div>
in der erforderlichen Größe. - Rufen Sie in Ihrem Event-Handler für das Ereignis
STARTED
das ObjektAd
ab, indem SiegetAd()
aufrufen. - Verwenden Sie
getCompanionAds()
, um eine Liste von Companion-Anzeigen zu erhalten, die sowohl der Größe der Companion-Anzeigenfläche als auchCompanionAdSelectionSettings
entsprechen und dieselbe Sequenznummer wie das Master-Creative haben. Creatives ohne Attribut für die Sequenz werden so behandelt, als hätten sie die Sequenznummer 0. - Rufen Sie den Inhalt aus einer
CompanionAd
-Instanz ab und legen Sie ihn als innerHTML des<div>
des Anzeigen-Slots fest.
Beispielcode
<!--Set a companion ad div in html page. -->
<div id="companion-ad-300-250" width="300" height="250"></div>
<script>
// Listen to the STARTED event.
adsManager.addEventListener(
google.ima.AdEvent.Type.STARTED,
onAdEvent);
function onAdEvent(adEvent) {
switch (adEvent.type) {
case google.ima.AdEvent.Type.STARTED:
// Get the ad from the event.
var ad = adEvent.getAd();
var selectionCriteria = new google.ima.CompanionAdSelectionSettings();
selectionCriteria.resourceType = google.ima.CompanionAdSelectionSettings.ResourceType.STATIC;
selectionCriteria.creativeType = google.ima.CompanionAdSelectionSettings.CreativeType.IMAGE;
selectionCriteria.sizeCriteria = google.ima.CompanionAdSelectionSettings.SizeCriteria.IGNORE;
// Get a list of companion ads for an ad slot size and CompanionAdSelectionSettings
var companionAds = ad.getCompanionAds(300, 250, selectionCriteria);
var companionAd = companionAds[0];
// Get HTML content from the companion ad.
var content = companionAd.getContent();
// Write the content to the companion ad slot.
var div = document.getElementById('companion-ad-300-250');
div.innerHTML = content;
break;
}
}
</script>
Companion-Anzeigen mit flüssigem Layout ausliefern
Das IMA SDK unterstützt jetzt flexible Companion-Anzeigen. Die Größe dieser Companion-Anzeigen kann an die Größe der Anzeigenfläche angepasst werden. Sie füllen die gesamte Breite des übergeordneten Div-Elements aus und passen dann ihre Höhe an den Inhalt des Companion-Elements an. Sie werden in Ad Manager mit der Fluid
-Companion-Größe festgelegt. Die folgende Abbildung zeigt, wo Sie diesen Wert festlegen können.
GPT-Begleiter für flüssige Inhalte
Wenn Sie GPT-Begleiter verwenden, können Sie einen dynamischen Companion-Slot deklarieren, indem Sie den zweiten Parameter der Methode defineSlot()
aktualisieren.
<!-- Register your companion slots -->
<script>
googletag.cmd.push(function() {
// Supply YOUR_NETWORK and YOUR_UNIT_PATH.
googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', ['fluid'], 'companionDiv')
.addService(googletag.companionAds())
.addService(googletag.pubads());
googletag.companionAds().setRefreshUnfilledSlots(true);
googletag.pubads().enableVideoAds();
googletag.enableServices();
});
</script>
Begleitende Fluid-Anzeigen-APIs
Wenn Sie die Ad API für Companion-Anzeigen verwenden, können Sie einen responsiven Companion-Slot deklarieren, indem Sie google.ima.CompanionAdSelectionSettings.SizeCriteria
auf den Wert SELECT_FLUID
aktualisieren.
<script>
...
// Get the ad from the event.
var ad = adEvent.getAd();
var selectionCriteria = new google.ima.CompanionAdSelectionSettings();
selectionCriteria.resourceType = google.ima.CompanionAdSelectionSettings.ResourceType.STATIC;
selectionCriteria.creativeType = google.ima.CompanionAdSelectionSettings.CreativeType.IMAGE;
selectionCriteria.sizeCriteria = google.ima.CompanionAdSelectionSettings.SizeCriteria.SELECT_FLUID;
// Get a list of companion ads for an ad slot size and CompanionAdSelectionSettings
// Note: Companion width and height are irrelevant when fluid size is used.
var companionAds = ad.getCompanionAds(0, 0, selectionCriteria);
var companionAd = companionAds[0];
...
}
}
</script>