Pierwsze kroki z AdMob w projekcie C++


Ten przewodnik jest przeznaczony dla wydawców i programistów, którzy chcą używać AdMob do zarabiania na aplikacji utworzonej za pomocą Firebase. Jeśli nie planujesz uwzględniać Firebase w swojej aplikacji, zapoznaj się z samodzielnym przewodnikiem.AdMob

Jeśli jeszcze tego nie zrobiono, zapoznaj się ze wszystkimi zaletami korzystania z AdMob, Firebase i Google Analytics.

Jeśli korzystasz z tego przewodnika po raz pierwszy, zalecamy pobranie i wykonanie kroków w aplikacji testowej pakietu SDK do reklam mobilnych Google w C++.

Zanim zaczniesz

Krok 1. Skonfiguruj aplikację na koncie AdMob

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

    1. Zaloguj się lub zarejestruj, aby utworzyć konto AdMob.

    2. Zarejestruj każdy wariant platformy aplikacji w AdMob. W tym kroku utworzysz aplikację AdMob z unikalnym AdMobidentyfikatorem aplikacji, który będzie potrzebny w dalszej części tego przewodnika.

    Zostaniesz poproszony(-a) o dodanie Mobile Adspakietu SDK do aplikacji. Szczegółowe instrukcje znajdziesz w dalszej części tego przewodnika.

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

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

    W przypadku każdej wersji platformy wykonaj te 2 czynności na panelu Aplikacje na koncie AdMob:

    1. WłączDane o użytkownikach, aby umożliwić AdMob przetwarzanie i wyświetlanie wyselekcjonowanych danych analitycznych na koncie AdMob. Jest to też wymagane ustawienie, aby połączyć AdMobaplikację z Firebase.

    2. PołączAdMob aplikację z dotychczasowym projektem Firebase i odpowiednią aplikacją Firebase.

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

Krok 2. Dodaj AdMob identyfikator aplikacji do aplikacji

Android

Dodaj AdMobidentyfikator aplikacji do pliku AndroidManifest.xml aplikacji, dodając tag <meta-data> w sposób pokazany 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 AdMob identyfikatora aplikacji.

Możesz wprowadzić tę zmianę programowo:

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

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

Edytor listy właściwości

Krok 3. Dodaj pakiet SDK do reklam mobilnych Google

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

Pakiet Firebase C++ SDK nie jest przeznaczony dla konkretnej 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. Dodaj do pliku settings.gradle projektu te wiersze:

    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 na poziomie modułu (aplikacji) (zwykle app/build.gradle) dodaj te treści, które obejmują zależność biblioteki 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. Dodaj do pliku CMakeLists.txt projektu te wiersze:

    # 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 wszystkie zależności na pewno miały odpowiednie wersje.

To już wszystko Aplikacja w C++ jest skonfigurowana do korzystania z pakietu SDK do reklam mobilnych Google w C++.

iOS

Czynności opisane w tej sekcji pokazują, jak dodać pakiet SDK do reklam mobilnych Google w C++ do projektu na iOS.

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

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

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. Do pliku Podfile dodaj pod pakietu SDK do reklam mobilnych Google w 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 te platformy z pakietu Firebase C++ SDK:

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

To już wszystko Aplikacja w C++ jest skonfigurowana do korzystania z pakietu SDK do reklam mobilnych Google w C++.

Krok 4. Zainicjuj pakiet SDK do reklam mobilnych Google

Przed wczytaniem reklam zainicjuj Mobile Adspakiet SDK, wywołując firebase::gma::Initialize().

To wywołanie zwraca obiekt firebase::Future, który kończy się po zakończeniu inicjowania (lub po 30 sekundach bezczynności). Wywołuj tę metodę tylko raz i jak najwcześniej, najlepiej przy uruchamianiu aplikacji.

Oto przykład wywołania funkcji 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 umożliwia określenie stanu zakończenia wywołań metod asynchronicznych.

