Rozpocznij


Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji w języku C++ dzięki AdMob bez za pomocą Firebase. Jeśli planujesz uwzględnić Firebase w swojej aplikacji lub rozważasz taką możliwość, zapoznaj się z tą wersją tego przewodnika AdMob z Firebase.

Pierwszym krokiem, który musisz wykonać, aby zacząć wyświetlać reklamy i zarabiać, jest integracja pakietu SDK do reklam mobilnych Google w C++ z Twoją aplikacją. Po zintegrowaniu pakietu SDK możesz: wybierz format reklamy, np. pełnoekranowa lub z nagrodą, i postępuj zgodnie z instrukcjami, go wdrożyć.

Pakiet SDK do reklam mobilnych Google w języku C++ zawiera pakiety SDK do reklam mobilnych Google na iOS i Androida, i jest dostępna tylko na tych platformach. Pakiet SDK do reklam mobilnych Google w języku C++ sprawia, użycia konstrukcji Firebase C++ do obsługi operacji asynchronicznych, więc znajduje się w przestrzeni nazw firebase::gma.

Jeśli korzystasz z tego przewodnika po raz pierwszy, zalecamy pobierz i postępuj zgodnie z instrukcjami, korzystając z testu w języku C++ dla reklam mobilnych Google

Wymagania wstępne

Android

  • Użyj Android Studio w wersji 3.2 lub nowszej.
  • Upewnij się, że plik kompilacji aplikacji używa tych wartości:
    • wartość minSdkVersion 16 lub wyższa.
    • wartość compileSdkVersion wynosząca co najmniej 28.

iOS

  • Użyj Xcode 13 lub nowszej.
  • Kierowanie na system iOS 10.0 lub nowszy

Konfigurowanie aplikacji na koncie AdMob

Aby zarejestrować aplikację jako aplikację AdMob, wykonaj te czynności:

  1. Zaloguj się lub zarejestruj się konta AdMob.

  2. Zarejestruj aplikację w AdMob. W tym kroku tworzymy aplikacja z unikalnym identyfikatorem aplikacji AdMob które będą potrzebne w dalszej części tego przewodnika.

Zainstaluj pakiet SDK do reklam mobilnych Google w C++

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

Pakiet SDK Firebase C++ nie jest przeznaczony tylko dla jednej platformy, ale wymaga konfiguracji biblioteki dla danej platformy.

Android

Zalecamy korzystanie z CMake, ale instrukcje dotyczące ndk-build znajdziesz w ogólne Rozpoczęcie korzystania z pakietu SDK Firebase C++ Przewodnik połącz usługi libfirebase_app.a i libfirebase_gma.a z aplikacją.

  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 tę treść:

    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 modułu (na poziomie aplikacji) – zwykle app/build.gradle – dodaj następującą treść, która zawiera parametr zależności biblioteki w pakiecie 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 poniższą treść.

    # 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 mieć pewność, że wszystkie zależności mają niezbędne wersje.

iOS

W tej sekcji znajdziesz przykład dodawania do projektu na iOS pakietu SDK do reklam mobilnych Google w C++.

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

    sudo gem install cocoapods --pre
  2. Dodaj blok reklam mobilnych Google z rozpakowanego pakietu SDK.

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

      cd APP_DIRECTORY
      pod init
    2. Dodaj do pliku Podfile pody dla pakietu SDK C++ do reklam mobilnych Google, pakiet SDK User Messaging Platform od Google oraz minimalny podstawowy pakiet SDK Firebase. (wymagane przez pakiet GMA C++ SDK):

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

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

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

Wszystko gotowe Twoja aplikacja w C++ jest skonfigurowana tak, aby używać pakietu SDK do reklam mobilnych Google w języku C++ bez żadnych innych usług Firebase.

Skonfiguruj identyfikator aplikacji AdMob

Android

Wykonaj krok 3 w sekcji Konfigurowanie aplikacji zgodnie z instrukcjami podanymi w przewodniku dotyczącym pakietu SDK do reklam mobilnych na Androida, a potem wróć na tę stronę.

iOS

