Reklamy pełnoekranowe zajmują interfejs aplikacji, dopóki nie zostaną zamknięte przez użytkownika. Zwykle wyświetlają się one w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami gry. Gdy aplikacja wyświetla reklamę pełnoekranową, może ją kliknąć i przejść do miejsca docelowego, a następnie zamknąć ją i wrócić do aplikacji. Studium przypadku
Z tego przewodnika dowiesz się, jak zintegrować reklamy pełnoekranowe z aplikacją na iOS.
Wymagania wstępne
- Pakiet SDK do reklam mobilnych Google w wersji 8.0.0 lub nowszej.
- Skorzystaj z przewodnika dla początkujących.
Zawsze korzystaj z reklam testowych
Tworząc i testując aplikacje, korzystaj z reklam testowych, a nie z aktywnych reklam produkcyjnych. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora testowej jednostki reklamowej dla reklam pełnoekranowych na iOS:
ca-app-pub-3940256099942544/4411468910
Został on tak skonfigurowany, by zwracać reklamy testowe dla każdego żądania, i można używać go we własnych aplikacjach w zakresie kodowania, testowania i debugowania. Pamiętaj tylko, aby przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.
Więcej informacji o działaniu reklam testowych pakietu SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.
Wdrażanie
Główne kroki integracji reklam pełnoekranowych:
- Wczytaj reklamę.
- Zarejestruj się na oddzwonienie.
- wyświetlać reklamę i obsługiwać zdarzenie związane z nagrodą;
Wczytywanie reklamy
Wczytywanie reklamy odbywa się za pomocą statycznej metody loadWithAdUnitID:request:completionHandler:
w klasie GADInterstitialAd
. Metoda wczytywania wymaga identyfikatora jednostki reklamowej, obiektu GADRequest
i modułu obsługi wywołania, które jest wywoływane, gdy ładowanie reklamy się powiedzie. Wczytany obiekt GADInterstitialAd
jest przekazywany jako parametr w module obsługi ukończenia. Poniższy przykład pokazuje, 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 oddzwonienie
Aby otrzymywać powiadomienia o zdarzeniach prezentacji, musisz wdrożyć protokół GADFullScreenContentDelegate
i przypisać go do właściwości fullScreenContentDelegate
w zwróconej reklamie. Protokół GADFullScreenContentDelegate
obsługuje wywołania zwrotne w przypadku udanych lub nieudanych wyświetleń reklamy i jej odrzucenia. Ten 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 jednorazowy obiekt. Oznacza to, że po wyświetleniu reklamy pełnoekranowej nie można jej wyświetlić ponownie. Sprawdzoną metodą jest wczytanie innej reklamy pełnoekranowej w metodzie adDidDismissFullScreenContent:
w witrynie GADFullScreenContentDelegate
, dzięki czemu następna reklama pełnoekranowa zacznie się wczytywać, gdy tylko poprzednia zostanie zamknięta.
Wyświetl reklamę
Reklamy pełnoekranowe powinny wyświetlać się w naturalnych przerwach w korzystaniu z aplikacji.
Dobrym przykładem jest poziom gry lub ukończenie zadania przez użytkownika.
Oto przykład, jak to zrobić w jednej z metod działania w 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 aplikacji dla Twojej aplikacji.
- Reklamy pełnoekranowe najlepiej sprawdzają się w aplikacjach z naturalnymi punktami przejścia. Może to być na przykład zakończenie zadania w aplikacji, takie jak udostępnienie obrazu czy ukończenie poziomu gry. Użytkownik oczekuje przerwy na działanie reklamy, dlatego łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania komfortu użytkownika. Zastanów się, w którym momencie w aplikacji będziesz wyświetlać reklamy pełnoekranowe i jakie będą reakcje użytkowników.
- Pamiętaj, by wstrzymać działanie wyświetlające się reklama pełnoekranowa.
- Istnieje wiele różnych typów reklam pełnoekranowych: tekstowych, graficznych, wideo i innych. Ważne jest, aby gdy aplikacja wyświetla reklamę pełnoekranową, zawiesza też możliwość korzystania z niektórych zasobów, aby umożliwić korzystanie z tych reklam. Jeśli na przykład chcesz wywołać reklamę pełnoekranową, pamiętaj, by wstrzymać odtwarzanie dźwięku generowane przez aplikację. Odtwarzanie dźwięku możesz wznowić w module obsługi zdarzeń
adDidDismissFullScreenContent:
, który jest wywoływany, gdy użytkownik zakończy interakcję z reklamą. Możesz też tymczasowo wstrzymać intensywne zadania obliczeniowe (np. zapętlenia) w czasie wyświetlania reklamy. Dzięki temu użytkownicy nie będą zauważyć powolnej, niereagowanej grafiki ani zacinających się filmów. - Zapewnij wystarczający czas wczytywania.
- Niezwykle istotne jest, aby wyświetlać reklamy pełnoekranowe o odpowiedniej porze, tak samo jak wtedy, gdy użytkownik nie musi czekać, aż się załaduje. Wczytywanie reklamy z wyprzedzeniem przed wyświetleniem reklamy może zapewnić, że w chwili wyświetlenia jej reklamy pełnoekranowej aplikacja będzie w pełni gotowa do wyświetlenia.
- Nie zasypuj użytkowników reklamami.
- Wydaje się, że zwiększenie częstotliwości wyświetlania reklam pełnoekranowych w aplikacji może być świetnym sposobem na zwiększenie przychodów, ale może też obniżyć komfort użytkowników i obniżyć współczynniki klikalności. Zadbaj o to, aby użytkownicy nie byli zbyt często przerywani podczas korzystania z Twojej aplikacji.
- Nie używaj wywołania zwrotnego zakończenia wczytywania do pokazywania reklamy pełnoekranowej.
- Pogarsza to komfort użytkowników. Wstępnie wczytuj reklamy przed wyświetleniem. Następnie sprawdź metodę
canPresentFromRootViewController:error:
wGADInterstitialAd
, aby zobaczyć, czy jest gotowa do wyświetlania.
Dodatkowe materiały
Przykłady w usłudze GitHub
Samouczki wideo o reklamach mobilnych w garażu
Historie sukcesu
Dalsze kroki
- Utwórz reklamę pełnoekranową w interfejsie AdMob, jeśli jeszcze jej nie masz.
- Dowiedz się więcej o kierowaniu reklam i wytycznych dotyczących reklam pełnoekranowych. *. Dowiedz się więcej o prywatności użytkowników.