Reklamy pełnoekranowe zakrywają interfejs aplikacji do momentu, zamknięte przez użytkownika. Zazwyczaj wyświetlają się w naturalnych punktach przejścia przepływu aplikacji, np. pomiędzy działaniami lub podczas przerwy między działaniami poziomów w grze. Gdy w aplikacji wyświetli się reklama pełnoekranowa, użytkownik może wybrać, może kliknąć reklamę i przejść do miejsca docelowego lub 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.
- Zapoznaj się z przewodnikiem dla początkujących.
Zawsze korzystaj z reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam, aktywne reklamy. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
Najłatwiejszym sposobem wczytania reklam testowych jest użycie naszego dedykowanego testowego identyfikatora jednostki reklamowej
dla reklam pełnoekranowych iOS:
ca-app-pub-3940256099942544/4411468910
Został on specjalnie skonfigurowany tak, aby wyświetlać reklamy testowe w odpowiedzi na każde żądanie. do wykorzystania we własnych aplikacjach przy kodowaniu, testowaniu i debugowaniu. Po prostu zrób zastąp go identyfikatorem jednostki reklamowej przed opublikowaniem aplikacji.
Więcej informacji o działaniu reklam testowych w pakiecie SDK do reklam mobilnych znajdziesz na stronie 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
Do wczytywania reklamy służy funkcja
load(adUnitID:request)
na
GADInterstitialAd
zajęcia.
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)")
}
}
}
SwiftUI
import GoogleMobileAds
class InterstitialViewModel: NSObject, GADFullScreenContentDelegate {
private var interstitialAd: GADInterstitialAd?
func loadAd() async {
do {
interstitialAd = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
interstitialAd?.fullScreenContentDelegate = self
} 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 wydarzeniach prezentacji, musisz zaimplementować
protokół GADFullScreenContentDelegate
i przypisz go do
właściwość fullScreenContentDelegate
zwróconej reklamy.
Protokół GADFullScreenContentDelegate
obsługuje wywołania zwrotne, gdy reklama
wyświetla się prawidłowo lub nieskutecznie oraz kiedy jest zamykany. Poniżej
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.")
}
}
SwiftUI
Przypisz właściwość fullScreenContentDelegate
do zwróconej reklamy:
interstitialAd?.fullScreenContentDelegate = self
Zaimplementuj protokół:
func adDidRecordImpression(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidRecordClick(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func ad(
_ ad: GADFullScreenPresentingAd,
didFailToPresentFullScreenContentWithError error: Error
) {
print("\(#function) called")
}
func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adWillDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
// Clear the interstitial ad.
interstitialAd = nil
}
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 jednorazowego użytku. Ten
co oznacza, że raz wyświetlonej reklamy pełnoekranowej nie można pokazać ponownie. Najlepszy
to wczytanie kolejnej reklamy pełnoekranowej w aplikacji
Metoda adDidDismissFullScreenContent:
na GADFullScreenContentDelegate
tak
że następna reklama pełnoekranowa
zacznie się ładować, zaraz po tym, jak poprzednia
odrzucono.
Wyświetl reklamę
Reklamy pełnoekranowe powinny się wyświetlać podczas naturalnych przerw w korzystaniu z aplikacji. Dobrym przykładem jest przechodzenie między poziomami gry lub zakończenie zadania przez użytkownika.
Swift
guard let interstitial = interstitial else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)
SwiftUI
Wykrywaj zdarzenia interfejsu w widoku, aby określić, kiedy wyświetlić reklamę.
var body: some View {
// ...
}
.onChange(of: countdownTimer.isComplete) { newValue in
showGameOverAlert = newValue
}
.alert(isPresented: $showGameOverAlert) {
Alert(
title: Text("Game Over"),
message: Text("You lasted \(countdownTimer.countdownTime) seconds"),
dismissButton: .cancel(
Text("OK"),
action: {
viewModel.showAd()
}))
Wyświetl reklamę pełnoekranową z modelu widoku:
func showAd() {
guard let interstitialAd = interstitialAd else {
return print("Ad wasn't ready.")
}
interstitialAd.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. Zakończenie zadania w aplikacji, np. udostępnienie obrazu lub ukończenie zadania poziom gry, tworzy taki punkt. Ponieważ użytkownik oczekuje przerwy wyświetlania reklamy pełnoekranowej bez zakłócania jej działania i uzyskiwanie dodatkowych informacji. Zastanów się, na których etapach pracy w aplikacji jak wyświetlają się reklamy pełnoekranowe i jak prawdopodobne jest, że użytkownik zareaguje.
- Pamiętaj, aby wstrzymać tę czynność podczas wyświetlania reklamy pełnoekranowej.
- Jest wiele różnych typów reklam pełnoekranowych: tekstowe, graficzne,
wideo i inne materiały. Upewnij się, że gdy aplikacja wyświetla
reklama pełnoekranowa wstrzymuje również korzystanie z niektórych zasobów, aby umożliwić
jak je wykorzystać. Na przykład gdy wykonujesz wywołanie dotyczące wyświetlenia
reklama pełnoekranowa, pamiętaj o wstrzymaniu wszystkich wyjść audio generowanych przez aplikację.
Możesz wznowić odtwarzanie dźwięków w
adDidDismissFullScreenContent:
moduł obsługi zdarzeń, który jest wywoływany, gdy użytkownik zakończy interakcję. z reklamą. Rozważ też tymczasowe przerwanie wykonywania intensywnej operacji obliczeniowej wykonywania zadań (np. pętli gry) podczas wyświetlania reklamy. Dzięki temu by grafika nie była powolna, nie odpowiadała ani się nie zacinała. film. - Zadbaj o odpowiedni czas wczytywania.
- Równie ważne jest wyświetlanie reklam pełnoekranowych w odpowiednim czasie, należy też upewnić się, że użytkownik nie musi i poczekaj, aż się załadują. Wczytanie reklamy z wyprzedzeniem przed rozpoczęciem jej wyświetlania by mieć pewność, że Twoja aplikacja będzie mieć w pełni wczytaną reklamę pełnoekranową przychodzi czas na ich wyświetlenie.
- Nie zasypuj reklam reklamami.
- Zwiększenie częstotliwości wyświetlania reklam pełnoekranowych w aplikacji może się wydawać świetnym sposobem na zwiększenie przychodów, ale może też pogarszać wrażenia użytkowników i niższych współczynnikach klikalności. Dopilnuj, aby użytkownicy nie zaglądali zbyt często gdy użytkownik nie może już korzystać z Twojej aplikacji.
- 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 wczytaj reklamę wcześniej
które trzeba pokazać. Następnie sprawdź metodę
canPresentFromRootViewController:error:
w aplikacjiGADInterstitialAd
, aby sprawdzić, czy usługa jest gotowa do wyświetlane.
Dodatkowe materiały
Przykłady w GitHubie
Zobacz przykłady pełnych reklam pełnoekranowych w wybranym przez Ciebie języku:
Samouczki wideo Internetowe Rewolucje
Historie sukcesu
Dalsze kroki
- Jeśli jeszcze jej nie masz, utwórz własną pełnoekranową jednostkę reklamową w Interfejs AdMob.
- Dowiedz się więcej o kierowaniu reklam i wytycznych dotyczących reklam pełnoekranowych.
- Dowiedz się więcej o prywatności użytkowników.