Das IMA SDK für iOS enthält das
Open Measurement (OM) SDK,
einen Branchenstandard, der vom
Interactive Advertising Bureau (IAB) entwickelt wurde, um die Sichtbarkeitsmessung und ‑verifizierung durch Drittanbieter zu ermöglichen. Wenn Sie das IMA SDK für
iOS verwenden, parst das enthaltene OM SDK automatisch
das <AdVerifications> Tag in VAST-Anzeigen-Tags und sendet Sichtbarkeitsdaten über die OMID API an
die angegebenen Messanbieter. Das IMA SDK unterstützt das OM SDK v1.6, GAM-Erweiterungen für Anzeigenverifizierungen in VAST 2+ und den Knoten „AdVerifications“ in VAST 4+.Beachten Sie Folgendes, wenn Sie Open Measurement nutzen möchten:
Sie benötigen Version 3.9.0 oder höher des IMA SDK für iOS.
Wenn Sie VAST 4.1 oder höher verwenden, müssen Anzeigen so konfiguriert sein, dass
<AdVerifications>gemäß der VAST 4.1-Spezifikation in ihrem VAST-Tag ausgeliefert wird. Andernfalls sollte<Extension type="AdVerifications">verwendet werden.Decken Sie
AdDisplayContainernicht mit Overlays ab (transparent oder undurchsichtig), da diese vom OM SDK als Hindernisse gekennzeichnet werden und die Sichtbarkeit verringern.
Vorbereitung
- Wenn Ihre Anzeigen über Ad Manager ausgeliefert werden, konfigurieren Sie einen Anbieter für die Sichtbarkeitsmessung für Ihr Ad Manager-Netzwerk und weisen Sie diesen Anbieter Ihrer Werbebuchung zu.
Test
Wenn Sie Open Measurement mit dem IMA SDK testen möchten, verwenden Sie eine Version des IMA SDK, die das OM SDK unterstützt, sowie ein Test-Anzeigen-Tag.
In Ihrer VAST-Antwort sollte <AdVerifications> zurückgegeben werden.
Hindernisse durch Video-Overlays registrieren
Video-Overlays wie Pausen-Buttons oder Fortschrittsbalken liefern Nutzern wichtige Informationen zur Wiedergabe und ermöglichen ihnen, Aktionen auszuführen. Auf Mobilgeräten ist es üblich, große, touchfreundliche Steuerelemente über dem Media-Element zu rendern, da Nutzer häufig ungenau tippen und bestimmte Erwartungen haben. Diese Steuerelemente werden in der Regel eingeblendet, wenn ein Nutzer tippt, und sind die meiste Zeit der Wiedergabe nicht sichtbar.
Ein Beispiel für Video-Overlays sehen Sie im folgenden Bild der YouTube App, auf dem Steuerelemente gerendert werden:

Wenn das IMA SDK verwendet wird, implementieren die meisten Publisher diese Steuerelemente, indem sie eine Ansicht über dem Anzeigen-Container hinzufügen, die größtenteils transparent ist. In der Regel sind die Steuerelemente untergeordnete Elemente dieser Ansicht, die den zugrunde liegenden Videoplayer vollständig verdeckt. Dieses transparente Overlay wird verwendet, um Tippereignisse zu erfassen und die Steuerelemente dann für Nutzer zu rendern, wenn sie tippen.
Wenn die Sichtbarkeit von Anzeigen mit dem Open Measurement SDK berechnet wird, werden alle Ansichten, die das Media-Element überlagern, als Hindernisse betrachtet und verringern die Sichtbarkeitsrate. Wenn ein transparentes Tipp-Overlay über dem gesamten Anzeigen-Container liegt, kann das Inventar als vollständig nicht sichtbar deklariert werden.
Das Open Measurement SDK sieht vor, dass Video-Overlays als „freundliche“ Hindernisse betrachtet werden, die für die Nutzererfahrung unerlässlich sind. Sobald diese Steuerelemente als freundlich registriert wurden, werden sie bei der Messung der Sichtbarkeit von Anzeigen nicht berücksichtigt.
Mit Unterstützung von IAB und MRC führt das IMA SDK eine API ein, mit der diese Overlays beim Open Measurement SDK registriert werden können. Diese Steuerelemente müssen vollständig transparente Overlays oder kleine Buttons sein. Alle anderen Ansichten, die nicht mit Video-Overlays zusammenhängen, dürfen nicht registriert werden.
| Registrieren | Nicht registrieren |
|---|---|
|
|
Der folgende Beispielcode zeigt, wie Sie Video-Overlays im Anzeigen-Container registrieren:
Objective-C
- (void)registerObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
UIView *transparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
IMAFriendlyObstruction *overlayObstruction =
[[IMAFriendlyObstruction alloc] initWithView:transparentTapOverlay
purpose:IMAFriendlyObstructionPurposeNotVisible
detailedReason:@"This overlay is transparent"];
IMAFriendlyObstruction *pauseButtonObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myPauseButton
purpose:IMAFriendlyObstructionPurposeMediaControls
detailedReason:@"This is the video player pause button"];
[displayContainer registerFriendlyObstruction:overlayObstruction];
[displayContainer registerFriendlyObstruction:pauseButtonObstruction];
}
Swift
func registerObstructions(displayContainer: IMAAdDisplayContainer) {
let transparentTapOverlay = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 250))
let myPauseButton = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 10))
let overlayObstruction = IMAFriendlyObstruction(
view: transparentTapOverlay,
purpose: .notVisible,
detailedReason: "This overlay is transparent")
let pauseButtonObstruction = IMAFriendlyObstruction(
view: myPauseButton,
purpose: .mediaControls,
detailedReason: "This is the video player pause button")
displayContainer.register(overlayObstruction)
displayContainer.register(pauseButtonObstruction)
}
Wenn Sie diese Hindernisse nicht mehr benötigen, können Sie sie mit der folgenden Methode entfernen:
Objective-C
- (void)unregisterObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
// This removes all previously registered friendly obstructions from the container.
[displayContainer unregisterAllFriendlyObstructions];
}
Swift
func unregisterObstructions(displayContainer: IMAAdDisplayContainer) {
// This removes all previously registered friendly obstructions from the container.
displayContainer.unregisterAllFriendlyObstructions()
}