Erste Schritte

Dieser Leitfaden richtet sich an Publisher, die eine iOS-App mit AdMob monetarisieren und Firebase nicht verwenden. Wenn Sie Firebase in Ihre App einbinden möchten (oder dies in Betracht ziehen), lesen Sie stattdessen die Version dieses Leitfadens für AdMob mit Firebase.

Um Anzeigen in Ihrer App zu präsentieren und damit Umsätze zu erzielen, müssen Sie als Erstes das Google Mobile Ads SDK in die App einbinden. Anschließend können Sie eines oder mehrere der unterstützten Anzeigenformate implementieren.

Vorbereitung

  • Xcode 15.3 oder höher verwenden
  • iOS 12.0 oder höher als Zielversion festlegen

Mobile Ads SDK importieren

Verwenden Sie eine der folgenden Methoden, um das Google Mobile Ads SDK zu importieren.

CocoaPods (bevorzugt)

Die einfachste Möglichkeit, das SDK in ein iOS-Projekt zu importieren, ist die Verwendung von CocoaPods. Öffnen Sie die Podfile Ihres Projekts und fügen Sie dem Ziel Ihrer App diese Zeile hinzu:

pod 'Google-Mobile-Ads-SDK'

Führen Sie dann in der Befehlszeile folgenden Befehl aus:

pod install --repo-update

Wenn Sie CocoaPods noch nicht kennen, finden Sie in der offiziellen Dokumentation Informationen zum Erstellen und Verwenden von Podfiles.

Swift Package Manager

Das Google Mobile Ads SDK unterstützt ab Version 9.0.0 den Swift Package Manager. So importieren Sie das Swift-Paket:

  1. Installieren Sie das Swift-Paket für mobile Anzeigen von Google in Xcode. Gehen Sie dazu zu File > Add Packages… (Datei > Pakete hinzufügen…).

  2. Suchen Sie in der angezeigten Eingabeaufforderung nach dem GitHub-Repository für das Google Mobile Ads Swift Package:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Wählen Sie die Version des Google Mobile Ads Swift-Pakets aus, die Sie verwenden möchten. Für neue Projekte empfehlen wir die Option Bis zur nächsten Hauptversion.

Sobald Sie fertig sind, beginnt Xcode, Ihre Paketabhängigkeiten im Hintergrund aufzulösen und herunterzuladen. Weitere Informationen zum Hinzufügen von Paketabhängigkeiten finden Sie im Artikel von Apple.

Manueller Download

  1. Laden Sie das Google Mobile Ads SDK herunter und Embed & Sign Sie die folgenden Frameworks in Ihr Xcode-Projekt:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. Gehen Sie in den Build-Einstellungen Ihres Projekts so vor:

    • Fügen Sie den Pfad /usr/lib/swift zu Runpath-Suchpfade hinzu.
    • Fügen Sie das -ObjC-Linker-Flag zu Other Linker Flags (Weitere Verknüpfungsmerker) hinzu.

Info.plist aktualisieren

Aktualisieren Sie die Datei Info.plist Ihrer App, um zwei Schlüssel hinzuzufügen:

  1. Einen GADApplicationIdentifier-Schlüssel mit dem Stringwert IhrerAdMob app ID found in the AdMob UI.

  2. Ein SKAdNetworkItems-Schlüssel mit SKAdNetworkIdentifier-Werten für Google (cstr6suwn9.skadnetwork) und ausgewählte Drittanbieter-Bieter, die diese Werte an Google gesendet haben.

Vollständiges Snippet

<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>

Wenn Sie noch kein AdMob-Konto erstellt und keine App registriert haben, ist jetzt der richtige Zeitpunkt.

In einer echten App ersetzen Sie die Beispiel-App-ID durch Ihre tatsächlicheAdMob App-ID. Sie können die Beispiel-ID verwenden, wenn Sie das SDK nur in einer „Hello World“-App testen.

Mobile Ads SDK initialisieren

Rufen Sie vor dem Laden von Anzeigen die Methode startWithCompletionHandler: auf GADMobileAds.sharedInstance auf. Dadurch wird das SDK initialisiert und ein Abschluss-Handler wird zurückgerufen, sobald die Initialisierung abgeschlossen ist (oder nach einer 30-sekündigen Zeitüberschreitung). Dies muss nur einmal erfolgen, idealerweise beim Start der App. Sie sollten startWithCompletionHandler: so bald wie möglich anrufen.

Hier ein Beispiel für den Aufruf der Methode startWithCompletionHandler: in AppDelegate:

Beispiel für AppDelegate (Auszug)

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

Anzeigenformat auswählen

Das Mobile Ads SDK wurde jetzt importiert und initialisiert. Sie können also eine Anzeige implementieren. AdMob bietet verschiedene Anzeigenformate, sodass Sie dasjenige auswählen können, das am besten zur Nutzerfreundlichkeit Ihrer App passt.

SwiftUI-Entwickler folgen unserem SwiftUI-Leitfaden.

Banneranzeigenblöcke enthalten rechteckige Anzeigen, die einen Teil der App-Oberfläche einnehmen. und nach einer festgelegten Zeitspanne automatisch aktualisiert werden können. Damit sehen Nutzer an derselben Stelle regelmäßig neue Werbung, auch wenn sie nicht zu einem anderen Bereich der App wechseln. Dieses Anzeigenformat ist außerdem am einfachsten zu implementieren.

Banneranzeigen implementieren

Interstitial

Mit Interstitial-Anzeigenblöcken werden ganzseitige Anzeigen in Ihrer App bereitgestellt. Die Anzeigenblöcke sollten an natürlichen Unterbrechungs- oder Übergangspunkten platziert werden, z. B. in einer Gaming-App nach Abschluss eines Levels.

Interstitial-Anzeigen implementieren

Nativ

Bei nativen Anzeigen können Sie die Darstellung von Assets wie Anzeigentiteln und Calls-to-Action in Ihren Apps anpassen. Wenn Sie die Anzeige selbst gestalten, können Sie natürliche, unaufdringliche Anzeigen erstellen, die die Nutzerfreundlichkeit verbessern.

Native Anzeigen implementieren

Verfügbar

Mit Anzeigenblöcken mit Prämie können Nutzer Spiele spielen, an Umfragen teilnehmen oder sich Videos ansehen, um In-App-Prämien wie Münzen, Extraleben oder Punkte zu erhalten. Sie können je nach Anzeigenblock verschiedene Prämien festlegen und angeben, welche Prämienwerte oder -artikel die Nutzer erhalten.

Anzeigen mit Prämie implementieren

Interstitial mit Prämie

Interstitials mit Prämie sind ein neues, auf Incentives basierendes Anzeigenformat, das automatisch an natürlichen Übergangspunkten in einer App ausgeliefert wird. Sie können damit Nutzer, die sich die Werbung ansehen, mit Münzen oder Extraleben belohnen.

Anders als bei Anzeigen mit Prämie müssen Nutzer nicht zustimmen, sich Interstitials mit Prämie anzusehen.

Anstatt der Aufforderung zur Zustimmung muss ein Eingangsbildschirm eingeblendet werden, auf dem Nutzer die versprochene Prämie sehen und sich gegen das Ansehen der Anzeige entscheiden können.

Interstitial-Anzeigen mit Prämie implementieren

App-Start

„App-Start“ ist ein Anzeigenformat, das präsentiert wird, wenn ein Nutzer Ihre App öffnet oder zu ihr zurückwechselt. Die Anzeige wird als Overlay über dem Ladebildschirm eingeblendet.

App-Start-Anzeigen implementieren