Reklamy pełnoekranowe

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Reklamy pełnoekranowe to reklamy pełnoekranowe, które zasłaniają interfejs aplikacji do chwili zamknięcia ich przez użytkownika. Zazwyczaj 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ą, użytkownik może ją kliknąć, aby 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 testuj z reklamami testowymi

Tworząc i testując aplikacje, upewnij się, że używasz reklam testowych zamiast produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.

Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora jednostki reklamowej na potrzeby reklam pełnoekranowych na iOS:
ca-app-pub-3940256099942544/4411468910

Został on specjalnie skonfigurowany pod kątem zwracania reklam testowych dla każdego żądania. Możesz używać go we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, 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 Test Ads (Reklamy testowe).

Wdrażanie

Główne kroki integracji reklam pełnoekranowych:

  1. Wczytanie reklamy
  2. Zarejestruj się na potrzeby wywołań zwrotnych.
  3. Musi wyświetlać reklamę i obsługiwać zdarzenie związane z nagrodą.

Wczytywanie reklamy

Reklama jest ładowana za pomocą statycznej metody loadWithAdUnitID:request:completionHandler: w klasie GADInterstitialAd. Aby wczytać metodę, potrzebny jest identyfikator jednostki reklamowej, obiekt GADRequest i moduł obsługi realizacji, które są wywoływane po udanym lub nieudanym wczytaniu reklamy. Wczytany obiekt GADInterstitialAd jest podany jako parametr w procedurze zakoń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;
  }];
}

Rejestrowanie połączeń zwrotnych

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 wyświetlenia reklamy oraz 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 obiekt jednorazowy. Oznacza to, że po wyświetleniu reklamy pełnoekranowej nie można jej ponownie wyświetlić. Sprawdzoną metodą jest wczytanie innej reklamy pełnoekranowej w metodzie adDidDismissFullScreenContent: GADFullScreenContentDelegate, by kolejna reklama pełnoekranowa zaczęła się wyświetlać zaraz po odrzuceniu poprzedniej.

Wyświetl reklamę

Reklamy pełnoekranowe powinny wyświetlać się podczas naturalnych przerw w działaniu aplikacji. Dobrym przykładem jest sytuacja, w której użytkownik wykonywał zadanie, lub po ukończeniu zadania przez użytkownika. Oto przykład, jak to zrobić w jednej z metod działań w tagu 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");
  }
}

Sprawdzonych metod

Zastanów się, czy reklamy pełnoekranowe są odpowiednie do Twojej aplikacji.
Reklamy pełnoekranowe najlepiej sprawdzają się w aplikacjach z naturalnymi punktami przejścia. W ten sposób kończy się zadanie w aplikacji, np. udostępnienie obrazu lub ukończenie poziomu w grze. Użytkownik spodziewa się przerwy w działaniu, dlatego może łatwo zaprezentować reklamę pełnoekranową bez zakłócania jej działania. Zastanów się, w którym momencie w aplikacji będziesz wyświetlać reklamy pełnoekranowe i w jaki sposób prawdopodobnie zareaguje użytkownik.
Pamiętaj, by wstrzymać działanie reklamy pełnoekranowej.
Jest wiele różnych typów reklam pełnoekranowych: tekstowych, graficznych, wideo i innych. Pamiętaj, że gdy aplikacja wyświetla reklamę pełnoekranową, musi ona zawiesić użycie pewnych zasobów, aby reklama mogła je wykorzystać. Jeśli na przykład wywołujesz reklamę pełnoekranową, pamiętaj, by wstrzymać odtwarzanie dźwięku generowanego przez aplikację. Możesz wznowić odtwarzanie dźwięku w module obsługi zdarzeń adDidDismissFullScreenContent:, który zostanie wywołany, gdy użytkownik wejdzie w interakcję z reklamą. Dodatkowo możesz tymczasowo zatrzymać intensywne zadania obliczeniowe (np. zapętlenia w czasie wyświetlania reklamy). Gwarantuje to, że grafika nie będzie się wolno wyświetlać ani reagować na zacinanie się.
Zapewnij wystarczający czas wczytywania.
Ważne jest, aby wyświetlać reklamy pełnoekranowe w odpowiednim momencie, tak aby użytkownik nie musiał czekać, aż się załaduje. Załadowanie reklamy z wyprzedzeniem przed jej wyświetleniem może zapewnić, że w chwili wyświetlenia reklamy pełnoekranowej z aplikacji aplikacja będzie gotowa.
Nie zapełniaj reklamy reklamami.
Zwiększenie liczby reklam pełnoekranowych w aplikacji może wydawać się świetnym sposobem na zwiększenie przychodów, ale może też pogorszyć wygodę użytkowników i obniżyć współczynniki klikalności. dopilnuj, by użytkownicy nie zakłócali działania aplikacji.
Nie używaj wywołania zwrotnego zakończenia wczytywania, aby wyświetlać reklamę pełnoekranową.
Pogarsza to wrażenia użytkowników. Zamiast tego wstępnie wczytaj reklamę, zanim będzie trzeba ją wyświetlić. Następnie sprawdź metodę canPresentFromRootViewController:error: na stronie GADInterstitialAd, aby się dowiedzieć, czy jest gotowa do wyświetlenia.

Dodatkowe materiały

Przykłady w GitHubie

Samouczki wideo o reklamach garażowych

Historie sukcesu

Dalsze kroki