Wykonaj czynności opisane w sekcji Zaktualizuj plik Info.plist zgodnie z opisem w pakiecie SDK do reklam mobilnych. Przewodnik po iOS, a potem wróć do tej strony.

Inicjalizacja pakietu SDK do reklam mobilnych Google

Przed wczytaniem reklam poproś aplikację o zainicjowanie pakietu SDK do reklam mobilnych Google w języku C++ przez wywołaną funkcję firebase::gma::Initialize(), która inicjuje pakiet SDK i wykonuje firebase::Future po zakończeniu inicjowania (lub po 30 sekundach) ). Wystarczy to zrobić tylko raz, najlepiej podczas uruchamiania aplikacji.

Reklamy mogą być wstępnie wczytywane przez pakiet SDK do reklam mobilnych Google w języku C++ lub pakiety SDK partnera zapośredniczenia po wywołaniu numeru Initialize(). Jeśli musisz uzyskać zgodę od użytkowników w Europejskim Obszarze Gospodarczym (EOG), ustaw wszelkie flagi dotyczące konkretnych żądań (np. tag_for_child_directed_treatment lub tag_for_under_age_of_consent) albo w przeciwnym razie przed wczytaniem reklam należy wykonać firebase::gma::SetRequestConfiguration() przed zainicjowaniem aplikacji Google Mobile SDK Google Ads w C++. Więcej informacji znajdziesz w Przewodnik po kierowaniu.

Oto przykład, jak zadzwonić pod numer 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żyj Future do monitorowania stanu zakończenia wywołania metody

Future pozwala określić stan ukończenia asynchronicznych wywołań metod.

Na przykład, gdy aplikacja zadzwoni pod numer firebase::gma::Initialize(), zostanie wyświetlony nowy Element firebase::Future został utworzony i zwrócony. Aplikacja może wtedy przeprowadzać ankiety status() z Future, aby określić czas zakończenia inicjowania. Po zakończeniu aplikacja może wywołać metodę result(), aby uzyskać wynik AdapterInitializationStatus

Metody, które zwracają wartość Future, mają odpowiedni „ostatni wynik” które aplikacje, których mogą używać do pobierania najnowszych danych z kategorii Future dla danego działania. Na przykład firebase::gma::Initialize() ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult(), która zwraca wartość Future, której Twoja aplikacja może użyć do sprawdzenia stanu ostatniego wywołania funkcji firebase::gma::Initialize().

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

Możesz też zarejestrować wywołania zwrotne, które mają być wywoływane po zakończeniu Future. W w niektórych przypadkach wywołanie zwrotne będzie uruchamiane w innym wątku, więc upewnij się, czyli kod musi być bezpieczny w wątkach. 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.
  }
}

Wybierz format reklamy

Pakiet SDK do reklam mobilnych Google w języku C++ został zaimportowany. Możesz go zaimplementować reklama. AdMob oferuje wiele różnych formatów reklam, możesz więc wybrać ten, który które najlepiej pasują do korzystania z Twojej aplikacji.

Kwadratowe reklamy wyświetlane u góry lub na dole ekranu urządzenia. Banery reklamowe pozostają na ekranie, gdy użytkownicy wchodzą w interakcję z aplikacją i mogą są odświeżane automatycznie po upływie określonego czasu. Jeśli dopiero zaczynasz korzystać z urządzeń mobilnych reklamy, to dobry punkt wyjścia.

Implementowanie banerów reklamowych

Pełnoekranowa

reklamy pełnoekranowe, które zakrywają interfejs aplikacji, dopóki użytkownik ich nie zamknie; Najlepiej używać ich w naturalnych przerwach w procesie wykonywania aplikacji, np. między poziomami gry lub tuż po ukończeniu zadania.

Zastosuj reklamy pełnoekranowe

Z nagrodą

Reklamy, które umożliwiają nagradzanie użytkowników w zamian za oglądanie krótkich filmów, wchodzenie w interakcje z reklamami demonstracyjnymi gier oraz wypełnianie ankiet. Umożliwia zarabianie na bezpłatnych aplikacjach.

Wdróż reklamy z nagrodą