Interfejs Ad Placement API zawiera 2 funkcje: adBreak()
i adConfig()
, zdefiniowane w tej globalnej przestrzeni nazw. Większość argumentów to dostępne przez Ciebie funkcje, które pozwalają wykonać kluczowe kroki przygotowywania i wyświetlania reklamy:
adBreak({
type: '<type>', // The type of this placement
name: '<name>', // A descriptive name for this placement
beforeAd: () => {}, // Prepare for the ad. Mute and pause the game flow
afterAd: () => {}, // Resume the game and un-mute the sound
beforeReward: (showAdFn) => {}, // Show reward prompt (call showAdFn() if clicked)
adDismissed: () => {}, // Player dismissed the ad before completion
adViewed: () => {}, // Ad was viewed and closed
adBreakDone: (placementInfo) => {}, // Always called (if provided) even if an ad didn't show
});
adConfig({
preloadAdBreaks: 'on|auto', // Should ads always be preloaded
sound: 'on|off', // Is sound currently enabled within the game
});
Te funkcje służą do umieszczania i konfigurowania reklam w grze. Argumenty widoczne powyżej to jedyne prawidłowe argumenty, które można przekazać do tych funkcji. Różne rodzaje reklam wymagają różnych podzbiorów tych argumentów, jak opisano poniżej.
adBreak()
to kluczowa funkcja umożliwiająca wyświetlanie reklam w grze. Definiuje miejsce docelowe reklamy i przyjmuje obiekt o nazwie konfiguracja miejsca docelowego, który zawiera wszystkie elementy niezbędne do wyświetlenia reklamy.
Funkcja adBreak()
określa miejsce docelowe, w którym może się wyświetlać reklama.
To, czy reklama faktycznie się wyświetli, zależy od kilku czynników:
- Typ zadeklarowanego przez Ciebie miejsca docelowego reklamy
- Czy ta reklama jest na początku gry? Pomiędzy poziomami? Chwila, kiedy gracz wstrzymał grę?
- czy odpowiednia reklama ma wyświetlać się w przypadku obecnego gracza
- Czy ta reklama jest dla nich odpowiednia?
- Czy jest to zgodne z ustawieniami dotyczącymi prywatności i zgody użytkownika?
- Liczba reklam, które ostatnio oglądał odtwarzacz
- Ustawienia kontrolne – np. częstotliwość wyświetlania reklam ustawiona w tej grze
- wskazówką w tagu lub
- W AdSense – pamiętaj, że w AdSense będą cały czas dostępne opcje kontroli.
Rodzaj wyświetlanej reklamy zależy też od podobnych czynników.
Pamiętaj, że wywołanie adBreak()
może nie spowodować wyświetlenia reklamy. Określa po prostu miejsce, w którym może być wyświetlana reklama.
W przeciwieństwie do standardowych interfejsów API, w których kod zawsze wie, czy reklama jest dostępna, Ty decydujesz, czy chcesz ją wyświetlić. Takie podejście umożliwia interfejsowi Ad Placement API decydowanie, czy reklama jest wyświetlana w określonym miejscu docelowym. Czasami nazywane jest to „odwróceniem kontroli”.
Począwszy od tego, przenosimy nasz interfejs API do gier do tego modelu. Przede wszystkim skracamy kod, który trzeba wpisać w grze. Po drugie ułatwia ona dostarczanie miejsc docelowych zgodnych z zasadami, dbając o wygodę użytkowników. Dzięki temu możemy oferować wydawcom gier niektóre z najskuteczniejszych formatów. Poza tym proces wyraźnie rozdziela proces umieszczania reklam w grze z decyzją dotyczącą typu i liczby wyświetlanych reklam.
Chcemy dać Ci możliwość zmiany ustawień zarabiania i kontrolowania wygody użytkowników bez konieczności edytowania i publikowania nowej wersji gry. Najpierw trzeba wskazać wskazówki w tagu. W przyszłych wersjach będzie można udostępniać ustawienia bezpośrednio w interfejsach AdSense i AdMob.
Reklamy pełnoekranowe
Reklama pełnoekranowa może pojawiać się w różnych momentach w grze, np. po rozpoczęciu gry lub ukończeniu poziomu. Wstrzymuje grę, zasłania cały dokument, a gracz może kliknąć reklamę (w takim przypadku, gdy reklama wyświetla się na innej karcie przeglądarki) lub zamknąć, co pozwoli kontynuować grę.
Aby umieścić reklamę pełnoekranową, wypełnij te pola w konfiguracji miejsca docelowego:
adBreak({
type: 'start', // The type of this placement
name: 'game_started', // A descriptive name for this placement
beforeAd: beforeAd, // Prepare for the ad. Mute and pause the game flow
afterAd: afterAd, // Resume the game and un-mute the sound
adBreakDone: breakDone, // Always called (if provided) even if an ad didn't show
});
Argument type
jest wymagany. Zalecamy zawsze nazywanie miejsc docelowych. Inne wywołania zwrotne są opcjonalne.
Sekwencja wywołań
Sprawdź sekwencję wywołań reklamy pełnoekranowej.
Opis
Reklama pełnoekranowa – szczegółowa sekwencja połączeń | |
---|---|
Twoja gra H5 | Interfejs Ad Placement API |
Inicjalizacja i wstępne wczytywanie reklam | |
Uruchomiono grę | |
Dobra okazja na wyświetlenie reklamy...
|
|
Masz już reklamę, więc to dobry moment, aby ją wyświetlić... ← |
|
Gra zostanie wstrzymana, wyciszy dźwięk i będzie gotowa do wyświetlenia reklamy.
|
|
Interfejs Ad Placement API renderuje reklamę pełnoekranową. Odtwarzacz może kliknąć reklamę (wyświetla się w nowej karcie). Aby można było kontynuować grę, musi ona zamknąć reklamę. | |
Wywołanie ← afterAd() w przypadku wyświetlenia reklamy
|
|
Gra wznawia i wycisza dźwięk. | |
← adBreakDone() adBreakDone() jest zawsze wywoływane (nawet jeśli reklama nie została wyświetlona) |
|
Statystyki z dziennika gry dotyczące tego miejsca docelowego. |
Uwagi
adBreak()
to funkcja asynchroniczna, która zwraca natychmiastowy efekt.- Jeśli w miejscu docelowym nie ma reklamy, która mogłaby się wyświetlić, żadne wywołanie zwrotne
nie jest wywoływane, czyli żadne z elementów
beforeAd()
,afterAd()
. - Aby mieć pewność, że gra nie będzie uruchamiana w trakcie wyświetlania reklamy, użyj wywołania zwrotnego
beforeAd()
, aby wyciszyć dźwięk i wstrzymać grę. - Interfejs
beforeAd()
jest synchroniczny, dlatego interfejs Ad Placement API nie wyświetla reklam, dopóki nie wróci. - Uruchom ponownie grę i wyłącz wyciszenie dźwięku po otrzymaniu wywołania
afterAd()
. - Jeśli jest podany, parametr
adBreakDone()
jest zawsze wywoływany, nawet jeśli reklama nie została wyświetlona w tym miejscu docelowym. - Wywołanie
adBreak()
podczas wyświetlania innej reklamy nie powiedzie się, a w konsoli JavaScript wyświetli się ostrzeżenie.
Reklamy przed filmem
Reklama przed filmem to reklama pełnoekranowa, która pojawia się, zanim gra wczyta interfejs użytkownika. To pierwsza rzecz, jaką zobaczy gracz, gdy przechodzi do Twojej gry. Reklama przed filmem pojawia się na samym początku wczytywania strony, a gra nie jest jeszcze widoczna – typowe wywołania wstrzymania i wyciszenia gry nie są wymagane. Zamiast tego użyj wywołania zwrotnego adBreakDone()
, aby zsekwencjonować początek gry z reklamą, czyli wyrenderować interfejs i rozpocząć odtwarzanie dźwięku. Przy każdym wczytaniu strony może być wywoływana tylko jedna reklama przed filmem.
Sekwencja wywołań
Wywołanie reklamy przed filmem następuje dokładnie na początku wczytywania strony. Ponieważ Twoja gra nie wyrenderowała jeszcze swojego interfejsu, nie przesyłaj wywołań zwrotnych beforeAd()
i afterAd()
. Zamiast tego użyj wywołania zwrotnego adBreakDone()
, aby uruchomić grę po miejscu docelowym, ponieważ zostanie to zainicjowane nawet wtedy, gdy nie będzie reklamy.
Wywoływanie poniższego kodu na początku logiki gry powoduje umieszczenie reklamy przed filmem. Interfejs nie powinien być renderowany przed wywołaniem tego kodu.
// Game must not be running.
// Nothing in the game area should be clickable
adBreak({
type: ‘preroll',
adBreakDone: startGame,
})
Reklama przed filmem – szczegółowa sekwencja połączeń | |
---|---|
Twoja gra H5 | Interfejs Ad Placement API |
Rozpoczęcie inicjowania i buforowania reklam przez interfejs API | |
Aplikacja jest uruchomiona, ale nie została uruchomiona i nie wyświetla interfejsu | |
|
|
Interfejs Ad Placement API kończy inicjowanie i wczytywanie reklam. Jeśli jakaś reklama się wyświetli, zostanie wyświetlona. Odtwarzacz może kliknąć reklamę (wyświetli się w nowej karcie). Gra musi zostać zamknięta, aby można było ją rozpocząć. |
|
← |
|
Interfejs gry jest renderowany na ekranie i gracz może teraz z niego korzystać. W razie potrzeby gra może użyć obiektu |
Uwagi
- Reklama przed filmem zawsze próbuje wstępnie wczytywać reklamy:
- W przypadku reklam przed filmem wywołanie
adConfig(preloadAds: ‘on')
nie jest wymagane.
- W przypadku reklam przed filmem wywołanie
- Podobnie jak w przypadku innych miejsc docelowych reklamy, reklama przed filmem może być wyświetlana lub nie.
beforeAd()
iafterAd()
nie należy przekazywać do reklamy przed filmem.- Reklamy przed filmem wyświetlają się przed rozpoczęciem gry, więc nie musisz wstrzymywać ani wyciszać dźwięku.
- Jeśli prześlesz tag
beforeAd()
lubafterAd()
z reklamą przed filmem, wywołanie nie powiedzie się, a w konsoli JavaScript zostanie zapisany błąd.
- Reklama przed filmem automatycznie czeka na zainicjowanie i wstępne wczytanie reklam przez interfejs Ad Placement API:
- Występuje jednak limit czasu (2 s), który uniemożliwia nieograniczone czas oczekiwania na wywołanie. Dzięki temu
adBreakDone()
będzie wywoływany w odpowiednim czasie i po uruchomieniu gry. adBreakDone()
jest zawsze wywoływane, nawet gdy nie ma reklamy.
- Występuje jednak limit czasu (2 s), który uniemożliwia nieograniczone czas oczekiwania na wywołanie. Dzięki temu
- Zalecamy umieszczanie reklam przed filmem, aby wyświetlać reklamy przed rozpoczęciem gry.
- Możesz też użyć wywołania zwrotnego
onReady()
doadConfig()
jako mechanizmu sekwencjonowania logiki gry z użyciem inicjacji interfejsu API i wstępnego wczytywania reklam.
- Możesz też użyć wywołania zwrotnego
Reklamy z nagrodą
Reklama z nagrodą umożliwia nagradzanie graczy elementami w aplikacji, jeśli zechcą obejrzeć reklamę. Gdy reklamy pełnoekranowe są wyłączane, gracz widzi reklamę i może ją odrzucić. Reklamy z nagrodą są włączone. Gracz decyduje, czy i kiedy chce obejrzeć reklamę, aby otrzymać nagrodę.
W przeciwieństwie do reklam pełnoekranowych, w których odtwarzacz może w dowolnym momencie zamknąć reklamę, aby otrzymać nagrodę, użytkownik musi obejrzeć reklamę przez określony czas (który może różnić się w zależności od wyświetlanej kreacji).
Reklamy z nagrodą są opcjonalne w odtwarzaczu, dlatego wymagają większej integracji z procesem gry. Musisz udostępnić funkcje wyświetlające komunikat przypominający o przyznaniu nagrody w grze i przyznający nagrodę, jeśli użytkownik obejrzy reklamę.
Nagrody nie mogą mieć wartości poza aplikacją, nie mogą też mieć wartości pieniężnej ani łatwej wymiany, nie mogą też być sprzedawane ani wymieniane na towary i usługi. Nie można też zachęcać graczy do klikania reklam. Więcej informacji znajdziesz w wersji roboczej zasad dotyczących reklam pełnoekranowych i reklam z nagrodą.
Nagrody są opcjonalne, więc możesz dodawać je w dowolnym miejscu w grze i używać ich wraz z reklamami pełnoekranowymi. Te miejsca docelowe, podobnie jak reklamy pełnoekranowe, mają możliwości wyświetlania reklam z nagrodą. Interfejs Ad Placement API wywoła Twój kod tylko wtedy, gdy reklama z nagrodą będzie rzeczywista oferowana w danym momencie gry.
Po raz kolejny chodzi nam o to, aby umożliwić integrację gry z interfejsem Ad Placement API. Później za pomocą elementów sterujących w tagu lub w AdSense można zmienić dokładną kombinację reklam, które są aktywowane, bez konieczności ponownego kodowania i ponownego publikowania gry.
Typ miejsca docelowego z nagrodą to zawsze 'reward'
i można użyć wszystkich pól w konfiguracji miejsca docelowego.
adBreak({
type: 'reward', // The type of this placement
name: '<name>', // A descriptive name for this placement
beforeAd: () => {}, // Prepare for the ad. Mute and pause the game flow
afterAd: () => {}, // Resume the game and re-enable sound
beforeReward: (showAdFn) => {}, // Show reward prompt (call showAdFn() if clicked)
adDismissed: () => {}, // Player dismissed the ad before it finished.
adViewed: () => {}, // Player watched the ad–give them the reward.
adBreakDone: (placementInfo) => {}, // Always called (if provided) even if an ad didn't show
});
Kluczowe nowe funkcje to beforeReward()
(wyzwalacz informujący o wyświetleniu prośby o nagrodę) i adViewed()
(wywoływane, gdy odtwarzacz wyświetli reklamę), więc możesz przydzielać nagrody.
Miejsce docelowe z nagrodą możesz zdefiniować w ten sposób:
adBreak({
type: 'reward',
name: 'new_life_reward_1',
beforeAd: pauseGame,
afterAd: restartGame,
beforeReward: showRewardPrompt,
adDismissed: adDismissed,
adViewed: adViewed,
adBreakDone: breakDone,
});
Reklamy z nagrodą zaczynają się od podpowiedzi w grze, które oferują graczowi nagrodę, jeśli obejrzą reklamę.
Sekwencja wywołań reklamy z nagrodą
Opis
Reklama z nagrodą – szczegółowa sekwencja połączeń | |
---|---|
Twoja gra H5 | Interfejs Ad Placement API |
Inicjowanie i buforowanie reklam z wyprzedzeniem | |
Uruchomiono grę | |
|
|
Masz reklamę, więc zacznij wyświetlać reklamy z nagrodą. Pole ← |
|
Gra renderuje pytanie o nagrodę. To daje graczowi szansę na zdobycie nagrody za obejrzenie reklamy. Można oferować różne rodzaje nagród (np. nowe życie czy złote monety). Gracz może kliknąć potwierdzenie, odrzucić je lub po prostu zignorować. Jeśli kliknie potwierdzenie, gra zapisze rodzaj nagrody, o którą prosi, i wywoła: W przeciwnym razie, jeśli prośba o nagrodę zostanie odrzucona lub zignorowana, nic się nie stanie, dopóki nie wywołasz kolejnego wywołania |
|
|
|
← beforeAd() , |
|
Gra wstrzymuje się, wycisza dźwięk i jest gotowa do wyświetlenia reklamy
|
|
Interfejs API wyświetla reklamę. Zawiera przycisk zamykania i odliczanie czasu do końca reklamy. | |
Jeśli odtwarzacz zamknie reklamę... | |
← adDismissed() , |
|
Gracz odrzucił reklamę, a gra nie przyznaje nagrody. | |
ELSE widz ogląda reklamę do końca... | |
← adViewed() , |
|
Gracz obejrzał reklamę do końca, a gra uzyskała nagrodę. Zwykle wiąże się to z ustawieniem stanu gry, który jest ustawiany podczas ponownego uruchamiania gry na afterAd() .
|
|
Po obejrzeniu lub odrzuceniu reklamy... | |
← afterAd() jest wywoływane, gdy reklama została wyświetlona |
|
Gra wznawia i wycisza dźwięk. | |
← adBreakDone() adBreakDone() jest zawsze wywoływane (nawet jeśli reklama nie została wyświetlona) |
|
Statystyki z dziennika gry dotyczące tego miejsca docelowego. |
Uwagi
adBreak()
to funkcja asynchroniczna, która zwraca natychmiastowy efekt.- Jeśli w miejscu docelowym nie ma reklamy, która zostałaby wyświetlona, żadne wywołanie zwrotne
nie ma żadnego wywołania
beforeAd()
anibeforeReward()
. - Aby mieć pewność, że gra nie będzie uruchamiana w trakcie wyświetlania reklamy, użyj wywołania zwrotnego
beforeAd()
, aby wyciszyć dźwięk i wstrzymać grę. - Interfejs
beforeAd()
jest synchroniczny, dlatego interfejs Ad Placement API nie wyświetla reklam, dopóki nie wróci. - Uruchom ponownie grę i wyłącz wyciszenie dźwięku po otrzymaniu wywołania
afterAd()
. - Jeśli jest podany, parametr
adBreakDone()
jest zawsze wywoływany, nawet jeśli reklama nie została wyświetlona w tym miejscu docelowym. - Wywołanie
adBreak()
podczas wyświetlania innej reklamy nie powiedzie się, a w konsoli JavaScript wyświetli się ostrzeżenie.