Pierwsze kroki z AdMob w projekcie C++

Rozważ użycie pakietów SDK na iOS i Androida z AdMob.


Ten przewodnik dla początkujących jest przeznaczony dla wydawców i deweloperów, którzy chcą używać AdMob do zarabiania na aplikacji utworzonej za pomocą Firebase. Jeśli nie planujesz uwzględniać Firebase w swojej aplikacji, zapoznaj się z samodzielnym AdMob przewodnikiem zamiast tego.

Jeśli jeszcze tego nie zrobiono, dowiedz się o wszystkich zaletach korzystania z AdMob, Firebase, i Google Analytics.

Jeśli po raz pierwszy korzystasz z tego przewodnika, zalecamy pobranie i używanie aplikacji testowej pakietu SDK do reklam mobilnych Google w C++.

Zanim zaczniesz

  • Jeśli nie masz jeszcze projektu w Firebase ani aplikacji w Firebase, skorzystaj z przewodnika dla początkujących użytkowników Firebase: Dodawanie Firebase do projektu C++.

  • Sprawdź, czy w projekcie w Firebase włączona jest usługa Google Analytics:

    • Jeśli tworzysz nowy projekt w Firebase, włącz Google Analytics w trakcie procesu tworzenia projektu.

    • Jeśli masz dotychczasowy projekt w Firebase bez włączonej usługi Google Analytics możesz ją włączyć z karty Integracje w sekcji > Ustawienia projektu.Google Analytics

Krok 1: skonfiguruj aplikację na koncie AdMob

  1. Zarejestruj każdą wersję platformy swojej aplikacji jako aplikację AdMob.

    1. Zaloguj się lub utwórz konto AdMob.

    2. Zarejestruj każdą wersję platformy swojej aplikacji w AdMob. W tym kroku utworzysz aplikację AdMob z unikalnym AdMob identyfikatorem aplikacji AdMob, który będzie Ci potrzebny w dalszej części tego przewodnika.

    Zostaniesz poproszony(-a) o dodanie do aplikacji pakietu Mobile Ads SDK. Szczegółowe instrukcje dotyczące tego zadania znajdziesz w dalszej części tego przewodnika.

  2. Połącz każdą aplikację AdMob z odpowiednią aplikacją w Firebase.

    Ten krok jest opcjonalny, ale zdecydowanie zalecany. Dowiedz się więcej o korzyściach z włączenia danych o użytkownikach i połączenia aplikacji AdMob z Firebase.

    W przypadku każdej wersji platformy wykonaj te 2 kroki w panelu Aplikacje na koncie AdMob:

    1. Włącz Dane o użytkownikach , aby umożliwić AdMob przetwarzanie i wyświetlanie wyselekcjonowanych danych Google Analytics na koncie AdMob. Jest to też wymagane ustawienie, aby połączyć aplikację AdMob z Firebase.

    2. Połącz aplikację AdMob z dotychczasowym projektem w Firebase i odpowiednią aplikacją w Firebase.

      Upewnij się, że wpisujesz tę samą nazwę pakietu (Android) lub identyfikator pakietu (iOS) co w przypadku aplikacji w Firebase. Nazwę pakietu lub identyfikator pakietu aplikacji w Firebase znajdziesz na karcie Twoje aplikacje w sekcji > Ustawienia projektu.

Krok 2: dodaj do aplikacji identyfikator aplikacji AdMob

Android

Dodaj identyfikator aplikacji AdMob do pliku AndroidManifest.xml aplikacji, dodając tag <meta-data> w sposób pokazany poniżej.

<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ADMOB_APP_ID"/>
    </application>
</manifest>

iOS

W pliku Info.plist aplikacji dodaj klucz GADApplicationIdentifier z wartością ciągu znaków odpowiadającą AdMob identyfikatorowi aplikacji.

Możesz wprowadzić tę zmianę programowo:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

Możesz też edytować ją w edytorze listy właściwości:

Edytor listy właściwości

