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 aplikacji utworzonej w Firebase.

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 po raz pierwszy korzystasz z tego przewodnika, zalecamy pobranie aplikacji testowej Google Mobile Ads C++ SDK i kontynuowanie jej śledzenia.

Zanim zaczniesz

  • Jeśli nie masz jeszcze projektu Firebase ani 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 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 . Ten krok tworzy aplikację AdMob z unikalnym identyfikatorem aplikacji AdMob , którego będziesz potrzebować w dalszej części tego przewodnika.

    Pojawi się prośba o dodanie pakietu SDK do reklam mobilnych do Twojej aplikacji. Znajdź szczegółowe instrukcje dotyczące tego zadania w dalszej części tego przewodnika.

  2. Połącz wszystkie swoje aplikacje 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.

    W przypadku każdego wariantu platformy wykonaj następujące dwa kroki w panelu Aplikacje na koncie AdMob:

    1. Włącz Dane o użytkownikach , aby umożliwić AdMob przetwarzanie i wyświetlanie wybranych danych analitycznych na Twoim koncie AdMob. Jest to również wymagane ustawienie do połączenia aplikacji AdMob z Firebase.

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

      Upewnij się, że wpisujesz tę samą nazwę pakietu (Android) lub identyfikator pakietu (iOS), co w aplikacji Firebase. Znajdź nazwę pakietu lub identyfikator pakietu swojej aplikacji Firebase 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 swojej 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 aplikacji dodaj klucz GADApplicationIdentifier z wartością ciągu znaków identyfikatora aplikacji AdMob .

Tę zmianę możesz wprowadzić 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 C++ do reklam mobilnych Google 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 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 app/build.gradle ) dodaj następującą zawartość, która obejmuje zależność biblioteki dla 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 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 korzystania z pakietu SDK C++ do reklam mobilnych Google.

iOS

Czynności opisane w tej sekcji to przykład, jak dodać pakiet SDK C++ do reklam mobilnych Google do projektu na iOS.

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

    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 YOUR_APP_DIRECTORY
      pod init
    2. Do pliku Pod dodaj blok pakietu SDK C++ do reklam mobilnych Google:

      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 frameworki z pakietu Firebase C++ SDK:

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

Wszystko gotowe! Twoja aplikacja C++ jest skonfigurowana do korzystania z 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 30-sekundowym przekroczeniu limitu czasu). Wywołaj tę metodę tylko raz i jak najwcześniej, najlepiej przy uruchomieniu 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 do monitorowania stanu zakończenia wywołania metody

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

Na przykład, gdy Twoja aplikacja firebase::gma::Initialize() , zostanie utworzony i zwrócony nowy firebase::Future . Twoja aplikacja może następnie sondować status() Future , aby określić, kiedy inicjowanie zostało zakończone. Po zakończeniu aplikacja może wywołać result() w celu uzyskania wynikowego AdapterInitializationStatus .

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

Jeśli stan Future jest zakończony, a kod błędu to firebase::gma::kAdErrorCodeNone , 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 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, 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 potrzebom użytkowników Twojej aplikacji. Kliknij przycisk formatu reklamy, by wyświetlić szczegółowe instrukcje implementacji w dokumentacji AdMob.

Reklamy prostokątne, które pojawiają się 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 określonym czasie. Jeśli jesteś nowicjuszem w reklamie mobilnej, to świetny początek.

Implementuj banery reklamowe

Śródmiąższowy

Reklamy pełnoekranowe, które zakrywają interfejs aplikacji do momentu 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.

Implementuj reklamy pełnoekranowe

Wynagrodzony

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

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

Implementuj reklamy z nagrodą

Inne interesujące tematy

Wyświetl 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żytkowników z Twojej aplikacji. Możesz przeglądać te dane bez dodawania dodatkowego kodu do aplikacji lub implementowania jakichkolwiek reklam. Oto, gdzie możesz zobaczyć te dane analityczne:

Pamiętaj, że aby lepiej reprezentować 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 pakiet Firebase SDK do Google Analytics i korzystaj z niego

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

    Po dodaniu pakietu SDK Firebase dla Google Analytics użyj innych produktów Firebase, aby 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, funkcjach lub kampaniach budujących zaangażowanie, aby dowiedzieć się, czy mają one wpływ na kluczowe dane (takie jak przychody i utrzymanie), zanim zmiany zostaną powszechnie wprowadzone.

Aby rozpocząć, zapoznaj się z przewodnikiem dotyczącym korzystania z Google Analytics i Firebase z aplikacjami AdMob .