Reklamy pełnoekranowe zasłaniają interfejs aplikacji, dopóki użytkownik ich nie zamknie. Zazwyczaj wyświetlają się w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami w grze. Gdy w aplikacji wyświetli się reklama pełnoekranowa, użytkownik może ją kliknąć i przejść do miejsca docelowego lub zamknąć aplikację 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.
- Zapoznaj się z przewodnikiem dla początkujących.
Zawsze korzystaj z reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie produkcyjnych reklam. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
Najłatwiejszym sposobem wczytania reklam testowych jest użycie dedykowanego testowego identyfikatora jednostki reklamowej dla pełnoekranowych reklam w 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ć we własnych aplikacjach podczas 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 w pakiecie SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.
Implementacja
Główne etapy integracji reklam pełnoekranowych:
- Wczytaj reklamę.
- Zarejestruj się na wywołania zwrotne.
- Wyświetl reklamę i obsługuje zdarzenie nagrody.
Wczytywanie reklamy
Reklamę można wczytać za pomocą statycznej metody loadWithAdUnitID:request:completionHandler:
w klasie GADInterstitialAd
. Metoda wczytywania wymaga identyfikatora jednostki reklamowej, obiektu GADRequest
i modułu obsługi uzupełniania, który jest wywoływany w przypadku udanego lub nieudanego wczytywania reklamy. Wczytany obiekt GADInterstitialAd
jest dostarczany jako parametr w module obsługi uzupełniania. Poniższy przykład pokazuje, jak wczytać obiekt GADInterstitialAd
w klasie ViewController
.
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var interstitial: GADInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
interstitial = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
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 prezentacji, zaimplementuj protokół GADFullScreenContentDelegate
i przypisz go do właściwości fullScreenContentDelegate
zwróconej reklamy. Protokół GADFullScreenContentDelegate
obsługuje wywołania zwrotne, gdy reklama wyświetla się prawidłowo lub nie udało się wyświetlić, i kiedy ją zamyka. Ten kod pokazuje, jak wdrożyć protokół i przypisać go do reklamy:
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController, GADFullScreenContentDelegate {
private var interstitial: GADInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
interstitial = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
interstitial?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
/// 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
@import GoogleMobileAds;
@import UIKit;
@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 pokazać ponownie. Zgodnie ze sprawdzoną metodą ładuj kolejną reklamę pełnoekranową w metodzie adDidDismissFullScreenContent:
w dniu GADFullScreenContentDelegate
, tak aby następna reklama pełnoekranowa zaczęła się wczytywać zaraz po zamknięciu poprzedniej.
Wyświetl reklamę
Reklamy pełnoekranowe powinny się wyświetlać podczas naturalnych przerw w korzystaniu z aplikacji.
Dobrym przykładem są między poziomami gry lub po wykonaniu przez użytkownika zadania.
Oto przykład, jak to zrobić w jednej z metod działań w UIViewController
:
Swift
guard let interstitial = interstitial else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)
Objective-C
if (self.interstitial) {
// The UIViewController parameter is nullable.
[self.interstitial presentFromRootViewController:nil];
} else {
NSLog(@"Ad wasn't ready");
}
Sprawdzone metody
- Zastanów się, czy reklamy pełnoekranowe to odpowiedni typ reklamy dla Twojej aplikacji.
- Reklamy pełnoekranowe sprawdzają się najlepiej w aplikacjach z naturalnymi punktami przejściowymi. Może to być na przykład zakończenie zadania w aplikacji, np. udostępnienie obrazu lub ukończenie poziomu gry. Ponieważ użytkownik spodziewa się przerwy w działaniu, może wyświetlić reklamę pełnoekranową bez zakłócania wrażeń użytkownika. Zastanów się, w którym momencie procesu w aplikacji będą się wyświetlać reklamy pełnoekranowe i jak użytkownik na nie zareaguje.
- Pamiętaj, aby wstrzymać tę czynność podczas wyświetlania reklamy pełnoekranowej.
- Dostępnych jest wiele różnych typów reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Gdy aplikacja wyświetla reklamę pełnoekranową, nie może też korzystać z niektórych zasobów, by reklama mogła z nich korzystać. Na przykład gdy wywołujesz wywołanie reklamy pełnoekranowej, pamiętaj, by wstrzymać odtwarzanie dźwięku generowanego przez aplikację. Możesz wznowić odtwarzanie dźwięków w module obsługi zdarzeń
adDidDismissFullScreenContent:
, który będzie wywoływany, gdy użytkownik zakończy interakcję z reklamą. Rozważ też tymczasowe przerwanie wykonywania bardziej intensywnych zadań obliczeniowych (np. pętli gry) na czas wyświetlania reklamy. Dzięki temu użytkownik nie zobaczy powolnej lub nieresponującej grafiki albo zacinania się filmów. - Zadbaj o odpowiedni czas wczytywania.
- Równie ważne jest, aby wyświetlać reklamy pełnoekranowe w odpowiednim czasie, ale należy też upewnić się, że użytkownik nie będzie musiał czekać, aż się załadują. Wcześniejsze wczytanie reklamy przed jej wyświetleniem może mieć pewność, że w aplikacji będzie w pełni wczytana reklama pełnoekranowa w chwili wyświetlenia.
- Nie zasypuj reklam 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 obniżyć współczynniki klikalności. Zadbaj o to, aby użytkownicy nie przerywali Ci korzystania z aplikacji tak często, że nie będą mogli dalej z niej korzystać.
- Nie używaj wywołania zwrotnego ukończenia wczytywania do wyświetlenia reklamy pełnoekranowej.
- Może to negatywnie wpłynąć na wrażenia użytkowników. Zamiast tego trzeba będzie wstępnie
załadować reklamę, zanim trzeba będzie ją wyświetlić. Następnie sprawdź metodę
canPresentFromRootViewController:error:
wGADInterstitialAd
, by dowiedzieć się, czy jest ona gotowa do wyświetlenia.
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.