Rozpocznij

Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji na iOS za pomocą AdMob i nie korzystają z Firebase. Jeśli planujesz uwzględnić Firebase w swojej aplikacji (lub rozważasz taką możliwość), zapoznaj się z wersją tego przewodnika dotyczącą AdMob z Firebase .

Pierwszym krokiem, który musisz wykonać, aby zacząć wyświetlać reklamy i zarabiać, jest integracja pakietu SDK do reklam mobilnych Google z Twoją aplikacją. Gdy to zrobisz, możesz zaimplementować dowolną liczbę obsługiwanych formatów reklam.

Wymagania wstępne

  • Użyj Xcode w wersji 15.3 lub nowszej.
  • kierować reklamy na system iOS w wersji 12.0 lub nowszej,

Importowanie pakietu SDK do reklam mobilnych

Aby zaimportować pakiet SDK do reklam mobilnych Google, użyj jednej z podanych niżej metod.

CocoaPods (preferowany),

Najprostszym sposobem importowania pakietu SDK do projektu na iOS jest użycie CocoaPods. Otwórz plik Podfile swojego projektu i dodaj ten wiersz do docelowego środowiska aplikacji:

pod 'Google-Mobile-Ads-SDK'

Następnie z wiersza poleceń uruchom:

pod install --repo-update

Jeśli nie znasz CocoaPods, zapoznaj się z oficjalną dokumentacją dotyczącą tworzenia i używania plików Pod.

Menedżer pakietów Swift

Pakiet SDK do reklam mobilnych Google obsługuje Swift Package Manager od wersji 9.0.0. Aby zaimportować pakiet Swift, wykonaj te czynności:

  1. W Xcode zainstaluj pakiet Swift reklam mobilnych Google, klikając Plik > Dodaj pakiety….

  2. W wyświetlonym promptzie wyszukaj repozytorium GitHub Google Mobile Ads Swift Package:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Wybierz wersję pakietu Swift Google Mobile Ads, której chcesz użyć. W przypadku nowych projektów zalecamy użycie następującej głównej wersji.

Gdy skończysz, Xcode zacznie rozwiązywać zależności pakietu i pobierać je w tle. Więcej informacji o dodawaniu zależności pakietu znajdziesz w artykule Apple.

Pobieranie ręczne

  1. Pobierz pakiet SDK do reklam mobilnych Google i Embed & Sign te frameworki do projektu Xcode:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. W ustawieniach kompilacji projektu:

    • Dodaj ścieżkę /usr/lib/swift do Ścieżek wyszukiwania w Runpath.
    • Dodaj flagę łącznika -ObjC do sekcji Inne flagi łącznika.

Zaktualizuj plik Info.plist

Zaktualizuj plik Info.plist aplikacji, aby dodać 2 klucze:

  1. Klucz GADApplicationIdentifier o wartości ciągu znakówAdMob app ID found in the AdMob UI.

  2. Klucz SKAdNetworkItems z wartościami SKAdNetworkIdentifier dla Google (cstr6suwn9.skadnetwork) i wybranych kupujących zewnętrznych, którzy przekazali te wartości do Google.

Kompletny fragment

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cstr6suwn9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4fzdc2evr5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2fnua5tdw4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ydx93a7ass.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>p78axxw29g.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v72qych5uu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ludvb6z3bs.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cp8zw746q7.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3sh42y64q3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>c6k4g5qg8m.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>s39g8k73mm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qy4746246.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>hs6bdukanm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>mlmmfzh3r3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v4nxqhlyqp.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>wzmmz9fp6w.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>su67r6k2v3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>yclnxrl5pm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>7ug5zh24hu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>gta9lk7p23.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>vutu7akeur.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>y5ghdn5j9k.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v9wttpbfk9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>n38lu8286q.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>47vhws6wlr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>kbd757ywx3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>9t245vhmpl.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>a2p9lx4jpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>22mmun2rn5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4468km3ulz.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2u9pt9hc89.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8s468mfl3y.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ppxm28t8ap.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>uw77j35x4d.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>pwa73g5rt2.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>578prtvx9j.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4dzt52r2t5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>tl55sbb4fm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>e5fvkxwrpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8c4e2ghe7u.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3rd42ekr43.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qcr597p9d.skadnetwork</string>
  </dict>
</array>

Jeśli nie masz jeszcze konta AdMob ani zarejestrowanej aplikacji, warto to zrobić.

