Panduan ini ditujukan untuk penayang yang ingin memonetisasi aplikasi C++ dengan AdMob, tanpa menggunakan Firebase. Jika Anda berencana untuk menyertakan Firebase dalam aplikasi—atau jika Anda mempertimbangkannya—lihat AdMob dengan versi Firebase ini. memandunya.
Mengintegrasikan Google Mobile Ads C++ SDK ke dalam aplikasi adalah langkah pertama untuk menampilkan iklan dan memperoleh penghasilan. Setelah mengintegrasikan SDK, Anda dapat memilih format iklan, seperti interstisial atau reward, dan ikuti langkah-langkah untuk menerapkannya.
Google Mobile Ads C++ SDK menggabungkan SDK Google Mobile Ads iOS dan Android,
dan hanya tersedia di platform tersebut. Google Mobile Ads C++ SDK membuat
penggunaan konstruksi Firebase C++ untuk mendukung operasi asinkron, sehingga elemen ini berada
dalam namespace firebase::gma
.
Jika ini adalah pertama kalinya Anda menggunakan panduan ini, sebaiknya Anda download dan ikuti menggunakan pengujian C++ Google Mobile Ads aplikasi.
Prasyarat
Android
- Menggunakan Android Studio 3.2 atau yang lebih baru
- Pastikan file build aplikasi Anda menggunakan nilai berikut:
minSdkVersion
dari 16 atau yang lebih tinggicompileSdkVersion
dari 28 atau lebih tinggi
iOS
- Menggunakan Xcode 13 atau yang lebih baru
- Menargetkan iOS 10.0 atau yang lebih tinggi
Menyiapkan aplikasi di akun AdMob
Daftarkan aplikasi Anda sebagai aplikasi AdMob dengan menyelesaikan langkah-langkah berikut:
Login ke atau daftar untuk akun AdMob.
Daftarkan aplikasi ke AdMob. Langkah ini akan membuat akun AdMob aplikasi dengan ID aplikasi AdMob unik yang diperlukan nanti dalam panduan ini.
Menginstal Google Mobile Ads C++ SDK
Karena Google Mobile Ads C++ SDK berada di namespace firebase::gma
,
download Firebase C++ SDK,
dan kemudian ekstrak ke
direktori pilihan Anda.
Firebase C++ SDK tidak bersifat khusus platform, tetapi memerlukan konfigurasi library spesifik per platform.
Android
Kami merekomendasikan CMake, tetapi Anda dapat menemukan petunjuk untuk ndk-build di
umum Memulai Firebase C++ SDK
Panduan untuk
menautkan libfirebase_app.a
dan libfirebase_gma.a
ke aplikasi Anda.
Di file
gradle.properties
project Anda, tentukan lokasi SDK yang telah diekstrak:systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
Pada file
settings.gradle
project Anda, tambahkan konten berikut: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"
Ke file Gradle modul (level aplikasi) Anda—biasanya
app/build.gradle
— tambahkan konten berikut, yang mencakup dependensi library untuk Google Mobile Ads C++ SDK.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 }
Pada file
CMakeLists.txt
project Anda, tambahkan konten berikut.# 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}")
Sinkronkan aplikasi Anda untuk memastikan bahwa semua dependensi memiliki versi yang diperlukan.
iOS
Langkah-langkah di bagian ini adalah contoh cara menambahkan Google Mobile Ads C++ SDK ke project iOS Anda.
Dapatkan CocoaPods versi 1 atau yang lebih baru dengan menjalankan:
sudo gem install cocoapods --pre
Tambahkan pod Google Mobile Ads dari SDK yang telah diekstrak.
Buat Podfile jika belum memilikinya:
cd APP_DIRECTORY
pod init
Tambahkan pod untuk Google Mobile Ads C++ SDK ke Podfile Anda, Google User Messaging Platform SDK, dan Firebase core SDK minimal (diwajibkan oleh GMA C++ SDK):
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
Instal pod, lalu buka file
.xcworkspace
di Xcode.pod install
open APP.xcworkspace
Tambahkan framework berikut dari Firebase C++ SDK ke project:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
Anda sudah siap! Aplikasi C++ Anda dikonfigurasi untuk menggunakan Google Mobile Ads C++ SDK tanpa layanan Firebase lainnya.
Mengonfigurasi ID aplikasi AdMob aplikasi Anda
Android
Ikuti langkah 3 dari Mengonfigurasi aplikasi Anda seperti yang dijelaskan oleh Mobile Ads SDK Panduan Android lalu kembali ke halaman ini.
iOS
Ikuti langkah Memperbarui Info.plist seperti yang dijelaskan oleh Mobile Ads SDK Panduan iOS lalu kembali ke halaman ini.
Menginisialisasi Google Mobile Ads SDK
Sebelum memuat iklan, aplikasi harus melakukan inisialisasi Google Mobile Ads C++ SDK dengan memanggil firebase::gma::Initialize()
yang melakukan inisialisasi SDK dan menyelesaikan firebase::Future
setelah inisialisasi selesai (atau setelah batas waktu 30 detik). Tindakan ini hanya perlu dilakukan sekali, idealnya saat aplikasi diluncurkan.
Iklan dapat dipramuat oleh Google Mobile Ads C++ SDK atau SDK partner mediasi
setelah memanggil Initialize()
. Jika Anda perlu mendapatkan izin dari pengguna di Wilayah Ekonomi Eropa (EEA), tetapkan flag khusus permintaan (seperti tag_for_child_directed_treatment
atau tag_for_under_age_of_consent
), atau mengambil tindakan sebelum memuat iklan, pastikan Anda melakukannya dengan memanggil firebase::gma::SetRequestConfiguration()
sebelum melakukan inisialisasi Google Mobile Ads C++ SDK. Untuk informasi selengkapnya, lihat
panduan Penargetan kami.
Berikut adalah contoh cara memanggil 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.
}
Menggunakan Future
untuk memantau status penyelesaian panggilan metode
Future
menyediakan cara untuk menentukan status penyelesaian panggilan metode asinkron Anda.
Misalnya, saat aplikasi Anda memanggil firebase::gma::Initialize()
, metode
firebase::Future
dibuat dan ditampilkan. Aplikasi Anda kemudian dapat memeriksa status()
Future
untuk menentukan kapan inisialisasi selesai.
Setelah selesai, aplikasi Anda dapat memanggil result()
untuk mendapatkan hasil
AdapterInitializationStatus
.
Metode yang menampilkan Future
memiliki "hasil terakhir" yang sesuai metode yang
yang dapat digunakan aplikasi untuk mengambil Future
terbaru untuk tindakan tertentu. Sebagai
contoh, firebase::gma::Initialize()
memiliki metode yang sesuai yang disebut
firebase::gma::InitializeLastResult()
, yang menampilkan Future
yang ditampilkan oleh aplikasi Anda
yang dapat digunakan untuk memeriksa status panggilan terakhir ke firebase::gma::Initialize()
.
Jika status Future
selesai dan kode error-nya adalah
firebase::gma::kAdErrorCodeNone
, maka operasi telah selesai
memulai proyek.
Anda juga bisa mendaftarkan callback agar dipanggil saat Future
selesai. Di beberapa
dalam beberapa kasus, callback akan berjalan di thread berbeda, jadi pastikan
kode Anda aman untuk thread. Cuplikan kode ini menggunakan pointer fungsi untuk callback:
// 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.
}
}
Pilih format iklan
Google Mobile Ads C++ SDK kini telah diimpor dan Anda siap untuk menerapkan iklan. AdMob menawarkan berbagai format iklan, jadi Anda dapat memilih salah satu yang paling sesuai dengan pengalaman pengguna aplikasi Anda.
Banner
Iklan kotak yang muncul di bagian atas atau bawah layar perangkat. Iklan banner tetap muncul di layar saat pengguna berinteraksi dengan aplikasi, dan dapat diperbarui secara otomatis setelah jangka waktu tertentu. Jika Anda baru menggunakan perangkat seluler periklanan, iklan, situs web, dan ini adalah tempat yang baik untuk memulai.
Interstisial
Iklan layar penuh yang menutupi antarmuka aplikasi hingga pengguna menutupnya. VM ini paling baik digunakan pada jeda alami dalam alur eksekusi aplikasi, seperti di antara level game atau tepat setelah tugas selesai.
Reward
Iklan yang memberikan reward kepada pengguna karena telah menonton video singkat serta berinteraksi dengan survei dan iklan yang dapat dimainkan. Digunakan untuk memonetisasi aplikasi yang gratis dimainkan.