Pierwsze kroki z AdMob w projekcie w C++


Ten krótki przewodnik jest przeznaczony dla wydawców i deweloperów, którzy chcą korzystać z AdMob aby zarabiać na aplikacji stworzonej za pomocą Firebase. Jeśli nie planujesz dodawać Firebase do swojej aplikacji, otwórz samodzielna usługa AdMob .

Poznaj wszystkie funkcje zalet korzystania z AdMob, Firebase, i Google Analytics.

Jeśli korzystasz z tego przewodnika po raz pierwszy, zalecamy pobierz i wykonaj instrukcje testu pakietu SDK do reklam mobilnych Google w języku C++;

Zanim zaczniesz

  • Jeśli nie masz jeszcze projektu Firebase ani aplikacji Firebase, postępuj zgodnie z Przewodnik dla początkujących z Firebase: Dodaj Firebase do projektu C++.

  • Sprawdź, czy w projekcie Firebase włączona jest usługa Google Analytics:

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

    • Jeśli masz już projekt Firebase, który nie zawiera Jeśli włączysz Google Analytics, możesz włączyć Google Analytics na Integracje karta na Twoim urządzeniu > Ustawienia projektu.

Krok 1. Skonfiguruj aplikację na koncie AdMob

  1. Zarejestruj każdą wersję platformy swojej aplikacji jako aplikację w AdMob.

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

    2. Zarejestruj wersję każdej platformy aplikacji w: AdMob. Ten tworzy aplikację AdMob z unikalnym Identyfikator aplikacji które będą potrzebne w dalszej części tego przewodnika.

    Pojawi się prośba o dodanie do aplikacji pakietu SDK do reklam mobilnych. Znajdź dotyczące tego zadania znajdziesz w dalszej części tego przewodnika.

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

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

    W przypadku każdego wariantu platformy wykonaj te 2 czynności na stronie Aplikacje w panelu informacyjnym konta AdMob:

    1. Włącz Dane o użytkownikach Dzięki temu AdMob może przetwarzać i wyświetlać wybrane statystyki konto AdMob. Konieczne jest też ustawienie, aby połączyć z aplikacji AdMob do Firebase.

    2. Połącz aplikacja w AdMob do istniejącego projektu Firebase i odpowiadającej mu aplikacji Firebase.

      Upewnij się, że wpisujesz tę samą nazwę pakietu (Android) lub identyfikator pakietu. (iOS) zgodnie z podaną przez Ciebie nazwą aplikacji Firebase. Znajdź w swojej aplikacji Firebase nazwę pakietu lub identyfikator pakietu na karcie Twoje aplikacje na koncie Ustawienia projektu

Krok 2: dodaj identyfikator aplikacji AdMob do aplikacji

Android

Dodaj: Identyfikator aplikacji AdMob do pliku AndroidManifest.xml aplikacji, dodając tag <meta-data> jako 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 ze znakiem parametru Identyfikator aplikacji AdMob.

Możesz wprowadzić tę zmianę automatycznie:

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

Możesz też edytować ją w edytorze listy właściwości:

Edytujący listę właściwości

Krok 3. Dodaj pakiet SDK do reklam mobilnych Google

Pakiet SDK do reklam mobilnych Google w języku C++ 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 związany z konkretną platformą, ale wymaga z konfiguracjami bibliotek na poszczególnych platformach.

Android

  1. W pliku gradle.properties projektu określ lokalizację rozpakowany pakiet 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 parametr tej treści, która obejmuje zależność biblioteki C++ SDK 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.

To już wszystko Twoja aplikacja w języku C++ jest skonfigurowana tak, aby używać pakietu SDK do reklam mobilnych Google w języku C++.

iOS

W tej sekcji pokazano, jak dodać pakiet SDK do reklam mobilnych Google w języku C++ do projektu 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 YOUR_APP_DIRECTORY
      pod init
    2. Do pliku Podfile dodaj blok dla pakietu SDK C++ do reklam mobilnych Google:

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

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