Na przykład gdy aplikacja wywołuje firebase::gma::Initialize(), tworzony jest nowy obiekt firebase::Future i zwracany jest jego identyfikator. Aplikacja może następnie wysyłać zapytania do status()Future, aby określić, kiedy inicjowanie zostało zakończone. Po zakończeniu tego procesu aplikacja może wywołać funkcję result(), aby uzyskać wynikowy AdapterInitializationStatus.

Metody, które zwracają wartość Future, mają odpowiednią metodę „ostatni wynik”, której aplikacje mogą używać do pobierania najnowszej wartości Future dla danego działania. Na przykład klasa firebase::gma::Initialize() ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult(), która zwraca obiekt Future, za pomocą którego aplikacja może sprawdzić stan ostatniego wywołania funkcji firebase::gma::Initialize().

Jeśli stan Future to „complete”, a kod błędu to firebase::gma::kAdErrorCodeNone, oznacza to, że operacja została zakończona.

Możesz też zarejestrować wywołania zwrotne, które będą wywoływane po zakończeniu Future. W niektórych przypadkach wywołanie zwrotne będzie wykonywane 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 do wdrożenia w aplikacji

AdMob oferuje wiele różnych formatów reklam, dzięki czemu możesz wybrać ten, który najlepiej pasuje do wrażeń użytkowników Twojej aplikacji. Kliknij przycisk formatu reklamy, aby wyświetlić szczegółowe instrukcje wdrożenia w AdMobdokumentacji.

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ą być automatycznie odświeżane po upływie określonego czasu. Jeśli dopiero zaczynasz przygodę z reklamami mobilnymi, to świetny sposób na rozpoczęcie.

Wdrażanie banerów reklamowych

Pełnoekranowa

Reklamy pełnoekranowe, które zakrywają interfejs aplikacji, dopóki użytkownik ich nie zamknie.

Reklamy pełnoekranowe najlepiej sprawdzają się w naturalnych przerwach w działaniu aplikacji, np. między poziomami gry lub tuż po wykonaniu zadania.

Wdrażanie reklam pełnoekranowych

Z nagrodą

Reklamy, które nagradzają użytkowników za oglądanie krótkich filmów i wchodzenie w interakcje z reklamami demonstracyjnymi gier oraz ankietami.

Reklamy z nagrodą (lub „oparte na nagrodach”) mogą pomóc w zarabianiu na użytkownikach, którzy grają bezpłatnie.

Wdrażanie reklam z nagrodą

Inne interesujące tematy

Wyświetlanie danych o użytkownikach i danych analitycznych

Po zainicjowaniu pakiet SDK automatycznie rozpoczyna rejestrowanie Mobile Adszdarzeńwłaściwości użytkownika w aplikacji. Możesz wyświetlać te dane bez dodawania do aplikacji dodatkowego kodu ani wdrażania reklam. Dane analityczne możesz wyświetlać w tych miejscach:

Pamiętaj, że aby lepiej odzwierciedlać dane ARPUARPPU, możesz uwzględniać w obliczeniach przychodów na potrzeby tych danych informacje z niestandardowego zdarzenia analitycznego o nazwie ecommerce_purchase (dowiedz się, jak to zrobić).

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

  • Dodawanie i używanie pakietu SDK Firebase na platformie Google Analytics

    Więcej informacji znajdziesz w przewodniku dotyczącym używania Google Analytics i Firebase w AdMobaplikacjach.

  • Korzystanie z innych usług Firebase w aplikacji

    Po dodaniu pakietu SDK Firebase dla Google Analytics możesz używać innych usług Firebase do optymalizacji reklam w aplikacji.

    • Remote Config umożliwia zmianę zachowania i wyglądu aplikacji bez publikowania jej nowej wersji, bezpłatnie i dla nieograniczonej liczby aktywnych użytkowników dziennie.

    • A/B Testing – pozwalają testować zmiany interfejsu, funkcji lub kampanii promujących związanych z aplikacją, aby sprawdzić, czy mają one wpływ na kluczowe dane (np. przychody i retencję) przed wprowadzeniem ich na szeroką skalę.