Ten przewodnik jest przeznaczony dla wydawców i programistów, którzy chcą z użyciem AdMobzarabiać na aplikacji stworzonej w Firebase. Jeśli nie planujesz włączyć Firebase do swojej aplikacji, zapoznaj się z samodzielnym AdMob przewodnikiem.
Jeśli jeszcze tego nie zrobisz, dowiedz się więcej o zaletach korzystania z AdMob, Firebase i Google Analytics.
Jeśli po raz pierwszy korzystasz z tego przewodnika, pobierz i użyj aplikacji testowej pakietu SDK do reklam mobilnych Google w C++.
Zanim zaczniesz
Jeśli nie masz jeszcze projektu Firebase ani aplikacji Firebase, skorzystaj z przewodnika dla początkujących użytkowników 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 w trakcie procesu tworzenia projektu.
Jeśli masz dotychczasowy projekt Firebase bez włączonej usługi Google Analytics, możesz ją włączyć na karcie Integracje w sekcji
. > Ustawienia projektuGoogle Analytics
Krok 1. Skonfiguruj aplikację na koncie AdMob
Zarejestruj każdy wariant aplikacji na danej platformie jako aplikację AdMob.
Zaloguj się lub zarejestruj na koncie AdMob.
Zarejestruj każdą wersję aplikacji na danej platformie w AdMob. W tym kroku utworzysz aplikację AdMob z unikalnym AdMobidentyfikatorem aplikacji, którego będziesz potrzebować w dalszej części tego przewodnika.
Pojawi się prośba o dodanie do aplikacji pakietu SDK Mobile Ads. Szczegółowe instrukcje dotyczące tego zadania znajdziesz w dalszej części tego przewodnika.
Połącz każdą aplikację AdMob z odpowiednią aplikacją Firebase.
Ten krok jest opcjonalny, ale zdecydowanie zalecany. Dowiedz się więcej o korzyściach płynących z włączenia danych o użytkownikach i z połączenia aplikacji AdMob z Firebase.
W przypadku każdej platformy wykonaj te 2 czynności na panelu Aplikacje na koncie AdMob:
Włącz dane o użytkownikach, aby umożliwić usłudze AdMob przetwarzanie i wyświetlanie na koncie AdMob danych analitycznych. To też wymagane ustawienie, aby połączyć aplikację AdMob z Firebase.
Połącz aplikację AdMob 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. Na karcie Twoje aplikacje w sekcji
Ustawienia projektu znajdziesz nazwę pakietu lub identyfikator pakietu aplikacji Firebase. >
Krok 2. Dodaj do aplikacji identyfikator aplikacji AdMob
Android
Dodaj identyfikator aplikacji AdMob do pliku AndroidManifest.xml
aplikacji, dodając tag <meta-data>
, jak pokazano 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
o wartości ciągu znaków odpowiadającej AdMobidentyfikatorowi 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:
Krok 3. Dodaj pakiet SDK do reklam mobilnych Google
Pakiet SDK Google Mobile Ads w C++ znajduje się w przestrzeni nazw firebase::gma
, więc pobierz pakiet SDK Firebase w C++, a potem rozpakuj go do wybranego katalogu.
Pakiet SDK Firebase C++ nie jest przeznaczony tylko dla jednej platformy, ale wymaga konfiguracji biblioteki dla danej platformy.
Android
W pliku
gradle.properties
projektu określ lokalizację rozpakowanego pakietu SDK:systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
Dodaj do pliku
settings.gradle
projektu te informacje: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"
Dodaj do pliku Gradle modułu (na poziomie aplikacji) (zwykle
app/build.gradle
) następujące treści, które zawierają 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.txt
projektu te treści.# 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.
To już wszystko Aplikacja w języku C++ jest skonfigurowana do korzystania z pakietu SDK do reklam mobilnych Google w języku C++.
iOS
W tej sekcji znajdziesz przykład dodawania pakietu SDK do reklam mobilnych Google w języku C++ do projektu na iOS.
Aby uzyskać CocoaPods w wersji 1 lub nowszej, wykonaj te czynności:
sudo gem install cocoapods --pre
Dodaj podelement Google Mobile Ads z rozpakowanego pakietu SDK.
Utwórz plik Podfile, jeśli go nie masz:
cd YOUR_APP_DIRECTORY
pod init
Dodaj do pliku Podfile pod do pakietu SDK do reklam mobilnych Google w C++:
pod 'Google-Mobile-Ads-SDK'
Zainstaluj pod, a potem otwórz plik
.xcworkspace
w Xcode.pod install
open YOUR_APP.xcworkspace
Dodaj do projektu te frameworki z pakietu SDK Firebase C++:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
To już wszystko Aplikacja w języku C++ jest skonfigurowana do korzystania z pakietu SDK do reklam mobilnych Google w języku C++.
Krok 4. Zainicjuj pakiet SDK do reklam mobilnych Google
Przed wczytywaniem reklam zainicjuj pakiet SDK Mobile Ads, wywołując funkcję firebase::gma::Initialize()
.
To wywołanie zwraca firebase::Future
, które kończy się po zakończeniu inicjalizacji (lub po 30 sekundach bezczynności). Wywołuj tę metodę tylko raz i jak najszybciej, najlepiej podczas uruchamiania 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żywanie Future
do monitorowania stanu zakończenia wywołania metody
Future
umożliwia określenie stanu zakończenia asynchronicznych wywołań metody.
Gdy na przykład aplikacja wywoła funkcję firebase::gma::Initialize()
, zostanie utworzony i zwrócony nowy obiekt firebase::Future
. Aplikacja może następnie sprawdzać status()
Future
, aby określić, kiedy inicjalizacja została zakończona.
Po zakończeniu działania metoda result()
może wywołać metodę result()
, aby uzyskać parametr AdapterInitializationStatus
.
Metody zwracające wartość Future
mają odpowiednią metodę „ostatniego wyniku”, której aplikacje mogą używać do pobierania najnowszego Future
dla danego działania. Na przykład firebase::gma::Initialize()
ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult()
, która zwraca wartość Future
, której Twoja aplikacja może użyć do sprawdzenia stanu ostatniego wywołania funkcji firebase::gma::Initialize()
.
Jeśli stan Future
to „complete” (ukończono) i jego kod błędu to firebase::gma::kAdErrorCodeNone
, oznacza to, że operacja została ukończona pomyślnie.
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, dlatego upewnij się, że Twój kod jest bezpieczny w takim przypadku. 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 implementacji w aplikacji
AdMob oferuje wiele różnych formatów reklam, więc możesz wybrać ten, który najlepiej odpowiada potrzebom użytkowników Twojej aplikacji. Kliknij przycisk formatu reklamy, aby wyświetlić szczegółowe instrukcje implementacji w dokumentacji AdMob.
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 reklamami mobilnymi, te artykuły będą dla Ciebie przydatne.
Wdrażanie banerów reklamowychPeł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 funkcjonowaniu aplikacji, np. między poziomami gry lub tuż po wykonaniu zadania.
Wdrażanie reklam pełnoekranowychZ nagrodą
Reklamy, które umożliwiają nagradzanie użytkowników w zamian za oglądanie krótkich filmów, wchodzenie w interakcje z reklamami demonstracyjnymi gry oraz wypełnianie ankiet
Reklamy z nagrodą (lub „oparte na nagrodzie”) mogą pomóc w zarabianiu na użytkownikach bezpłatnych gier.
Inne interesujące tematy
Wyświetlanie danych o użytkownikach i danych analitycznych
Po zainicjowaniu pakiet SDK Mobile Ads automatycznie zaczyna rejestrować zdarzenia i właściwości użytkownika z aplikacji. Możesz wyświetlać te dane bez dodawania dodatkowego kodu do aplikacji ani implementowania reklam. Te dane analityczne możesz wyświetlić w tych miejscach:
Na karcie Dane o użytkownikach na koncie AdMob (w panelu Główny lub Aplikacje) możesz wyświetlać wybrane dane o użytkownikach pochodzące ze zgromadzonych danych analitycznych, takie jak średni czas trwania sesji, średnie przychody na użytkownika i utrzymanie.
W panelu Statystyki konsoli Firebase możesz wyświetlać zbiorcze statystyki i podsumowania kluczowych danych. Jeśli dodasz pakiet SDK Firebase do Google Analytics, możesz też oznaczać konwersje w kampaniach reklamowych i tworzyć listy odbiorców niestandardowych w konsoli Firebase.
Pamiętaj, że aby lepiej odzwierciedlać dane ARPU i ARPPU, możesz uwzględnić w obliczeniach przychodów dotyczących tych danych dane z zdarzenia niestandardowego o nazwie ecommerce_purchase
(dowiedz się, jak to zrobić).
(Opcjonalnie) Korzystanie z większej liczby funkcji Google Analytics i Firebase
Korzystaj z większej liczby możliwości i funkcji, aby zwiększyć przychody z aplikacji i zaangażowanie użytkowników:
Dodawanie pakietu SDK Firebase do Google Analytics i korzystanie z niego
Zaimplementuj w swojej aplikacji rejestrowanie zdarzeń niestandardowych.
oznaczać konwersje w kampaniach reklamowych niestandardowych.
Uwzględnij dane zdarzenia
ecommerce_purchase
w obliczeniach przychodów w przypadku danych ARPU i ARPPU.
Więcej informacji znajdziesz w przewodniku Używanie funkcji Google Analytics i Firebase w aplikacjach AdMob.
Korzystanie w aplikacji z innych usług Firebase
Po dodaniu pakietu SDK Firebase do Google Analytics możesz używać innych usług Firebase do optymalizowania reklam w aplikacji.
Remote Config umożliwia bezpłatną zmianę zachowania i wyglądu aplikacji bez publikowania jej nowej wersji dla nieograniczonej liczby aktywnych użytkowników dziennie.
A/B Testing umożliwia testowanie zmian interfejsu, funkcji lub kampanii promujących związanych z aplikacją w celu sprawdzenia, czy mają one wpływ na kluczowe dane (np. przychody i utrzymanie użytkowników), zanim wprowadzisz je na dużą skalę.