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)
Am einfachsten importieren Sie das SDK mit CocoaPods in ein iOS-Projekt. Ö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:
Installieren Sie das Swift-Paket für mobile Anzeigen von Google in Xcode. Gehen Sie dazu zu File > Add Packages… (Datei > Pakete hinzufügen…).
Suchen Sie in der angezeigten Aufforderung nach dem GitHub-Repository für das Google Mobile Ads Swift-Paket:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
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
Laden Sie das Google Mobile Ads SDK herunter und
Embed & Sign
fügen Sie die folgenden Frameworks in Ihr Xcode-Projekt ein:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
In den Build-Einstellungen Ihres Projekts:
- Fügen Sie den Pfad
/usr/lib/swift
zu Suchpfade für den Laufpfad hinzu. - Fügen Sie das
-ObjC
-Linker-Flag zu Other Linker Flags (Weitere Verknüpfungsmerker) hinzu.
- Fügen Sie den Pfad
Info.plist aktualisieren
Aktualisieren Sie die Datei Info.plist
Ihrer App, um zwei Schlüssel hinzuzufügen:
Einen
GADApplicationIdentifier
-Schlüssel mit dem Stringwert IhrerAd Manager app ID found in the Ad Manager UI and of the formca-app-pub-################~##########
.Ein
SKAdNetworkItems
-Schlüssel mitSKAdNetworkIdentifier
-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>
Für eine optimale Leistung bei der Initialisierung ist es wichtig, Ihre Yield-Gruppen mit den Apps zu verknüpfen, in denen sie verwendet werden. Konfigurationen von Yield-Gruppen, die auf iOS-Geräte ausgerichtet und nicht mit einer bestimmten App verknüpft sind, werden an alle iOS-Apps in Ihrem Konto gesendet. Das kann die Zeit für die Initialisierung verlängern.
Ersetzen Sie in einer echten App die Beispiel-App-ID durch Ihre tatsächlicheAd Manager 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 jetzt eine Anzeige implementieren. Ad Manager bietet verschiedene Anzeigenformate, sodass Sie dasjenige auswählen können, das am besten zur Nutzerfreundlichkeit Ihrer App passt.
SwiftUI-Entwickler finden in unserem SwiftUI-Leitfaden weitere Informationen.
Banner
Banneranzeigenblöcke enthalten rechteckige Werbeanzeigen, 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.
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 anpassen, wie Assets wie Anzeigentitel und Calls-to-Action in Ihren Apps präsentiert werden. Wenn Sie die Anzeige selbst gestalten, können Sie natürliche, unaufdringliche Anzeigen erstellen, die die Nutzerfreundlichkeit verbessern.
In Google Ad Manager gibt es zwei Möglichkeiten, native Anzeigen zu implementieren: native Designs und standardmäßige native Anzeigen über benutzerdefiniertes Rendering.
Native Designs wurden entwickelt, um die Implementierung nativer Anzeigen zu vereinfachen. Sie sind eine gute Wahl, wenn Sie mit dem Format noch nicht vertraut sind. Das benutzerdefinierte Rendering wurde entwickelt, um Ihnen beim Erstellen Ihrer Präsentationen maximale Freiheit zu bieten.
Native Designs implementieren Native Anzeigen implementieren (benutzerdefiniertes Rendering)
Verfügbar
Anzeigenblöcke mit Prämie geben Nutzern die Möglichkeit, Spiele zu spielen, an Umfragen teilzunehmen oder sich Videos anzusehen und im Gegenzug 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.