Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Zacznij korzystać z AdMob w swoim projekcie C++

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

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 C++ SDK do reklam mobilnych Google 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 załóż 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. Szczegółowe instrukcje dotyczące tego zadania znajdziesz 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 poda dodaj blok dla 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 upływie 30-sekundowego 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 wyświetlane u góry lub u dołu ekranu urządzenia

Banery reklamowe pozostają na ekranie podczas interakcji użytkowników z aplikacją i mogą się automatycznie odświeżać po określonym czasie. Jeśli jesteś nowicjuszem w reklamie mobilnej, to świetne miejsce na rozpoczęcie.

Implementuj banery reklamowe

Śródmiąższowy

Reklamy pełnoekranowe, które zakrywają interfejs aplikacji do momentu zamknięcia przez użytkownika

Reklam pełnoekranowych najlepiej używać 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 usług 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 .