Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji w C++ w AdMob bez korzystania z Firebase. Jeśli chcesz umieścić Firebase w swojej aplikacji lub rozważasz jej zastosowanie, przeczytaj zamiast tego wersję AdMob z Firebase.
Integrowanie pakietu SDK do reklam mobilnych Google w C++ z aplikacją to pierwszy krok w kierunku wyświetlania reklam i zarabiania. Po zintegrowaniu pakietu SDK możesz wybrać format reklamy, np. reklamę pełnoekranową lub z nagrodą, i postępować zgodnie z instrukcjami implementacji.
Pakiet SDK do reklam mobilnych Google w C++ obejmuje wszystkie 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++ wykorzystuje konstrukcje Firebase C++ do obsługi operacji asynchronicznych, dlatego znajduje się w przestrzeni nazw firebase::gma
.
Jeśli dopiero zaczynasz korzystać z tego przewodnika, zalecamy pobranie i skorzystanie z aplikacji testowej reklam mobilnych Google w C++.
Wymagania wstępne
Android
- Używaj Androida Studio 3.2 lub nowszego
- Upewnij się, że w kompilacji aplikacji używane są te wartości:
- Co najmniej
minSdkVersion
z grupy 16 lub wyższej - Minimalna wartość
compileSdkVersion
to 28
- Co najmniej
iOS
- Użyj Xcode 13 lub nowszego
- Kieruj reklamy na iOS 10.0 lub nowszy
Skonfiguruj aplikację na koncie AdMob
Aby zarejestrować aplikację jako aplikację AdMob:
Zaloguj się na konto AdMob lub zarejestruj się.
Zarejestruj aplikację w AdMob. W tym kroku zostanie utworzona aplikacja AdMob z unikalnym identyfikatorem aplikacji AdMob potrzebnym 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 SDK C++ Firebase, a następnie wypakuj go do wybranego katalogu.
SDK Firebase C++ nie jest przeznaczony dla konkretnej platformy, ale wymaga konfiguracji biblioteki specyficznej dla platformy.
Android
Zalecamy używanie narzędzia CMake, ale instrukcje ndk-build znajdziesz w naszym ogólnym przewodniku po pakietach SDK Firebase w C++, który pozwoli Ci połączyć libfirebase_app.a
i libfirebase_gma.a
z Twoją aplikacją.
W pliku
gradle.properties
projektu określ lokalizację rozpakowanego pakietu SDK:systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
Do pliku
settings.gradle
projektu dodaj te treści: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"
Plik Gradle modułu (na poziomie aplikacji) – zwykle
app/build.gradle
– zawiera 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 }
Do pliku
CMakeLists.txt
projektu dodaj tę 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
Poniżej znajdziesz instrukcje dodawania do projektu na iOS pakietu SDK do reklam mobilnych Google w wersji C++.
Uruchom CocoaPods w wersji 1 lub nowszej, uruchamiając polecenie:
sudo gem install cocoapods --pre
Dodaj blok reklamowy Google na telefon komórkowy z rozpakowanego pakietu SDK.
Utwórz plik Podfile, jeśli jeszcze go nie masz:
cd APP_DIRECTORY
pod init
Do pliku Podfile dodaj poda pakietu SDK do reklam mobilnych Google w C++:
pod 'Google-Mobile-Ads-SDK'
Zainstaluj poda, a następnie otwórz plik
.xcworkspace
w Xcode.pod install
open APP.xcworkspace
Dodaj do projektu te platformy Firebase z pakietu SDK C++:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
Wszystko gotowe. Twoja aplikacja C++ została skonfigurowana pod kątem korzystania z pakietu SDK do reklam mobilnych Google w C++ bez żadnych innych usług Firebase.
Skonfiguruj identyfikator aplikacji AdMob w swojej aplikacji
Android
Wykonaj krok 3 z konfigurowania aplikacji w sposób podany w przewodniku po pakiecie SDK do reklam mobilnych na Androida, a potem wróć na tę stronę.
iOS
Wykonaj czynności opisane w kroku Zaktualizuj plik Info.plist zgodnie z opisem w przewodniku po pakietach SDK do reklam mobilnych na iOS, a potem wróć na tę stronę.
Zainicjuj pakiet SDK do reklam mobilnych Google
Przed wczytaniem reklam poproś aplikację o zainicjowanie pakietu SDK do reklam mobilnych Google w C++, wywołując pakiet firebase::gma::Initialize()
, który inicjuje pakiet SDK i kończy działanie firebase::Future
po jego zainicjowaniu (lub po 30 sekundach bezczynności). Należy to zrobić tylko raz, najlepiej przy uruchamianiu aplikacji.
Reklamy mogą być wstępnie wczytywane przez pakiet SDK Google Mobile Ads w C++ lub pakiet SDK zapośredniczenia partnera po wywołaniu funkcji Initialize()
. Jeśli musisz uzyskać zgodę użytkowników z Europejskiego Obszaru Gospodarczego (EOG), ustaw flagi dotyczące tego żądania (np. tag_for_child_directed_treatment
lub tag_for_under_age_of_consent
) albo z innego powodu wykonaj czynności przed wczytaniem reklam, wywołaj firebase::gma::SetRequestConfiguration()
przed zainicjowaniem pakietu SDK do reklam mobilnych Google w C++. Więcej informacji znajdziesz w naszym przewodniku.
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.
}
Aby monitorować stan ukończenia wywołania metody, użyj Future
Pole Future
umożliwia określenie stanu zakończenia wywołań metody asynchronicznego.
Jeśli na przykład aplikacja wywoła polecenie firebase::gma::Initialize()
, zostanie utworzony nowy element firebase::Future
, który zostanie zwrócony. Aplikacja może następnie przeprowadzić ankietę wśród status()
aplikacji Future
, aby ustalić, kiedy została ona zainicjowana.
Gdy to zrobisz, aplikacja może wywołać metodę result()
, by uzyskać wynikowy AdapterInitializationStatus
.
Metody zwracające Future
mają odpowiadającą im metodę „ostatni wynik”, która umożliwia aplikacjom pobieranie najnowszego Future
z danego działania. firebase::gma::Initialize()
ma na przykład odpowiednią metodę o nazwie firebase::gma::InitializeLastResult()
, która zwraca Future
, aby aplikacja mogła sprawdzić stan ostatniego wywołania firebase::gma::Initialize()
.
Jeśli stan elementu Future
został ukończony, a jego kod błędu to firebase::gma::kAdErrorCodeNone
, operacja została ukończona.
Możesz też zarejestrować wywołania zwrotne, które mają być wywoływane po zakończeniu wywołania 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 w wątku. Ten fragment kodu używa wskaźnika funkcji dla 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
Zaimportowano pakiet SDK do reklam mobilnych Google w C++. Możesz już wdrożyć 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 wyświetlane u góry lub u dołu ekranu urządzenia. Banery reklamowe pozostają widoczne na ekranie, gdy użytkownicy korzystają z aplikacji, a po określonym czasie mogą się automatycznie odświeżać. Jeśli dopiero zaczynasz przygodę z reklamami mobilnymi,
Implementowanie banerów reklamowych
Pełnoekranowa
reklamy pełnoekranowe, które zakrywają interfejs aplikacji do momentu ich zamknięcia przez użytkownika. Najlepiej robić to w naturalnych przerwach w wyświetlaniu aplikacji, np. między poziomami gry lub zaraz po ukończeniu zadania.
Stosowanie reklam pełnoekranowych
Otrzymano
Reklamy, które nagradzają użytkowników za oglądanie krótkich filmów oraz interakcje z reklamami i ankietami. Służy do zarabiania na bezpłatnych aplikacjach.