Krok 3: dodaj pakiet SDK do reklam mobilnych Google

Pakiet SDK do reklam mobilnych Google w C++ znajduje się w przestrzeni nazw firebase::gma, pobierz pakiet Firebase C++ SDK, a następnie rozpakuj go do wybranego katalogu.

Pakiet Firebase C++ SDK nie jest specyficzny dla platformy, ale wymaga konfiguracji biblioteki specyficznej dla platformy.

Android

  1. W pliku gradle.properties projektu określ lokalizację rozpakowanego pakietu SDK:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. Do pliku settings.gradle projektu dodaj te treści:

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
  3. Do pliku Gradle na poziomie modułu (aplikacji) (zwykle app/build.gradle) dodaj te treści, które zawierają zależność biblioteki od pakietu SDK do reklam mobilnych Google w C++.

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependency for the Google Mobile Ads C++ SDK
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      gma
    }
  4. Do pliku CMakeLists.txt projektu dodaj te treści.

    # Add Firebase libraries to the target using the function from the SDK.
    add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
    
    # Add the Google Mobile Ads C++ SDK.
    
    # The Firebase C++ library `firebase_app` is required,
    # and it must always be listed last.
    
    set(firebase_libs
      firebase_gma
      firebase_app
    )
    
    target_link_libraries(${target_name} "${firebase_libs}")
  5. Zsynchronizuj aplikację, aby wszystkie zależności na pewno miały odpowiednie wersje.

To już wszystko Aplikacja w C++ jest skonfigurowana do używania pakietu SDK do reklam mobilnych Google w C++.

iOS

Kroki opisane w tej sekcji pokazują, jak dodać pakiet SDK do reklam mobilnych Google w C++ do projektu na iOS.

  1. Pobierz CocoaPods w wersji 1 lub nowszej, uruchamiając:

    sudo gem install cocoapods --pre
  2. Dodaj Google Mobile Ads pod z rozpakowanego pakietu SDK.

    1. Utwórz plik Podfile, jeśli go nie masz:

      cd YOUR_APP_DIRECTORY
      pod init
    2. Do pliku Podfile dodaj pod pakietu SDK do reklam mobilnych Google w C++:

      pod 'Google-Mobile-Ads-SDK'
    3. Zainstaluj pod, a następnie otwórz plik .xcworkspace w Xcode.

      pod install
      open YOUR_APP.xcworkspace
    4. Dodaj do projektu te frameworki z pakietu Firebase C++ SDK:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

To już wszystko Aplikacja w C++ jest skonfigurowana do używania pakietu SDK do reklam mobilnych Google w C++.

Krok 4: zainicjuj pakiet SDK do reklam mobilnych Google

Zanim aplikacja wczyta reklamy, musi zainicjować pakiet SDK Mobile Ads, wywołując funkcję firebase::gma::Initialize().

To wywołanie zwraca firebase::Future, które zostanie ukończone po zakończeniu inicjowania (lub po 30 sekundach bezczynności). Wywołaj tę metodę tylko raz i jak najszybciej, najlepiej przy uruchomieniu aplikacji.

Oto przykład wywołania funkcji Initialize():

Android

// Initialize the Google Mobile Ads library
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(jni_env, j_activity, &result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing dependency.
  // Check the device logs for more information.
  return;
}

// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
    future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed.
} else {
  // Initialization on-going, or an error has occurred.
}

iOS

// Initialize the Google Mobile Ads library.
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(&result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing dependency.
  // Check the device logs for more information.
  return;
}

// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
    future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed.
} else {
  // Initialization on-going, or an error has occurred.
}

Używanie Future do monitorowania stanu ukończenia wywołania metody

Future umożliwia określenie stanu ukończenia asynchronicznych wywołań metod.

Gdy na przykład aplikacja wywołuje funkcję firebase::gma::Initialize(), tworzone jest nowe firebase::Future i zwracane. Aplikacja może następnie sondować status() funkcji Future, aby określić, kiedy inicjowanie zostało zakończone. Po zakończeniu aplikacja może wywołać funkcję result(), aby uzyskać wynikowy AdapterInitializationStatus.

