Rozpocznij

Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji w języku C++ dzięki AdMob bez użycia Firebase. Jeśli planujesz umieścić Firebase w swojej aplikacji (lub tylko się na to zastanawiasz), zapoznaj się z wersją tego przewodnika dotyczącą AdMob z Firebase.

Zintegrowanie pakietu SDK C++ do reklam mobilnych Google z aplikacją to pierwszy krok do wyświetlania reklam i zarabiania. Po zintegrowaniu pakietu SDK możesz wybrać format reklamy, np. reklama pełnoekranowa lub reklama z nagrodą, i postępować zgodnie z instrukcjami implementacji.

Pakiet SDK do reklam mobilnych Google w języku C++ to pakiet SDK do reklam mobilnych Google na iOS i Androida. Jest on dostępny tylko na tych platformach. Pakiet SDK do reklam mobilnych Google w języku C++ korzysta z konstrukcji Firebase w C++ do obsługi operacji asynchronicznych, dlatego znajduje się w przestrzeni nazw firebase::gma.

Jeśli korzystasz z tego przewodnika po raz pierwszy, zalecamy pobranie i postępowanie zgodnie ze wskazówkami w aplikacji testowej C++ do reklam mobilnych Google.

Wymagania wstępne

Android

  • Korzystanie z Android Studio 3.2 lub nowszej wersji
  • Plik kompilacji aplikacji musi zawierać te wartości:
    • wartość minSdkVersion wynosząca co najmniej 16,
    • wartość compileSdkVersion wynosząca co najmniej 28,

iOS

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

Konfigurowanie aplikacji na koncie AdMob

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

  1. Zaloguj się na konto AdMob lub zarejestruj się.

  2. Zarejestruj swoją aplikację w AdMob. W tym kroku utworzysz aplikację AdMob z unikalnym identyfikatorem aplikacji AdMob, który jest potrzebny w dalszej części tego przewodnika.

Zainstaluj pakiet SDK do reklam mobilnych Google w C++

Ponieważ pakiet SDK C++ do reklam mobilnych Google znajduje się w przestrzeni nazw firebase::gma, pobierz pakiet Firebase C++ SDK i rozpakuj go do wybranego katalogu.

Pakiet Firebase C++ SDK nie jest związany z konkretną platformą, ale wymaga konfiguracji biblioteki na potrzeby danej platformy.

Android

Zalecamy korzystanie z CMake, ale instrukcje dotyczące ndk-build znajdziesz w naszym ogólnym Przewodniku dla początkujących dotyczącym pakietu SDK Firebase C++, który łączy libfirebase_app.a i libfirebase_gma.a ze swoją 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 obejmuje zależność biblioteki pakietu SDK C++ do reklam mobilnych Google.

    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 pokazano, jak dodać pakiet SDK do reklam mobilnych Google w języku C++ do projektu na iOS.

  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. Do pliku Podfile dodaj pody dla pakietu SDK do reklam mobilnych Google w C++, pakietu SDK User Messaging Platform od Google i minimalnego podstawowego pakietu SDK Firebase (wymaganego 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 korzystać z pakietu SDK C++ do reklam mobilnych Google bez żadnych innych usług Firebase.

Skonfiguruj identyfikator aplikacji AdMob

Android

Wykonaj krok 3 sekcji Skonfiguruj aplikację zgodnie z przewodnikiem na temat pakietu SDK do reklam mobilnych na Androida, a potem wróć na tę stronę.

iOS

Wykonaj czynność aktualizowania pliku Info.plist zgodnie z opisem w przewodniku po pakiecie SDK do reklam mobilnych na iOS, a potem wróć na tę stronę.

Zainicjowanie pakietu SDK do reklam mobilnych Google

Przed wczytaniem reklam poproś aplikację o zainicjowanie pakietu SDK do reklam mobilnych Google w języku C++, używając wywołania firebase::gma::Initialize(), co inicjuje pakiet SDK i wykonuje firebase::Future po zakończeniu inicjalizacji (lub po upływie 30-sekundowego czasu oczekiwania). Wystarczy to zrobić tylko raz, najlepiej podczas uruchamiania aplikacji.

Reklamy mogą być wstępnie wczytywane przez pakiet SDK C++ do reklam mobilnych Google lub pakiety SDK partnera zapośredniczenia po wywołaniu funkcji Initialize(). Jeśli musisz uzyskać zgodę użytkowników z Europejskiego Obszaru Gospodarczego (EOG), ustaw wszelkie flagi związane z żądaniem (np. tag_for_child_directed_treatment lub tag_for_under_age_of_consent) albo podejmij inne działania przed wczytaniem reklam, wywołaj firebase::gma::SetRequestConfiguration() przed zainicjowaniem pakietu SDK do reklam mobilnych Google w C++. Więcej informacji znajdziesz w naszym przewodniku Kierowanie.

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

Za pomocą Future można określić stan ukończenia wywołań metod asynchronicznych.

Jeśli na przykład aplikacja wywołuje firebase::gma::Initialize(), zostaje utworzony i zwrócony nowy element firebase::Future. Aplikacja może następnie sondować status() elementu Future w celu określenia czasu 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ą metodę „ostatni wynik”, której aplikacje mogą używać do pobierania najnowszych wartości 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 aplikacja może użyć do sprawdzenia stanu ostatniego wywołania firebase::gma::Initialize().

Jeśli stan instancji Future jest zakończony, 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 zakończeniu Future. W niektórych przypadkach wywołanie zwrotne będzie uruchamiane w innym wątku, więc upewnij się, że kod jest bezpieczny w wątku. Ten fragment kodu wykorzystuje wskaźnik funkcji 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 i możesz zacząć zaimplementować reklamę. AdMob oferuje wiele różnych formatów reklam, możesz więc wybrać taki, który najlepiej pasuje do potrzeb użytkowników Twojej aplikacji.

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ą odświeżać się automatycznie po upływie określonego czasu. Jeśli dopiero zaczynasz korzystać z reklam mobilnych, powinien on być dla Ciebie przydatnym punktem wyjścia.

Implementowanie banerów reklamowych

Pełnoekranowa

Reklamy pełnoekranowe zasłaniające interfejs aplikacji do momentu zamknięcia przez użytkownika. Najlepiej sprawdzają się w naturalnych przerwach w procesie wykonywania aplikacji, np. między poziomami gry lub tuż po ukończeniu zadania.

Zastosuj reklamy pełnoekranowe

Otrzymano

Reklamy nagradzające użytkowników za oglądanie krótkich filmów, wchodzenie w interakcje z reklamami demonstracyjnymi gry oraz wypełnianie ankiet. Umożliwia zarabianie na bezpłatnych aplikacjach.

Wdróż reklamy z nagrodą