To już wszystko Twoja aplikacja w języku C++ jest skonfigurowana tak, aby używać pakietu SDK do reklam mobilnych Google w języku C++.

Krok 4. Zainicjuj pakiet SDK do reklam mobilnych Google

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

To wywołanie zwraca żądanie firebase::Future, które kończy się po zainicjowaniu po zakończeniu (lub po 30-sekundowym czasie oczekiwania). Wywołaj tę metodę tylko raz i jako jak najwcześniej, najlepiej przy wprowadzaniu aplikacji na rynek.

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

Future pozwala określić stan ukończenia asynchronicznych wywołań metod.

Na przykład, gdy aplikacja zadzwoni pod numer firebase::gma::Initialize(), zostanie wyświetlony nowy Element firebase::Future został utworzony i zwrócony. Aplikacja może wtedy przeprowadzać ankiety status() z Future, aby określić czas 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 „ostatni wynik” które aplikacje, których mogą używać do pobierania najnowszych danych z kategorii Future dla danego działania. Dla: funkcji firebase::gma::Initialize() ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult(), który zwraca błąd Future ustawiony przez Twoją aplikację może użyć do sprawdzenia stanu ostatniego połączenia z firebase::gma::Initialize().

Jeśli stan usługi Future jest pełny, a jego kod błędu to firebase::gma::kAdErrorCodeNone, operacja została zakończona .

Możesz też zarejestrować wywołania zwrotne, które mają być wywoływane po zakończeniu Future. W w niektórych przypadkach wywołanie zwrotne będzie uruchamiane w innym wątku, więc upewnij się, czyli kod musi być bezpieczny w wątkach. Ten fragment kodu wykorzystuje wskaźnik funkcji dla atrybutu wywołanie zwrotne:

// 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 do zaimplementowania w aplikacji

AdMob oferuje wiele różnych formatów reklam, możesz więc wybrać format, najlepiej sprawdzi się w przypadku użytkowników, którzy korzystają z Twojej aplikacji. Kliknij przycisk formatu reklamy, aby wyświetl 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ą są odświeżane automatycznie po upływie określonego czasu. Jeśli dopiero zaczynasz korzystać z urządzeń mobilnych reklamy, to doskonały punkt wyjścia.

Implementowanie banerów reklamowych

Pełnoekranowa

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

Reklamy pełnoekranowe najlepiej działają w naturalnych przerwach w przepływie np. między poziomami gry lub tuż po ukończeniu zadania.

Zastosuj reklamy pełnoekranowe

Z nagrodą

Reklamy, które nagradzają użytkowników za oglądanie krótkich filmów i wchodzenie w interakcję z grami reklamy i ankiety

Reklamy z nagrodą mogą pomóc użytkownikom w zarabianiu na bezpłatnych grach.

Wdróż reklamy z nagrodą

Inne interesujące tematy

Wyświetlanie danych o użytkownikach i danych analitycznych

Po zainicjowaniu automatycznie uruchomi się pakiet SDK do reklam mobilnych analiza logów zdarzenia oraz właściwości użytkownika z aplikacji. Możesz wyświetlać te dane bez dodawania dodatkowego kodu do aplikacji lub implementacji jakichkolwiek reklam. Oto gdzie możesz zobaczyć te dane analityczne:

Pamiętaj, że aby lepiej przedstawić ARPU oraz ARPPU, możesz uwzględnić dane z niestandardowego zdarzenia Analytics o nazwie ecommerce_purchase są uwzględniane w obliczeniach przychodu dla tych danych, (dowiedz się, jak to zrobić).

(Opcjonalnie) Korzystanie z większej liczby funkcji Google Analytics i Firebase

Korzystaj z dodatkowych możliwości i funkcji, aby zwiększać przychody z aplikacji zaangażowanie użytkowników: