Catch up on highlights from Firebase at Google I/O 2023. Learn more

Zacznij korzystać z AdMob w swoim projekcie C++

Ten przewodnik szybkiego startu jest przeznaczony dla wydawców i programistów, którzy chcą używać AdMob do zarabiania na aplikacjach utworzonych przy użyciu Firebase. Jeśli nie planujesz uwzględnić Firebase w swojej aplikacji, zamiast tego zapoznaj się z samodzielnym przewodnikiem AdMob .

Jeśli jeszcze tego nie zrobiłeś, poznaj wszystkie korzyści płynące z jednoczesnego korzystania z AdMob, Firebase i Google Analytics.

Jeśli przeglądasz ten przewodnik po raz pierwszy, zalecamy pobranie aplikacji testowej Google Mobile Ads C++ SDK i korzystanie z niej .

Zanim zaczniesz

  • Jeśli nie masz jeszcze projektu Firebase i aplikacji Firebase, postępuj zgodnie z przewodnikiem wprowadzającym Firebase: Dodaj Firebase do swojego projektu C++ .

  • Upewnij się, że Google Analytics jest włączone w Twoim projekcie Firebase:

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

    • Jeśli masz istniejący projekt Firebase, w którym nie włączono Google Analytics, możesz włączyć Google Analytics na karcie Integracje w > Ustawienia projektu .

Krok 1: skonfiguruj aplikację na swoim koncie AdMob

  1. Zarejestruj każdy wariant platformy swojej aplikacji jako aplikację AdMob.

    1. Zaloguj się lub zarejestruj konto AdMob.

    2. Zarejestruj każdy wariant platformy swojej aplikacji w AdMob . W tym kroku utworzona zostanie aplikacja AdMob z unikalnym identyfikatorem aplikacji AdMob , którego będziesz potrzebować w dalszej części tego przewodnika.

    Zostaniesz poproszony o dodanie pakietu SDK do reklam mobilnych do swojej aplikacji. Szczegółowe instrukcje dotyczące tego zadania znajdziesz w dalszej części tego przewodnika.

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

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

    Dla każdego wariantu platformy wykonaj te dwie czynności w panelu Google Apps na swoim koncie AdMob:

    1. Włącz dane użytkownika , aby AdMob mógł przetwarzać i wyświetlać wybrane dane analityczne na Twoim koncie AdMob. Jest to również ustawienie wymagane do połączenia aplikacji AdMob z Firebase.

    2. Połącz swoją aplikację AdMob z istniejącym projektem Firebase i odpowiadającą mu aplikacją Firebase.

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

Krok 2: dodaj swój identyfikator aplikacji AdMob do swojej aplikacji

Android

Dodaj swój identyfikator aplikacji AdMob do pliku AndroidManifest.xml aplikacji, dodając tag <meta-data> , jak pokazano 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 swojej aplikacji dodaj klucz GADApplicationIdentifier z wartością ciągu swojego identyfikatora aplikacji AdMob .

Możesz wprowadzić tę zmianę programowo:

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

Lub edytuj go w edytorze listy właściwości:

Edytor listy właściwości

Krok 3: dodaj pakiet SDK do reklam mobilnych Google

Ponieważ pakiet SDK Google Mobile Ads C++ znajduje się w przestrzeni nazw firebase::gma , pobierz pakiet Firebase C++ SDK , a następnie rozpakuj go do wybranego katalogu.

Zestaw Firebase C++ SDK nie jest specyficzny dla platformy, ale wymaga konfiguracji 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 następującą zawartość:

    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 jest app/build.gradle ) dodaj następującą treść, która obejmuje zależność biblioteki dla pakietu SDK Google Mobile Ads 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ą zawartość.

    # 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 swoją aplikację, aby upewnić się, że wszystkie zależności mają niezbędne wersje.

Wszystko gotowe! Twoja aplikacja C++ jest skonfigurowana do używania pakietu SDK C++ do reklam mobilnych Google.

iOS

Czynności opisane w tej sekcji stanowią przykład dodawania pakietu SDK do reklam mobilnych Google w języku C++ do projektu na iOS.

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

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

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. Do pliku Podfile dodaj pod dla pakietu SDK Google Mobile Ads 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 następujące struktury z pakietu Firebase C++ SDK:

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

Wszystko gotowe! Twoja aplikacja C++ jest skonfigurowana do używania pakietu SDK C++ do reklam mobilnych Google.

Krok 4: zainicjuj pakiet SDK do reklam mobilnych Google

Przed załadowaniem reklam zainicjuj pakiet SDK do reklam mobilnych, wywołując firebase::gma::Initialize() .

To wywołanie zwraca firebase::Future , które kończy się po zakończeniu inicjalizacji (lub po upływie 30-sekundowego limitu czasu). Wywołaj tę metodę tylko raz i tak wcześnie, jak to możliwe, najlepiej podczas uruchamiania aplikacji.

Oto przykład wywołania 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

Future zapewnia sposób określania stanu ukończenia wywołań metod asynchronicznych.

Na przykład, gdy aplikacja wywołuje firebase::gma::Initialize() , tworzony jest i zwracany nowy firebase::Future . Twoja aplikacja może następnie sondować status() Future , aby określić, kiedy inicjalizacja została zakończona. Po zakończeniu aplikacja może wywołać funkcję result() w celu uzyskania wyniku AdapterInitializationStatus .

Metody, które zwracają Future mają odpowiednią metodę „ostatniego wyniku”, której aplikacje mogą użyć do pobrania najnowszej Future dla danej akcji. Na przykład firebase::gma::Initialize() ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult() , która zwraca Future , którego aplikacja może użyć do sprawdzenia stanu ostatniego wywołania firebase::gma::Initialize() .

Jeśli stan Future to Complete, a jego kod błędu to firebase::gma::kAdErrorCodeNone , oznacza to, że operacja zakończyła się pomyślnie.

Możesz także zarejestrować wywołania zwrotne, które będą wywoływane po zakoń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 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.
  }
}

Krok 5: wybierz format reklamy, który chcesz zaimplementować w swojej aplikacji

AdMob oferuje wiele różnych formatów reklam, więc możesz wybrać format, który najlepiej odpowiada wygodzie użytkownika 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ą odświeżać się automatycznie po pewnym czasie. Jeśli dopiero zaczynasz przygodę z reklamą mobilną, są one doskonałym miejscem do rozpoczęcia.

Zaimplementuj reklamy banerowe

Śródmiąższowy

Reklamy pełnoekranowe zakrywające interfejs aplikacji do momentu jej zamknięcia przez użytkownika

Reklamy pełnoekranowe najlepiej sprawdzają się w naturalnych przerwach w działaniu aplikacji, na przykład między poziomami gry lub tuż po zakończeniu zadania.

Zaimplementuj reklamy pełnoekranowe

Wynagrodzony

Reklamy nagradzające użytkowników za oglądanie krótkich filmów i interakcję z odtwarzalnymi reklamami i ankietami

Reklamy z nagrodami (lub „oparte na nagrodach”) mogą pomóc w zarabianiu na użytkownikach korzystających z darmowych gier.

Zaimplementuj reklamy z nagrodami

Inne interesujące tematy

Przeglądaj metryki użytkowników i dane analityczne

Po zainicjowaniu pakiet SDK do reklam mobilnych automatycznie rozpoczyna rejestrowanie zdarzeń analitycznych i właściwości użytkownika z Twojej aplikacji. Możesz przeglądać te dane bez dodawania dodatkowego kodu do aplikacji lub wdrażania reklam. Oto, gdzie możesz zobaczyć te dane analityczne:

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

(Opcjonalnie) Korzystaj 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:

  • Dodaj i używaj Firebase SDK dla Google Analytics

    Więcej informacji znajdziesz w przewodniku dotyczącym korzystania z Google Analytics i Firebase w aplikacjach AdMob .

  • Użyj innych produktów Firebase w swojej aplikacji

    Po dodaniu pakietu Firebase SDK dla Google Analytics użyj innych usług Firebase, by zoptymalizować reklamy w swojej aplikacji.

    • Zdalna konfiguracja umożliwia zmianę zachowania i wyglądu aplikacji bez publikowania aktualizacji aplikacji, bez żadnych kosztów, dla nieograniczonej liczby aktywnych użytkowników dziennie.

    • Testy A/B umożliwiają testowanie zmian w interfejsie użytkownika aplikacji, funkcjach lub kampaniach angażujących, aby dowiedzieć się, czy mają one wpływ na kluczowe wskaźniki (takie jak przychody i retencja), zanim zostaną szeroko rozpowszechnione.