Pakiet SDK do reklam mobilnych Google obsługuje teraz w wersji beta standard MRAID v3, który bazuje na dotychczasowej obsłudze standardu MRAID v2. Dzięki temu reklamodawcy mogą wyświetlać kreacje MRAID v3 u wydawców korzystających z Ad Managera. Ten przewodnik wyjaśnia szczegóły implementacji MRAID, które były niejasne i mogły być interpretowane na różne sposoby w specyfikacji MRAID v3. Jest on przeznaczony dla autorów kreacji MRAID v3.
Wymagania wstępne
Wydawcy muszą korzystać z:
Przydatne wprowadzenia
Jeśli nie znasz standardu MRAID, więcej informacji znajdziesz na stronie IAB poświęconej MRAID. Możesz też pobrać dokument MRAID v3 Definitions (Definicje MRAID w wersji 3), który zawiera szczegółowe informacje o wszystkich parametrach omówionych poniżej, a także post na blogu IAB dotyczący MRAID w wersji 3.
Szczegóły implementacji MRAID v3 (beta)
Widoczność – zdarzenie exposureChange
To zdarzenie jest obsługiwane i zalecamy używanie detektora nowego zdarzenia exposureChange zamiast wycofanego zdarzenia viewableChange.
Metoda mraid.isViewable() również została wycofana. Te wycofane metody są jednak nadal obsługiwane, aby zachować zgodność wsteczną.
Definicja zdarzenia exposureChange jest wysyłana za każdym razem, gdy zmienia się widok reklamy. Pakiet SDK ma mechanizm odpytywania, który zapobiega generowaniu zbyt wielu zdarzeń.
Stan początkowy jest wysyłany asynchronicznie po zarejestrowaniu detektora przez reklamę.
Wywołanie zwrotne zawiera parametr exposed_percentage, który jest liczbą zmiennoprzecinkową z zakresu od 0.0 do 100.0.
Przykłady użycia znajdziesz w specyfikacji MRAID w wersji 3.
Wykrywanie i inicjowanie MRAID oraz atrybuty MRAID_ENV
Pakiet SDK jest zgodny z protokołem inicjowania określonym w specyfikacji MRAID w wersji 3.
W obiekcie MRAID_ENV pakiet SDK nie wysyła parametrów IDFA, limitAdTracking, identyfikatora aplikacji ani COPPA (które są opcjonalne). Zawiera wszystkie wymagane zmienne w obiekcie MRAID_ENV, w tym wersję MRAID, nazwę pakietu SDK i wersję pakietu SDK.
Pomiar słyszalności
Wprowadziliśmy nowe zdarzenie (audioVolumeChange), które pozwala określić, czy dźwięk jest słyszalny i kiedy zmienia się głośność.
Zdarzenie audioVolumeChange ma 1 parametr: volume_percentage.
Wartość to procent maksymalnej głośności odtwarzania dźwięku. Jest to liczba zmiennoprzecinkowa z zakresu od 0.0 do 100.0 (0.0, gdy odtwarzanie jest niedozwolone) lub null, jeśli nie można określić głośności.
Przykłady użycia znajdziesz w specyfikacji MRAID w wersji 3.
mraid.getLocation()
Ponieważ funkcja mraid.getLocation() nie jest obsługiwana, zawsze zwraca wartość -1.
mraid.unload()
Tę metodę można wywołać w dowolnym momencie, a pakiet SDK reaguje na nią, odrzucając reklamę, zwalniając zasoby, a następnie usuwając komponent WebView lub zastępując go innym dokumentem lub nową reklamą.
Gdy kreacja wywołuje unload(), warstwa natywna reaguje w następujący sposób w przypadku różnych typów kreacji:
| Typ | Działanie unload() |
|---|---|
| Banner | Utwórz nowe żądanie reklamy z tymi samymi parametrami co bieżąca reklama. |
| Reklama pełnoekranowa | Zamknij reklamę pełnoekranową. |
VPAID (Video Player-Ad Interface Definition)
Pakiet SDK do reklam mobilnych Google nie obsługuje VPAID. mraid.supports('vpaid') zwraca wartość „false” („fałsz”).
mraid.useCustomClose()
W zależności od formatu i typu kreacji opcja mraid.useCustomClose() może nie być obsługiwana.
Szczegóły implementacji MRAID v2
mraid.getVersion()
mraid.getVersion() nie zwraca 2.0, dopóki kreacja się nie wczyta. Nie sprawdzaj wersji MRAID, gdy mraid.getState() zwraca loading.
mraid.resize()
Po wywołaniu metody mraid.resize() pierwotny baner jest zastępowany zrzutem ekranu banera. Jest to widoczne, jeśli reklama o zmienionym rozmiarze nie pokrywa pierwotnej przestrzeni reklamowej.
Reklamy o zmienionym rozmiarze nie są też ograniczone pierwotną ramką banera. Jeśli baner jest umieszczony w widoku przewijania, reklama o zmienionym rozmiarze nie przewija się razem z banerem.
mraid.setResizeProperties()
Wszystkie wywołania mraid.setResizeProperties() powinny zawierać pełną listę wymaganych właściwości. Jeśli właściwości zmiany rozmiaru są nieprawidłowe, zostaną przywrócone ich wartości domyślne, a wszystkie kolejne wywołania metody mraid.resize() będą się kończyć niepowodzeniem, dopóki nie zostanie ponownie wywołana metoda mraid.setResizeProperties() z prawidłowymi parametrami.
mraid.getMaxSize()
Wartość mraid.getMaxSize() powinna być używana tylko do określania maksymalnego rozmiaru reklam po zmianie rozmiaru. Aby określić rozmiar reklamy rozwijanej, użyj metody mraid.getScreenSize().
mraid.setOrientationProperties()
Jeśli wywołasz mraid.setOrientationProperties() z właściwością allowOrientationChange ustawioną na true, ustawienie właściwości forceOrientation nie będzie miało żadnego efektu.
Kreacje, które mają wymuszać orientację, powinny mieć ustawioną wartość allowOrientationChange na false.
mraid.isViewable()
Jeśli widok zasłania reklamę, która w innym przypadku byłaby widoczna, mraid.isViewable() nadal zwróci wartość true. Treści aplikacji nie powinny zasłaniać widocznych reklam.
mraid.getCurrentPosition()
Gdy dwuczęściowa reklama rozwijana jest w stanie rozwiniętym, wywołanie funkcji mraid.getCurrentPosition() w pierwszej części zwraca rozmiar ekranu.
mraid.storePicture()
Aby aplikacja obsługiwała mraid.storePicture(), musi mieć uprawnienie android.permission.WRITE_EXTERNAL_STORAGE.