Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji C++ za pomocą AdMob bez korzystania z Firebase. Jeśli planujesz uwzględnić Firebase w swojej aplikacji lub rozważasz taką możliwość, zapoznaj się z wersją tego przewodnika dotyczącą AdMob z Firebase.
Zintegrowanie pakietu SDK do reklam mobilnych Google w C++ z aplikacją to pierwszy krok do wyświetlania reklam i generowania przychodów. Po zintegrowaniu pakietu SDK możesz wybrać format reklamy, np. pełnoekranową lub z nagrodą, i wykonać czynności, aby go wdrożyć.
Pakiet SDK do reklam mobilnych Google w C++ zawiera pakiety SDK do reklam mobilnych Google na iOS i Androida i jest dostępny tylko na tych platformach. Pakiet SDK do reklam mobilnych Google w C++ korzysta z konstrukcji Firebase w C++, aby obsługiwać operacje asynchroniczne, więc znajduje się w przestrzeni nazw firebase::gma.
Jeśli po raz pierwszy korzystasz z tego przewodnika, zalecamy pobranie aplikacji testowej Google Mobile Ads w C++ i postępowanie zgodnie z instrukcjami.
Wymagania wstępne
Android
- używać Android Studio w wersji 3.2 lub nowszej,
- Sprawdź, czy w pliku kompilacji Twojej aplikacji znajdują się te wartości:
- wartość
minSdkVersionwynosząca co najmniej 16, - wartość
compileSdkVersionwynosząca co najmniej 28,
- wartość
iOS
- Używanie Xcode 13 lub nowszego
- system iOS w wersji 10.0 lub nowszej,
Konfigurowanie aplikacji na koncie AdMob
Aby zarejestrować aplikację jako aplikację w AdMob:
Zaloguj się lub zarejestruj na konto AdMob.
Zarejestruj aplikację w AdMob. W ten sposób utworzysz aplikację w AdMob z unikalnym identyfikatorem aplikacji w AdMob, który będzie potrzebny w dalszej części tego przewodnika.
Instalowanie pakietu SDK do reklam mobilnych Google w C++
Pakiet SDK do reklam mobilnych Google w C++ znajduje się w przestrzeni nazw firebase::gma, dlatego pobierz pakiet Firebase C++ SDK i rozpakuj go do wybranego katalogu.
Pakiet Firebase C++ SDK nie jest przeznaczony na konkretną platformę, ale wymaga konfiguracji bibliotek na poszczególnych platformach.
Android
Zalecamy korzystanie z CMake, ale instrukcje dotyczące ndk-build znajdziesz w naszym ogólnym przewodniku dla początkujących po pakiecie Firebase C++ SDK, który pomoże Ci połączyć libfirebase_app.a i libfirebase_gma.a z aplikacją.
W pliku
gradle.propertiesprojektu określ lokalizację rozpakowanego pakietu SDK:systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDKDodaj do pliku
settings.gradleprojektu 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"Do pliku Gradle na poziomie modułu (aplikacji) – zwykle
app/build.gradle– dodaj poniższą treść, która zawiera zależność biblioteki od 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 }Dodaj do pliku
CMakeLists.txtprojektu 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}")Zsynchronizuj aplikację, aby wszystkie zależności na pewno miały odpowiednie wersje.
iOS
Czynności opisane w tej sekcji pokazują, jak dodać pakiet SDK do reklam mobilnych Google w C++ do projektu na iOS.
Pobierz CocoaPods w wersji 1 lub nowszej, uruchamiając:
sudo gem install cocoapods --preDodaj blok reklamowy Google Mobile Ads z rozpakowanego pakietu SDK.
Utwórz plik Podfile, jeśli jeszcze go nie masz:
cd APP_DIRECTORYpod initDo pliku Podfile dodaj pody pakietu SDK do reklam mobilnych Google w C++, pakietu SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom i minimalnego pakietu SDK Firebase Core (wymaganego przez pakiet SDK do reklam mobilnych Google w C++):
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'Zainstaluj pody, a następnie otwórz plik
.xcworkspacew Xcode.pod installopen APP.xcworkspaceDodaj do projektu te platformy z pakietu Firebase C++ SDK:
xcframeworks/firebase.xcframeworkxcframeworks/firebase_gma.xcframework
Wszystko gotowe Twoja aplikacja w C++ jest skonfigurowana do korzystania z pakietu SDK do reklam mobilnych Google w C++ bez żadnych innych usług Firebase.
Konfigurowanie identyfikatora aplikacji w AdMob
Android
Wykonaj krok 3 z sekcji Konfigurowanie aplikacji opisanej w przewodniku po pakiecie SDK do wyświetlania reklam mobilnych na Androida, a potem wróć na tę stronę.
iOS
Wykonaj krok Zaktualizuj plik Info.plist opisany w przewodniku po pakiecie SDK do wyświetlania reklam mobilnych na iOS, a następnie wróć na tę stronę.
Inicjowanie pakietu SDK do reklam mobilnych Google
Zanim aplikacja wczyta reklamy, musi zainicjować pakiet SDK do reklam mobilnych Google w C++, wywołując funkcję firebase::gma::Initialize(), która inicjuje pakiet SDK i po zakończeniu inicjowania (lub po 30 sekundach bezczynności) zwraca firebase::Future. Należy to zrobić tylko raz, najlepiej przy uruchomieniu aplikacji.
Reklamy mogą być wstępnie wczytywane przez pakiet SDK do reklam mobilnych Google w C++ lub pakiety SDK partnerów zapośredniczenia po wywołaniu funkcji Initialize(). Jeśli musisz uzyskać zgodę użytkowników z Europejskiego Obszaru Gospodarczego (EOG), ustawić flagi związane z żądaniem (np. tag_for_child_directed_treatment lub tag_for_under_age_of_consent) albo podjąć inne działania przed wczytaniem reklam, pamiętaj, aby wywołać funkcję firebase::gma::SetRequestConfiguration() przed zainicjowaniem pakietu SDK do reklam mobilnych Google w C++. Więcej informacji znajdziesz w naszym przewodniku po kierowaniu.
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żywanie obiektu Future do monitorowania stanu realizacji wywołania metody
Future umożliwia określenie stanu ukończenia wywołań metod asynchronicznych.
Na przykład gdy aplikacja wywołuje firebase::gma::Initialize(), tworzony i zwracany jest nowy obiekt firebase::Future. Aplikacja może następnie odpytywać status() zasobu Future, aby określić, kiedy inicjowanie zostało zakończone.
Po zakończeniu aplikacja może wywołać result(), aby uzyskać wynik AdapterInitializationStatus.
Metody, które zwracają obiekt Future, mają odpowiadającą im metodę „ostatni wynik”, której aplikacje mogą używać do pobierania najnowszego obiektu Future dla danego działania. Na przykład firebase::gma::Initialize() ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult(), która zwraca obiekt Future. Aplikacja może go użyć do sprawdzenia stanu ostatniego wywołania metody firebase::gma::Initialize().
Jeśli stan Future to „ukończono”, a kod błędu to firebase::gma::kAdErrorCodeNone, operacja zakończyła się pomyślnie.
Możesz też zarejestrować wywołania zwrotne, które mają być wywoływane po zakończeniu działania Future. W niektórych przypadkach wywołanie zwrotne będzie działać w innym wątku, więc upewnij się, że kod jest wątkowo bezpieczny. 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.
}
}
Wybierz format reklamy
Pakiet SDK do reklam mobilnych Google w C++ został zaimportowany i możesz teraz zaimplementować reklamę. AdMob oferuje wiele różnych formatów reklam, dzięki czemu możesz wybrać ten, który najlepiej pasuje do Twojej aplikacji.
Baner
Prostokątne reklamy, które wyświetlają 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ą być automatycznie odświeżane po upływie określonego czasu. Jeśli dopiero zaczynasz przygodę z reklamą mobilną, to świetny punkt wyjścia.
Implementowanie banerów reklamowych
Pełnoekranowa
Reklamy pełnoekranowe, które zakrywają interfejs aplikacji, dopóki użytkownik ich nie zamknie. Najlepiej używać ich w naturalnych przerwach w działaniu aplikacji, np. między poziomami gry lub tuż po ukończeniu zadania.
Zaimplementuj reklamy pełnoekranowe
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 wypełnianie ankiet. Służy do zarabiania na grach bezpłatnych.