Wenn Sie Anzeigen ausliefern und Einnahmen erzielen möchten, müssen Sie Google Mobile Ads SDK in Ihre iOS-App einbinden. Dazu importieren und initialisieren Sie Google Mobile Ads SDK, bevor Sie Anzeigen anfordern.
In diesem Leitfaden wird beschrieben, wie Sie Google Mobile Ads SDK importieren und initialisieren und ein Anzeigenformat auswählen.
Vorbereitung
Bevor Sie fortfahren, benötigen Sie Folgendes:
- Verwenden Sie Xcode 16.0 oder höher.
- iOS 13.0 oder höher als Zielversion festlegen
Google Mobile Ads SDK importieren
Führen Sie einen der folgenden Abschnitte aus, um Google Mobile Ads SDK zu importieren:
Swift Package Manager (empfohlen)
So fügen Sie Ihrem Projekt eine Paketabhängigkeit hinzu:
- Öffnen Sie Xcode.
- Gehen Sie zu File > Add Package Dependencies….
Installieren Sie das Google Mobile Ads SDK-Swift-Paket.
Suchen Sie im angezeigten Prompt nach dem GitHub-Repository für das Google Mobile Ads Swift Package:
https://github.com/googleads/swift-package-manager-google-mobile-ads.gitWählen Sie die Version des Google Mobile Ads SDK-Swift-Pakets aus, die Sie verwenden möchten. Für neue Projekte empfehlen wir die Verwendung von Up to Next Major Version (Bis zur nächsten Hauptversion).
CocoaPods
So verwenden Sie CocoaPods:
Öffnen Sie die Podfile-Datei Ihres Projekts und fügen Sie diese Zeile der
target-Build-Konfiguration Ihrer App hinzu:pod 'Google-Mobile-Ads-SDK'Führen Sie im Terminal den folgenden Befehl aus:
pod install --repo-update
Bereitstellungsziel für Xcode 27 konfigurieren
Für Xcode 27 ist für alle Ziele mindestens iOS 15.0 als Bereitstellungsziel erforderlich. Da Google Mobile Ads SDK iOS 13.0 unterstützt, schlagen Xcode 27-Builds fehl, wenn CocoaPods verwendet wird.
Führen Sie die folgenden Schritte aus, um das Problem zu beheben:
Öffnen Sie die
Podfile-Datei Ihres Projekts und fügen Sie einenpost_install-Hook hinzu, der das Bereitstellungsziel auf15.0festlegt. Wenn Sie einenpost_install-Block haben, fügen Sie die innere Schleife dem vorhandenen Block hinzu.Im folgenden Beispiel wird der Schlüssel
IPHONEOS_DEPLOYMENT_TARGETfür alle Pod-Ziele auf15.0festgelegt:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' end end endFühren Sie den folgenden Befehl aus, um Ihre Pods neu zu installieren:
pod install --repo-update
Manueller Download
So laden Sie Google Mobile Ads SDK manuell herunter:
- Herunterladen Google Mobile Ads SDK
- Extrahieren Sie das Paket
googlemobileadssdkios.zip. Fügen Sie Ihrem Xcode-Projekt die folgenden Frameworks hinzu:
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
Rufen Sie in den allgemeinen Einstellungen des Ziels den Bereich Frameworks, Bibliotheken und eingebettete Inhalte auf.
Prüfen Sie, ob Sie
GoogleMobileAds.xcframeworkundUserMessagingPlatform.xcframeworkauf Einbetten und signieren festgelegt haben.Gehen Sie in den Buildeinstellungen Ihres Projekts so vor:
- Fügen Sie den Pfad
/usr/lib/swiftzu Runpath Search Paths (Suchpfade für den Ausführungspfad) hinzu. - Fügen Sie das Linker-Flag
-ObjCzu Other Linker Flags hinzu.
- Fügen Sie den Pfad
Info.plist-Datei aktualisieren
Fügen Sie der Datei Info.plist Ihrer App die folgenden Schlüssel hinzu:
Ein
GADApplicationIdentifier-Schlüssel mit einem Stringwert Ihrer Ad Manager-App-ID, die in der Ad Manager-Benutzeroberfläche zu finden ist und das Formatca-app-pub-################~##########hat.Eine
SKAdNetworkItems-Taste. Dieser Schlüssel enthältSKAdNetworkIdentifier-Werte für Googlecstr6suwn9.skadnetworkund ausgewählte Drittanbieterkäufer.
Vollständiges Beispiel
<key>GADApplicationIdentifier</key>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~1458002511 -->
<string>SAMPLE_APP_ID</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>wg4vff78zm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qy4746246.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f38h382jlk.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>t38b2kh725.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>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.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>klf5c3l5u5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ppxm28t8ap.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbmxgpxpgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.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>c3frkrj4fj.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>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>Ersetzen Sie SAMPLE_APP_ID durch Ihre Ad Manager-App-ID. Verwenden Sie beim Testen die Beispiel-App-ID aus dem vorherigen Beispiel.
Wenn Sie Ihre Ertragsgruppen mit bestimmten Apps verknüpfen, kann Ihre App schneller initialisiert werden. Wenn eine Ertragsgruppe auf iOS ausgerichtet ist, aber nicht mit einer App verknüpft ist, sendet Google die Gruppe an alle iOS-Apps in Ihrem Konto. Dieser Ansatz kann die Leistung verlangsamen.
Google Mobile Ads SDK initialisieren
Initialisieren Sie Google Mobile Ads SDK, bevor Sie Anzeigen laden, indem Sie die Methode start() über die Eigenschaft GADMobileAds.sharedInstance aufrufen. Mit dieser Methode wird ein Completion-Handler aufgerufen, nachdem Google Mobile Ads SDK und die Vermittlungsadapter die Verarbeitung abgeschlossen haben oder nach 30 Sekunden.
Im folgenden Beispiel wird Google Mobile Ads SDK initialisiert:
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
Bei der Initialisierung lädt Google Mobile Ads SDK möglicherweise Anzeigen vor oder initialisiert Drittanbieter-SDKs, wenn die Methode startWithCompletionHandler: aufgerufen wird. Wenn Sie die Einwilligung von Nutzern im Europäischen Wirtschaftsraum (EWR), im Vereinigten Königreich oder in der Schweiz einholen müssen, legen Sie anfragespezifische Flags fest. Wenn Sie anfragespezifische Flags festlegen müssen, tun Sie das, bevor Sie Google Mobile Ads SDK initialisieren. Weitere Informationen finden Sie unter Targeting.
Anzeigenformat auswählen
Nachdem Sie Google Mobile Ads SDK importiert haben, können Sie ein Anzeigenformat auswählen, das Sie implementieren möchten.
In Ad Manager sind die folgenden Anzeigenformate verfügbar:
| Anzeigenformat | Beschreibung | Dokumentation |
|---|---|---|
| Banner | Hier werden rechteckige Anzeigen in einem Bereich des App-Layouts ausgeliefert. Diese Anzeige wird in festgelegten Intervallen automatisch aktualisiert. Nutzer sehen diese Anzeigen regelmäßig, wenn sie auf demselben Bildschirm bleiben. | Banneranzeigen einrichten |
| Interstitial | Mit diesem Anzeigenformat 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 |
| Nativ | Damit können Sie Assets wie Anzeigentitel und Calls-to-Action in Ihren Apps anpassen. Wenn Sie die Anzeige anpassen, erstellen Sie Anzeigen, die zum visuellen Design Ihrer App passen. | Native Anzeige laden |
| Verfügbar | Nutzer können sich In-App-Prämien wie Münzen oder Punkte verdienen, indem sie Spiele spielen, an Umfragen teilnehmen oder sich Videos ansehen. Sie können Prämien für Anzeigenblöcke festlegen und angeben, welche Prämienwerte oder -artikel Ihre Nutzer erhalten. | Anzeigen mit Prämie |
| Interstitial mit Prämie | Sie können damit Nutzer, die sich die Werbung ansehen, mit Münzen oder Extraleben belohnen. | Interstitial-Anzeigen mit Prämie |
| App-Start | Wird eingeblendet, wenn Nutzer Ihre App öffnen oder zu ihr zurückkehren. Die Anzeige wird als Overlay über dem Ladebildschirm eingeblendet. | App-Start-Anzeigen |