Metody, które zwracają Future, mają odpowiednią metodę „ostatniego wyniku”, której aplikacje mogą używać do pobierania najnowszego Future dla danego działania. Na przykład firebase::gma::Initialize() ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult(), która zwraca Future, którego aplikacja może używać do sprawdzania stanu ostatniego wywołania funkcji firebase::gma::Initialize().

Jeśli stan Future to „ukończono”, a kod błędu to firebase::gma::kAdErrorCodeNone, oznacza to, że operacja została zakończona pomyślnie.

Możesz też zarejestrować wywołania zwrotne, które mają być wywoływane po ukończeniu Future. W niektórych przypadkach wywołanie zwrotne będzie działać w innym wątku, więc upewnij się, że Twój kod jest bezpieczny dla wątków. Ten fragment kodu używa wskaźnika funkcji do wywołania zwrotnego:

// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
  /*user_data=*/nullptr);

// The OnCompletion callback function.
static void OnCompletionCallback(
  const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
  // Called when the Future is completed for the last call to firebase::gma::Initialize().
  // If the error code is firebase::gma::kAdErrorCodeNone,
  // then the SDK has been successfully initialized.
  if (future.error() == firebase::gma::kAdErrorCodeNone) {
    // success!
  } else {
    // failure.
  }
}

Krok 5: wybierz format reklamy do zaimplementowania w aplikacji

AdMob oferuje wiele różnych formatów reklam, dzięki czemu możesz wybrać format, który najlepiej pasuje do wrażeń użytkowników w Twojej aplikacji. Kliknij przycisk formatu reklamy, aby wyświetlić szczegółowe instrukcje implementacji w dokumentacji AdMob.

Prostokątne reklamy wyświetlane u góry lub u dołu ekranu urządzenia.

Banery reklamowe pozostają na ekranie, gdy użytkownicy wchodzą w interakcję z aplikacją, i mogą być automatycznie odświeżane po upływie określonego czasu. Jeśli dopiero zaczynasz korzystać z reklam mobilnych, jest to dobry sposób na rozpoczęcie.

Implementowanie banerów reklamowych

Pełnoekranowa

Reklamy pełnoekranowe, które zakrywają interfejs aplikacji, dopóki użytkownik ich nie zamknie.

Reklamy pełnoekranowe najlepiej sprawdzają się w naturalnych momentach przejściowych w aplikacji, np. między poziomami gry lub tuż po wykonaniu zadania.

Implementowanie reklam pełnoekranowych

Z nagrodą

Reklamy, które nagradzają użytkowników za oglądanie krótkich filmów i interakcje z reklamami demonstracyjnymi gier oraz ankietami.

Reklamy z nagrodą mogą pomóc w zarabianiu na użytkownikach, którzy grają bezpłatnie.

Implementowanie reklam z nagrodą

Inne interesujące tematy

Wyświetlanie danych o użytkownikach i danych Google Analytics

Po zainicjowaniu pakiet Mobile Ads SDK automatycznie zaczyna rejestrować zdarzenia Google Analytics i właściwości użytkownika z Twojej aplikacji. Możesz wyświetlać te dane bez dodawania do aplikacji dodatkowego kodu ani implementowania reklam. Oto miejsca, w których możesz zobaczyć te dane Google Analytics:

Pamiętaj, że aby lepiej przedstawić dane ARPU i ARPPU, możesz uwzględnić w obliczeniach przychodów dla tych danych informacje o zdarzeniu Google Analytics niestandardowym o nazwie ecommerce_purchase (dowiedz się, jak to zrobić).

(Opcjonalnie) Korzystanie z większej liczby funkcji Google Analytics i Firebase

Skorzystaj z większej liczby możliwości i funkcji, aby zwiększyć przychody z aplikacji i zaangażowanie użytkowników: