Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji w języku C++ dzięki AdMob bez za pomocą Firebase. Jeśli planujesz dodać Firebase do swojej aplikacji albo zapoznaj się z artykułem AdMob z Firebase .
Pierwszym krokiem na drodze do zintegrowania z aplikacją pakietu SDK C++ do reklam mobilnych Google jest pakiet SDK C++. wyświetlanie reklam i zarabianie na nich. Po zintegrowaniu pakietu SDK możesz: wybierz format reklamy, np. pełnoekranowa lub z nagrodą, i postępuj zgodnie z instrukcjami, go wdrożyć.
Pakiet SDK do reklam mobilnych Google w języku C++ zawiera pakiety SDK do reklam mobilnych Google na iOS i Androida,
i jest dostępna tylko na tych platformach. Pakiet SDK do reklam mobilnych Google w języku C++ sprawia,
użycia konstrukcji Firebase C++ do obsługi operacji asynchronicznych, więc znajduje się
w przestrzeni nazw firebase::gma
.
Jeśli korzystasz z tego przewodnika po raz pierwszy, zalecamy pobierz i postępuj zgodnie z instrukcjami, korzystając z testu w języku C++ dla reklam mobilnych Google
Wymagania wstępne
Android
- Korzystanie z Android Studio 3.2 lub nowszej wersji
- Upewnij się, że plik kompilacji aplikacji zawiera te wartości:
- wartość
minSdkVersion
wynosząca co najmniej 16, - wartość
compileSdkVersion
wynosząca co najmniej 28,
- wartość
iOS
- Użyj Xcode 13 lub nowszej wersji
- Kierowanie na system iOS 10.0 lub nowszy
Konfigurowanie aplikacji na koncie AdMob
Aby zarejestrować swoją aplikację jako aplikację AdMob, wykonaj te czynności:
Zaloguj się lub zarejestruj się konta AdMob.
Zarejestruj aplikację w AdMob. W tym kroku tworzymy aplikacja z unikalnym identyfikatorem aplikacji AdMob które przydadzą się w dalszej części tego przewodnika.
Zainstaluj pakiet SDK do reklam mobilnych Google w C++
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
Zalecamy korzystanie z CMake, ale instrukcje dotyczące ndk-build znajdziesz w
ogólne Rozpoczęcie korzystania z pakietu SDK Firebase C++
Przewodnik
połącz usługi libfirebase_app.a
i libfirebase_gma.a
z aplikacją.
W pliku
gradle.properties
projektu określ lokalizację rozpakowany pakiet SDK:systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
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"
do pliku Gradle modułu (na poziomie aplikacji) – zwykle
app/build.gradle
– dodaj następującą treść, która zawiera parametr zależności biblioteki w pakiecie SDK do reklam mobilnych Google w języku 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 }
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}")
Zsynchronizuj aplikację, aby mieć pewność, że wszystkie zależności mają niezbędne wersje.
iOS
W tej sekcji pokazano, jak dodać reklamy mobilne Google C++ SDK do projektu iOS.
Pobierz CocoaPods w wersji 1 lub nowszej, uruchamiając polecenie:
sudo gem install cocoapods --pre
Dodaj blok reklam mobilnych Google z rozpakowanego pakietu SDK.
Utwórz plik Podfile, jeśli jeszcze go nie masz:
cd APP_DIRECTORY
pod init
Dodaj do pliku Podfile pody dla pakietu SDK C++ do reklam mobilnych Google, pakiet SDK User Messaging Platform od Google oraz minimalny podstawowy pakiet SDK Firebase. (wymagane przez pakiet GMA C++ SDK):
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
Zainstaluj pody, a następnie otwórz plik
.xcworkspace
w Xcode.pod install
open APP.xcworkspace
Dodaj do projektu te platformy z pakietu SDK Firebase C++:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
Wszystko gotowe Twoja aplikacja w C++ jest skonfigurowana tak, aby używać pakietu SDK do reklam mobilnych Google w języku C++ bez żadnych innych usług Firebase.
Skonfiguruj identyfikator aplikacji AdMob
Android
Wykonaj krok 3 z sekcji Skonfiguruj aplikację zgodnie z opisem w pakiecie SDK do reklam mobilnych. Przewodnik po Androidzie a potem wróć na tę stronę.
iOS
Wykonaj czynności opisane w sekcji Zaktualizuj plik Info.plist zgodnie z opisem w pakiecie SDK do reklam mobilnych. Przewodnik po iOS, a potem wróć do tej strony.
Zainicjowanie pakietu SDK do reklam mobilnych Google
Przed wczytaniem reklam poproś aplikację o zainicjowanie pakietu SDK do reklam mobilnych Google w języku C++ przez
wywołaną funkcję firebase::gma::Initialize()
, która inicjuje pakiet SDK i wykonuje
firebase::Future
po zakończeniu inicjowania (lub po 30 sekundach)
). Wystarczy to zrobić tylko raz, najlepiej podczas uruchamiania aplikacji.
Reklamy mogą być wstępnie wczytywane przez pakiet SDK do reklam mobilnych Google w języku C++ lub pakiety SDK partnera zapośredniczenia
po wywołaniu numeru Initialize()
. Jeśli musisz uzyskać zgodę od użytkowników
w Europejskim Obszarze Gospodarczym (EOG), ustaw wszelkie flagi dotyczące konkretnych żądań (np.
tag_for_child_directed_treatment
lub tag_for_under_age_of_consent
) albo
w przeciwnym razie przed wczytaniem reklam należy wykonać
firebase::gma::SetRequestConfiguration()
przed zainicjowaniem aplikacji Google Mobile
SDK Google Ads w C++. Więcej informacji znajdziesz w
Przewodnik po kierowaniu.
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.
}
}
Wybierz format reklamy
Pakiet SDK do reklam mobilnych Google w języku C++ został zaimportowany. Możesz go zaimplementować reklama. AdMob oferuje wiele różnych formatów reklam, możesz więc wybrać ten, który które najlepiej pasują do korzystania z Twojej aplikacji.
Baner
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. Najlepiej używać ich w naturalnych przerwach w procesie wykonywania aplikacji, 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. Umożliwia zarabianie na bezpłatnych aplikacjach.