Reklamy pełnoekranowe zakrywają interfejs aplikacji do chwili zamknięcia przez użytkownika. Reklamy wyświetlają się zwykle w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami w grze. Gdy aplikacja wyświetla reklamę pełnoekranową, użytkownik może ją kliknąć i przejść do miejsca docelowego, lub zamknąć ją i wrócić do aplikacji. Studium przypadku.
Z tego przewodnika dowiesz się, jak integrować reklamy pełnoekranowe z aplikacjami na iOS.
Wymagania wstępne
- Pakiet SDK do reklam mobilnych Google w wersji 8.0.0 lub nowszej.
- Wykonaj czynności opisane w przewodniku dla początkujących.
Zawsze testuj za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie aktywnych wersji produkcyjnej. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie dedykowanego identyfikatora testowej jednostki reklamowej na potrzeby pełnoekranowych reklam na iOS:
ca-app-pub-3940256099942544/4411468910
Został on specjalnie skonfigurowany tak, aby zwracał reklamy testowe w przypadku każdego żądania. Możesz go używać w swoich aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, by przed opublikowaniem aplikacji zastąpić go identyfikatorem jednostki reklamowej.
Więcej informacji o działaniu reklam testowych z pakietem SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.
Implementacja
Aby zintegrować reklamy pełnoekranowe:
- Wczytaj reklamę.
- Zarejestruj się na wywołania zwrotne.
- Wyświetla reklamę i obsługuje zdarzenie nagrody.
Wczytywanie reklamy
Wczytywanie reklamy odbywa się za pomocą statycznej metody loadWithAdUnitID:request:completionHandler:
w klasie GADInterstitialAd
. Metoda wczytywania wymaga identyfikatora jednostki reklamowej, obiektu GADRequest
oraz modułu obsługi uzupełniania, który jest wywoływany po pomyślnym lub nieudanym wczytaniu reklamy. Załadowany obiekt GADInterstitialAd
jest podany jako parametr w module obsługi realizacji. W przykładzie poniżej pokazujemy, jak wczytać GADInterstitialAd
w klasie ViewController
.
Swift
import GoogleMobileAds import UIKit class ViewController: UIViewController { private var interstitial: GADInterstitialAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: request, completionHandler: { [self] ad, error in if let error = error { print("Failed to load interstitial ad with error: \(error.localizedDescription)") return } interstitial = ad } ) } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController () @property(nonatomic, strong) GADInterstitialAd *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]); return; } self.interstitial = ad; }]; }
Zarejestruj się na wywołania zwrotne
Aby otrzymywać powiadomienia o zdarzeniach związanych z prezentacją, musisz wdrożyć protokół GADFullScreenContentDelegate
i przypisać go do właściwości fullScreenContentDelegate
zwróconej reklamy. Protokół GADFullScreenContentDelegate
obsługuje wywołania zwrotne w przypadku udanego lub nieudanego przedstawienia reklamy oraz jej odrzucenia. Poniższy kod pokazuje, jak wdrożyć protokół i przypisać go do reklamy:
Swift
class ViewController: UIViewController, GADFullScreenContentDelegate { private var interstitial: GADInterstitialAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: request, completionHandler: { [self] ad, error in if let error = error { print("Failed to load interstitial ad with error: \(error.localizedDescription)") return } interstitial = ad interstitial?.fullScreenContentDelegate = self } ) } /// Tells the delegate that the ad failed to present full screen content. func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) { print("Ad did fail to present full screen content.") } /// Tells the delegate that the ad will present full screen content. func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad will present full screen content.") } /// Tells the delegate that the ad dismissed full screen content. func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad did dismiss full screen content.") } }
Objective-C
@interface ViewController ()<GADFullScreenContentDelegate> @property(nonatomic, strong) GADInterstitialAd *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]); return; } self.interstitial = ad; self.interstitial.fullScreenContentDelegate = self; }]; } /// Tells the delegate that the ad failed to present full screen content. - (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad didFailToPresentFullScreenContentWithError:(nonnull NSError *)error { NSLog(@"Ad did fail to present full screen content."); } /// Tells the delegate that the ad will present full screen content. - (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad { NSLog(@"Ad will present full screen content."); } /// Tells the delegate that the ad dismissed full screen content. - (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad { NSLog(@"Ad did dismiss full screen content."); }
GADInterstitialAd
to obiekt jednorazowy. Oznacza to, że raz wyświetlonej reklamy pełnoekranowej nie można wyświetlić ponownie. Sprawdzoną metodą jest wczytanie kolejnej reklamy pełnoekranowej za pomocą metody adDidDismissFullScreenContent:
w metodzie GADFullScreenContentDelegate
, dzięki czemu następna reklama pełnoekranowa zacznie się ładować zaraz po zamknięciu poprzedniej.
Wyświetl reklamę
Reklamy pełnoekranowe powinny być wyświetlane podczas naturalnych przerw w korzystaniu z aplikacji.
Dobrym przykładem są przejścia między poziomami gry lub po wykonaniu przez użytkownika zadania.
Oto przykład, jak to zrobić w ramach jednej z metod działań w komponencie UIViewController
:
Swift
@IBAction func doSomething(_ sender: Any) { if interstitial != nil { interstitial.present(fromRootViewController: self) } else { print("Ad wasn't ready") } }
Objective-C
- (IBAction)doSomething:(id)sender { ... if (self.interstitial) { [self.interstitial presentFromRootViewController:self]; } else { NSLog(@"Ad wasn't ready"); } }
Sprawdzone metody
- Zastanów się, czy reklamy pełnoekranowe to odpowiedni typ reklamy do Twojej aplikacji.
- Reklamy pełnoekranowe działają najlepiej w aplikacjach z naturalnymi punktami przejścia. Może to być na przykład zakończenie zadania w aplikacji, np. udostępnienie obrazu czy ukończenie poziomu gry. Użytkownik spodziewa się przerwy w działaniu, dlatego łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania wrażeń użytkownika. Zastanów się, na którym etapie przepływu pracy w aplikacji będziesz wyświetlać reklamy pełnoekranowe i jaki użytkownik najprawdopodobniej zareaguje.
- Pamiętaj, aby wstrzymać działanie reklamy pełnoekranowej.
- Jest wiele różnych typów reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Ważne jest, aby aplikacja wyświetlająca
reklamę pełnoekranową zawieszała zasoby reklamowe, które mogą z nich korzystać. Jeśli na przykład wywołujesz reklamę pełnoekranową, wstrzymaj odtwarzanie dźwięku generowanego przez aplikację. Możesz wznowić odtwarzanie dźwięków w module obsługi zdarzeń
adDidDismissFullScreenContent:
, które będzie wywoływane, gdy użytkownik zakończy interakcję z reklamą. Rozważ też tymczasowe wstrzymanie wszelkich intensywnych zadań obliczeniowych (takich jak pętla gry) na czas wyświetlania reklamy. Dzięki temu grafika nie będzie się zacinać ani spowalniać, a także nie reagować na nią. - Zapewnij odpowiedni czas wczytywania.
- Reklamy pełnoekranowe muszą się wyświetlać w odpowiednim momencie, ale też nie mogą się wyświetlać użytkownikowi. Jeśli załadujesz reklamę z wyprzedzeniem, będziesz mieć pewność, że w chwili pojawienia się reklamy pełnoekranowej będziesz mieć w aplikacji gotową w pełni załadowaną reklamę pełnoekranową.
- Nie zapełniaj użytkowników reklamami.
- Zwiększenie częstotliwości wyświetlania reklam pełnoekranowych w aplikacji może wydawać się świetnym sposobem na zwiększenie przychodów, ale może też pogorszyć wrażenia użytkowników i spadek współczynnika klikalności. Upewnij się, że użytkownicy nie przerywają pracy tak często, aby nie mogli już korzystać z Twojej aplikacji.
- Nie używaj wywołania zwrotnego zakończenia wczytywania, by wyświetlić reklamę pełnoekranową.
- Może to negatywnie wpłynąć na wygodę użytkowników. Zamiast tego wczytaj reklamę
z wyprzedzeniem, zanim będzie trzeba. Następnie sprawdź metodę
canPresentFromRootViewController:error:
naGADInterstitialAd
, aby dowiedzieć się, czy jest gotowa do wyświetlania.
Dodatkowe zasoby
Przykłady na GitHubie
- Przykład reklam pełnoekranowych: Swift | Objective-C
Samouczki wideo w garażu reklam mobilnych
Historie sukcesu
Dalsze kroki
- Utwórz własną pełnoekranową jednostkę reklamową w interfejsie AdMob.
- Dowiedz się więcej o kierowaniu reklam i wskazówkach dotyczących reklam pełnoekranowych. *. Dowiedz się więcej o prywatności użytkownika.