Wypróbuj

Zintegrowanie pakietu SDK do reklam mobilnych Google z aplikacją to pierwszy krok do wyświetlania reklam i zarabiania. Po zintegrowaniu pakietu SDK możesz wdrożyć co najmniej jeden z obsługiwanych formatów reklam.

Wymagania wstępne

  • Używaj Xcode w wersji 15.3 lub nowszej
  • Kierowanie na system iOS 12.0 lub nowszy

Zaimportuj pakiet SDK do reklam mobilnych

Aby zaimportować pakiet SDK do reklam mobilnych Google, użyj jednej z poniższych metod.

CocoaPods (preferowane)

Najprostszym sposobem zaimportowania pakietu SDK do projektu iOS jest użycie CocoaPods. Otwórz plik Podfile projektu i dodaj ten wiersz do miejsca docelowego aplikacji:

pod 'Google-Mobile-Ads-SDK'

Następnie uruchom polecenie w wierszu poleceń:

pod install --repo-update

Jeśli nie masz doświadczenia z CocoaPods, zapoznaj się z oficjalną dokumentacją, w której znajdziesz informacje o tworzeniu i używaniu plików Podfiles.

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. Zainstaluj w Xcode pakiet Swift do reklam mobilnych Google, klikając File > Add Packages... (Plik > Dodaj pakiety).

  2. W wyświetlonym komunikacie wyszukaj repozytorium GitHub pakietu Swift do reklam mobilnych Google:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Wybierz wersję pakietu Swift do reklam mobilnych Google, której chcesz użyć. W przypadku nowych projektów zalecamy używanie wersji aż do następnej wersji głównej.

Po zakończeniu Xcode zacznie rozpoznawać zależności pakietów i pobierać je w tle. Więcej informacji o dodawaniu zależności pakietów znajdziesz w artykule Apple.

Pobieranie ręczne

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

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. Dodaj flagę łączącą -ObjC do innych flag łączących w ustawieniach kompilacji projektu:

Zaktualizuj plik Info.plist

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

  1. Klucz GADApplicationIdentifier z wartością ciągu znakówAd Manager app ID found in the Ad Manager UI and of the form ca-app-pub-################~##########.

  2. klucz SKAdNetworkItems z wartościami SKAdNetworkIdentifier dla Google (cstr6suwn9.skadnetwork) i wybrani zewnętrzni kupujący, którzy przekazali te wartości do Google;

Pełny 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>4pfyvq9l8r.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>5a6flpkh64.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>f38h382jlk.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>hs6bdukanm.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>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>n6fk4nfna4.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>eh6m2bh4zr.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>klf5c3l5u5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ppxm28t8ap.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ecpz2srf59.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>mlmmfzh3r3.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>e5fvkxwrpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8c4e2ghe7u.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>zq492l623r.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3rd42ekr43.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qcr597p9d.skadnetwork</string>
  </dict>
</array>

Aby uzyskać optymalną wydajność inicjowania, ważne jest powiązanie grup zysku z konkretnymi aplikacjami, w których są używane. Konfiguracje grupy zysku kierowane na iOS i niepowiązane z żadną konkretną aplikacją zostaną przesłane do wszystkich aplikacji na iOS na Twoim koncie, co może wydłużyć czas inicjowania.

W prawdziwej aplikacji zastąp przykładowy identyfikator rzeczywistymAd Manager identyfikatorem aplikacji. Możesz użyć przykładowego identyfikatora, jeśli tylko eksperymentujesz z pakietem SDK w aplikacji Hello World.

Zainicjowanie pakietu SDK do reklam mobilnych

Przed wczytaniem reklam wywołaj metodę startWithCompletionHandler: w GADMobileAds.sharedInstance, co spowoduje zainicjowanie pakietu SDK, a po zakończeniu inicjowania (lub po 30-sekundowym czasie oczekiwania) ponownie wywoła moduł obsługi ukończenia. Wystarczy to zrobić raz, najlepiej przy uruchamianiu aplikacji. Koniecznie skontaktuj się z firmą startWithCompletionHandler: jak najwcześniej.

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

Przykładowy element AppDelegate (fragment)

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 zainicjowany. Możesz już zaimplementować reklamę. Ad Manager Oferuje wiele różnych formatów reklam, możesz więc wybrać ten, który najlepiej pasuje do potrzeb Twojej aplikacji.

Deweloperzy korzystający z SwiftUI powinni skorzystać z naszego przewodnika po SwiftUI.

W jednostkach banerów reklamowych wyświetlane są prostokątne reklamy, które zajmują część układu aplikacji. Mogą być automatycznie odświeżane po upływie określonego czasu. Oznacza to, że użytkownicy widzą nową reklamę w regularnych odstępach czasu, nawet jeśli pozostają na tym samym ekranie aplikacji. Jest to również najprostszy format reklamy do wdrożenia.

Implementowanie banerów reklamowych

Pełnoekranowa

Pełnoekranowe jednostki reklamowe wyświetlają w aplikacji reklamy zajmujące całą stronę. Umieszczaj je w naturalnych przerwach i momentach przejściowych w interfejsie aplikacji, np. po ukończeniu poziomu w grze.

Zastosuj reklamy pełnoekranowe

Natywna

Reklamy natywne to reklamy, w których możesz dostosować sposób prezentowania zasobów, takich jak nagłówki czy wezwania do działania, w aplikacjach. Wybierając styl reklamy, możesz utworzyć naturalne, dyskretne prezentacje, które będą atrakcyjne dla użytkowników.

Google Ad Manager udostępnia dwa sposoby wdrażania reklam natywnych: style natywne i standardowe reklamy natywne za pomocą renderowania niestandardowego.

Style natywne zostały zaprojektowane tak, by uprościć implementację reklam natywnych i to doskonały wybór dla osób, które nie mają doświadczenia z tym formatem. Renderowanie niestandardowe zostało zaprojektowane tak, aby zapewnić maksymalną swobodę podczas tworzenia prezentacji.

Implementowanie stylów natywnych Implementowanie reklam natywnych (renderowanie niestandardowe)

Otrzymano

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 poszczególnych jednostkach reklamowych i określić ich wartości oraz przedmioty, jakie użytkownik otrzymał.

Wdróż reklamy z nagrodą

Reklama pełnoekranowa z nagrodą

Reklama pełnoekranowa z nagrodą to nowy format reklamy zachęcającej do działania, który pozwala oferować nagrody, takie jak monety lub dodatkowe życia, za reklamy, które wyświetlają się automatycznie w naturalnych momentach przejściowych w aplikacji.

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

Zamiast komunikatu z prośbą o zgodę w reklamach z nagrodą reklamy pełnoekranowe z nagrodą wymagają ekranu z wprowadzeniem, na którym wyświetla się informacja o nagrodzie i pozwala użytkownikom zrezygnować z reklam z nagrodą.

Implementowanie reklam pełnoekranowych z nagrodą

Reklama przy otwarciu aplikacji

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

Wdrażanie reklam wyświetlanych przy otwarciu aplikacji