Reklamy pełnoekranowe

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. mię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

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:

  1. Wczytaj reklamę.
  2. Zarejestruj się na wywołania zwrotne.
  3. Wyświetl reklamę i obsługuje zdarzenie nagrody.

Wczytywanie reklamy

Reklamę można wczytać za pomocą statycznego parametru loadWithAdUnitID:request:completionHandler: na GADInterstitialAd zajęcia. Metoda wczytywania wymaga identyfikatora jednostki reklamowej, obiektu GADRequest i moduł obsługi uzupełniania, który jest wywoływany w przypadku pomyślnego lub nieudanego wczytywania reklamy. wczytany obiekt GADInterstitialAd jest przesyłany jako w module obsługi uzupełniania. Poniższy przykład pokazuje, jak wczytać GADInterstitialAd na zajęciach 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 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 jest wyświetlany 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.")
  }
}

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 rozpoczyna się 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. Oto przykład, jak to zrobić w przypadku jednej z metod 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. 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 z myślą o użytkownikach. 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 również upewnić się, że użytkownik nie musi i poczekaj, aż się załadują. Wczytanie reklamy z wyprzedzeniem przed rozpoczęciem jej wyświetlania by zapewnić, ż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 aplikacji GADInterstitialAd, aby sprawdzić, czy jest on gotowy do wyświetlane.

Dodatkowe materiały

Przykłady w GitHubie

Samouczki wideo Warsztaty reklam mobilnych

Historie sukcesu

Dalsze kroki