Wypróbuj

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji C++ w AdMob i nie używają Firebase. Jeśli planujesz uwzględnić w swojej aplikacji Firebase (lub ją rozważasz), zapoznaj się z tym przewodnikiem po wersji AdMob z Firebase.

Integracja pakietu SDK do reklam mobilnych Google w C++ z aplikacją to pierwszy krok w kierunku wyświetlania reklam i uzyskiwania przychodów. Po zintegrowaniu pakietu SDK możesz wybrać format reklamy (np. reklamę pełnoekranową lub z nagrodą) i wykonać instrukcje jego implementacji.

Pakiet SDK do reklam mobilnych Google w wersji C++ zawiera pakiety SDK do reklam mobilnych Google na iOS i Androida i jest dostępny tylko na tych platformach. Pakiet SDK do reklam mobilnych Google w C++ wykorzystuje konstrukcje Firebase C++ do obsługi operacji asynchronicznych, więc znajduje się w przestrzeni nazw firebase::gma.

Jeśli po raz pierwszy korzystasz z tego przewodnika, zalecamy pobranie i wykonanie poniższych czynności za pomocą aplikacji testowej reklam mobilnych Google w C++.

Wymagania wstępne

Android

  • Użyj Androida Studio w wersji 3.2 lub nowszej
  • Upewnij się, że w kompilacji aplikacji używane są te wartości:
    • minSdkVersion – 16 lub więcej
    • compileSdkVersion – co najmniej 28

iOS

  • Użyj Xcode 13 lub nowszego
  • Kieruj na urządzenia z systemem iOS 10.0 lub nowszym

Skonfiguruj aplikację na koncie AdMob

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

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

  2. Zarejestruj aplikację w AdMob W tym kroku zostanie utworzona aplikacja AdMob z unikalnym identyfikatorem aplikacji AdMob, która będzie potrzebna w dalszej części tego przewodnika.

Instalowanie pakietu SDK do reklam mobilnych Google w C++

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

Pakiet SDK Firebase C++ nie jest przeznaczony dla konkretnej platformy, ale wymaga bibliotek specyficznych 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 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 zależność biblioteki dla 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 następującą 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.

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

iOS

Poniżej opisujemy, jak dodać pakiet SDK do reklam mobilnych Google w C++ do projektu na iOS.

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

    sudo gem install cocoapods --pre
    
  2. Dodaj blok reklamowy Google na telefon komórkowy z rozpakowanego pakietu SDK.

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

      cd your-app-directory
      pod init
      
    2. Do pliku podfile dodaj blok reklamowy dla pakietu SDK do reklam mobilnych Google w C++:

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

      pod install
      open your-app.xcworkspace
      
    4. Dodaj do projektu te platformy:

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

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

Skonfiguruj identyfikator aplikacji AdMob w swojej aplikacji

Android

Wykonaj krok 3 konfiguracji aplikacji w sposób opisany w przewodniku po pakietach SDK do reklam mobilnych na Androida, a potem wróć na tę stronę dla początkujących w C++.

iOS

Wykonaj czynności opisane w kroku Zaktualizuj plik Info.plist zgodnie z opisem w przewodniku po pakiecie SDK do reklam mobilnych na iOS, a potem wróć na stronę z wprowadzeniem do C++.

Zainicjuj pakiet SDK do reklam mobilnych Google

Przed wczytaniem reklam poproś aplikację o zainicjowanie pakietu SDK do reklam mobilnych Google w języku C++. Wywołuj je w systemie firebase::gma::Initialize() i zakończy ono firebase::Future po zakończeniu inicjowania (lub gdy upłynie 30 sekund). Wystarczy to zrobić tylko raz, najlepiej przy uruchamianiu aplikacji.

Reklamy mogą być wstępnie wczytywane przez pakiet SDK Google Ads do reklam mobilnych Google lub pakiet SDK partnera zapośredniczenia po wywołaniu elementu Initialize(). Jeśli musisz uzyskać zgodę użytkowników z Europejskiego Obszaru Gospodarczego, ustawić dowolne flagi dotyczące żądania (np. tag_for_child_directed_treatment lub tag_for_under_age_of_consent) lub w inny sposób podjąć działania przed wczytaniem reklam, zrób to, wywołując firebase::gma::SetRequestConfiguration() przed zainicjowaniem pakietu SDK do reklam mobilnych Google. Więcej informacji znajdziesz w przewodniku Kierowanie.

Oto przykład, jak wywołać 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, aby monitorować stan zakończenia wywołania metody.

Pole Future pozwala określić stan ukończenia wywołań metody asynchronicznej.

Na przykład gdy aplikacja wywołuje metodę firebase::gma::Initialize(), tworzony i zwracany jest nowy firebase::Future. Aplikacja może następnie utworzyć ankietę w status() z Future, aby określić, kiedy inicjacja została zakończona. Gdy to zrobisz, aplikacja może wywołać metodę result(), aby uzyskać wynikowy AdapterInitializationStatus.

Metody zwracające Future mają odpowiednią metodę „ostatni wynik”, której aplikacje mogą użyć do pobrania ostatniego kodu Future dla danego działania. Na przykład firebase::gma::Initialize() ma odpowiadającą jej metodę firebase::gma::InitializeLastResult(), która zwraca Future, aby aplikacja mogła sprawdzić stan ostatniego wywołania firebase::gma::Initialize().

Jeśli stan zasobu Future został zakończony, a kod błędu to firebase::gma::kAdErrorCodeNone, operacja została wykonana.

Możesz też zarejestrować wywołania zwrotne, które mają być wywoływane po zakończeniu wywołania Future. W niektórych przypadkach wywołanie zwrotne działa w innym wątku, dlatego upewnij się, że Twój kod jest bezpieczny w wątku. Ten fragment kodu używa wskaźnika funkcji dla 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 C++ został zaimportowany. Możesz już zaimplementować reklamę. AdMob oferuje wiele różnych formatów reklam, możesz więc wybrać taką, która najlepiej pasuje do Twojej aplikacji.

Prostokątne reklamy, które wyświetlają się u góry lub u dołu ekranu urządzenia. Banery reklamowe pozostają na ekranie, gdy użytkownicy używają aplikacji, i po określonym czasie mogą się automatycznie odświeżać. Jeśli dopiero zaczynasz korzystać z reklam mobilnych,

Banery reklamowe

Pełnoekranowa

Reklamy pełnoekranowe zasłaniające interfejs aplikacji, dopóki użytkownik ich nie zamknie. Najlepiej sprawdza się w naturalnych przerwach w korzystaniu z aplikacji, np. między poziomami gry lub zaraz po ukończeniu zadania.

Stosowanie reklam pełnoekranowych

Otrzymano

Reklamy z nagrodą dla użytkowników, którzy oglądają krótkie filmy oraz wchodzą w interakcje z reklamami i ankietami. Służy do zarabiania na aplikacjach bezpłatnych.

Wdrażanie reklam z nagrodą