W rzeczywistej aplikacji zastąp przykładowy identyfikator aplikacji swoim prawdziwym identyfikatoremAdMob aplikacji. Jeśli eksperymentujesz z pakietem SDK w aplikacji „Hello World”, możesz użyć przykładowego identyfikatora.

Inicjowanie pakietu SDK do reklam mobilnych

Przed wczytaniem reklam wywołaj metodę startWithCompletionHandler: w obiekcie GADMobileAds.sharedInstance. Spowoduje to zainicjowanie pakietu SDK, a po jego zakończeniu (lub 30 sekundach bezczynności) wywołanie zwrotne metody obsługi zakończenia. Wystarczy to zrobić tylko raz, najlepiej podczas uruchamiania aplikacji. Jak najszybciej zadzwoń pod numer startWithCompletionHandler:.

Oto przykład wywołania metody startWithCompletionHandler: w klasie AppDelegate:

Przykładowa klasa AppDelegate (wycinek)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

SwiftUI

import GoogleMobileAds

class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

@main
struct YourApp: App {
  // To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
  // you must create an application delegate and attach it to your `App` struct
  // using `UIApplicationDelegateAdaptor`.
  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

  var body: some Scene {
    WindowGroup {
      NavigationView {
        ContentView()
      }
    }
  }
}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [GADMobileAds.sharedInstance startWithCompletionHandler:nil];
  return YES;
}

@end

Wybierz format reklamy

Pakiet SDK do reklam mobilnych został zaimportowany i inicjowany, więc możesz zaimplementować reklamę. AdMob Oferuje on różne formaty reklam, więc możesz wybrać ten, który najlepiej pasuje do Twojej aplikacji.

Deweloperzy SwiftUI powinni postępować zgodnie z przewodnikiem po SwiftUI.

W jednostkach z banerami reklamowymi wyświetlają się prostokątne reklamy, które zajmują część układu aplikacji. Mogą one być automatycznie odświeżane po upływie określonego czasu. Oznacza to, że użytkownicy zobaczą nowe reklamy w regularnych odstępach czasowych, nawet jeśli pozostaną na tym samym ekranie w aplikacji. Jest to format reklamy najprostszy do wdrożenia.

Wdrażanie banerów reklamowych

Pełnoekranowa

Jednostki reklam pełnoekranowych wyświetlają w aplikacji reklamy zajmujące całą stronę. Umieść je w naturalnych przerwach między elementami strony lub podczas przejścia z jednego etapu do następnego w interfejsie aplikacji, np. po ukończeniu poziomu w aplikacji z grą.

Wdrażanie reklam pełnoekranowych

Natywna

Reklamy natywne umożliwiają dostosowanie sposobu wyświetlania w aplikacji komponentów takich jak nagłówki i wezwania do działania. Samodzielne nadawanie reklamie stylu pozwala tworzyć naturalne, nieinwazyjne prezentacje reklam, które mogą wzbogacać wrażenia użytkowników.

Wdrażanie reklam natywnych

Z nagrodą

Jednostki reklamowe z nagrodą umożliwiają użytkownikom granie w gry, wypełnianie ankiet lub oglądanie filmów, aby zdobywać nagrody w aplikacji, takie jak monety, dodatkowe życia lub punkty. Możesz ustawić różne nagrody w różnych jednostkach reklamowych i określić wartości nagród oraz korzyści, które otrzymają użytkownicy.

Wdrażanie reklam z nagrodą

Reklama pełnoekranowa z nagrodą

Reklama pełnoekranowa z nagrodą to nowy format reklamy zachęcającej użytkownika do jej obejrzenia. Umożliwia uzyskanie nagród w aplikacji, takich jak monety lub dodatkowe życia. Reklamy tego typu wyświetlają się automatycznie w naturalnych momentach przejściowych w aplikacji.

W przeciwieństwie do reklam z nagrodą użytkownicy nie muszą wyrażać zgody na wyświetlenie reklamy pełnoekranowej z nagrodą.

Zamiast prośby o zgodę stosowanej w reklamach z nagrodą reklamy pełnoekranowe z nagrodą na początku wyświetlają ekran z informacjami o nagrodach za obejrzenie danej reklamy i dają użytkownikowi możliwość jej pominięcia.

Wdrażanie reklam pełnoekranowych z nagrodą

Otwarcie aplikacji

Reklama wyświetlana przy otwarciu aplikacji to format reklamy, który pojawia się, gdy użytkownicy otwierają aplikację lub do niej wracają. Reklama nakłada się na ekran wczytywania.

Wdrażanie reklam wyświetlanych przy otwarciu aplikacji