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 w wierszu 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:
W Xcode zainstaluj pakiet Swift reklam mobilnych Google, klikając Plik > Dodaj pakiety….
W wyświetlonym promptzie wyszukaj repozytorium GitHub Google Mobile Ads Swift Package:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Wybierz wersję pakietu Swift Google Mobile Ads, której chcesz użyć. W przypadku nowych projektów zalecamy użycie wersji do następnej 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.
Ręczne pobieranie
Pobierz pakiet SDK do reklam mobilnych Google i
Embed & Sign
te frameworki do projektu Xcode:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
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.
- Dodaj ścieżkę
Zaktualizuj plik Info.plist
Zaktualizuj plik Info.plist
aplikacji, aby dodać 2 klucze:
Klucz
GADApplicationIdentifier
o wartości ciągu znakówAd Manager app ID found in the Ad Manager UI and of the formca-app-pub-################~##########
.Klucz
SKAdNetworkItems
z wartościamiSKAdNetworkIdentifier
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>
Aby zapewnić optymalną wydajność inicjowania, ważne jest, aby skojarzyć grupy rentowności z konkretnymi aplikacjami, w których są one używane. Konfiguracje grupy rentowności kierowane na iOS i nie powiązane z żadną konkretną aplikacją będą wysyłane do wszystkich aplikacji na iOS na Twoim koncie, co może wydłużyć czas inicjalizacji.
W rzeczywistej aplikacji zastąp przykładowy identyfikator aplikacji swoim prawdziwym identyfikatoremAd Manager 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ę. Ad Manager Oferuje on różne formaty reklam, więc możesz wybrać ten, który najlepiej pasuje do interfejsu użytkownika aplikacji.
Deweloperzy SwiftUI powinni postępować zgodnie z przewodnikiem po SwiftUI.
Baner
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.
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ą wzbogacić wrażenia użytkownika.
Google Ad Manager udostępnia 2 metody implementacji reklam natywnych: style natywne i standardowe reklamy natywne za pomocą renderowania niestandardowego.
Style natywne zostały zaprojektowane w celu uproszczenia implementacji reklam natywnych. To świetny wybór, jeśli dopiero zaczynasz korzystać z tego formatu. Renderowanie niestandardowe zostało zaprojektowane tak, aby maksymalnie zwiększyć swobodę tworzenia prezentacji.
Wdrażanie stylów natywnych Wdrażanie reklam natywnych (renderowanie niestandardowe)
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.
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.