Mulai menggunakan AdMob di project C++ Anda

Panduan memulai ini ditujukan untuk penayang dan developer yang ingin menggunakan AdMob untuk memonetisasi aplikasi yang di-build dengan Firebase. Jika Anda tidak berencana untuk menyertakan Firebase dalam aplikasi, buka panduan AdMob mandiri.

Pelajari semua manfaat penggunaan AdMob, Firebase, dan Google Analytics secara bersamaan, jika belum melakukannya.

Jika ini pertama kalinya Anda mencoba panduan ini, sebaiknya download dan ikuti aplikasi pengujian Google Mobile Ads C++ SDK.

Sebelum memulai

  • Jika Anda belum memiliki project Firebase dan aplikasi Firebase, ikuti panduan memulai Firebase: Menambahkan Firebase ke project C++ Anda.

  • Pastikan bahwa Google Analytics diaktifkan di project Firebase Anda:

    • Jika Anda membuat project Firebase baru, aktifkan Google Analytics selama alur kerja pembuatan project.

    • Jika sudah memiliki project Firebase yang belum mengaktifkan Google Analytics, Anda dapat mengaktifkan Google Analytics dari tab Integrations di bagian > Project settings.

Langkah 1: Siapkan aplikasi di akun AdMob

  1. Daftarkan setiap varian platform aplikasi Anda sebagai aplikasi AdMob.

    1. Login atau daftar untuk membuka akun AdMob.

    2. Daftarkan setiap varian platform aplikasi Anda ke AdMob. Langkah ini akan membuat aplikasi AdMob dengan ID Aplikasi AdMob unik yang nantinya akan Anda butuhkan dalam panduan ini.

    Anda akan diminta untuk menambahkan Mobile Ads SDK ke aplikasi Anda. Temukan petunjuk detail terkait tugas ini nanti dalam panduan ini.

  2. Tautkan setiap aplikasi AdMob Anda ke aplikasi Firebase yang sesuai.

    Langkah ini bersifat opsional, tetapi sangat direkomendasikan. Pelajari lebih lanjut manfaat mengaktifkan metrik pengguna dan menautkan aplikasi AdMob ke Firebase.

    Untuk setiap varian platform, selesaikan dua langkah berikut di dasbor Apps pada akun AdMob Anda:

    1. Aktifkan User Metrics agar AdMob dapat memproses dan menampilkan data analisis pilihan di akun AdMob Anda. Ini juga merupakan setelan wajib agar dapat menautkan aplikasi AdMob ke Firebase.

    2. Tautkan aplikasi AdMob Anda ke project Firebase dan aplikasi Firebase yang ada.

      Pastikan Anda memasukkan nama paket (Android) atau ID paket (iOS) yang sama dengan yang Anda masukkan untuk aplikasi Firebase. Temukan nama paket atau ID paket aplikasi Firebase di kartu Your Apps pada >Project settings.

Langkah 2: Tambahkan ID Aplikasi AdMob ke aplikasi Anda

Android

Tambahkan ID Aplikasi AdMob ke file AndroidManifest.xml aplikasi Anda dengan menambahkan tag <meta-data> seperti yang ditampilkan di bawah.

<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

Di file Info.plist aplikasi Anda, tambahkan kunci GADApplicationIdentifier dengan nilai string ID Aplikasi AdMob.

Anda dapat melakukan perubahan ini secara terprogram:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

Atau, edit di editor daftar properti:

Editor Daftar Properti

Langkah 3: Tambahkan Google Mobile Ads SDK

Karena Google Mobile Ads C++ SDK berada di namespace firebase::gma, download Firebase C++ SDK, lalu ekstrak ke direktori pilihan Anda.

Firebase C++ SDK tidak bersifat khusus platform, tetapi memerlukan konfigurasi library khusus platform.

Android

  1. Pada file gradle.properties project Anda, tentukan lokasi SDK yang telah diekstrak:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. 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"
  3. Pada file Gradle modul (level aplikasi), 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
    }
  4. 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}")
  5. Sinkronkan aplikasi Anda untuk memastikan bahwa semua dependensi memiliki versi yang diperlukan.

Anda sudah siap! Aplikasi C++ Anda telah dikonfigurasi untuk menggunakan Google Mobile Ads C++ SDK.

iOS

Langkah-langkah di bagian ini adalah contoh cara menambahkan Google Mobile Ads C++ SDK ke project iOS Anda.

  1. Dapatkan CocoaPods versi 1 atau yang lebih baru dengan menjalankan:

    sudo gem install cocoapods --pre
  2. Tambahkan pod Google Mobile Ads dari SDK yang telah diekstrak.

    1. Buat Podfile jika belum memilikinya:

      cd YOUR_APP_DIRECTORY
      pod init
    2. Tambahkan pod untuk Google Mobile Ads C++ SDK ke Podfile Anda:

      pod 'Google-Mobile-Ads-SDK'
    3. Instal pod, lalu buka file .xcworkspace di Xcode.

      pod install
      open YOUR_APP.xcworkspace
    4. Tambahkan framework berikut dari Firebase C++ SDK ke project:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

Anda sudah siap! Aplikasi C++ Anda telah dikonfigurasi untuk menggunakan Google Mobile Ads C++ SDK.

Langkah 4: Lakukan inisialisasi Google Mobile Ads SDK

Sebelum memuat iklan, lakukan inisialisasi Mobile Ads SDK dengan memanggil firebase::gma::Initialize().

Panggilan ini menampilkan firebase::Future yang selesai setelah inisialisasi selesai (atau setelah waktu tunggu 30 detik). Panggil metode ini sekali saja dan sedini mungkin, idealnya pada saat peluncuran aplikasi.

Berikut 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 memanggil firebase::gma::Initialize(), firebase::Future baru akan dibuat dan ditampilkan. Aplikasi Anda kemudian dapat memeriksa status() Future untuk menentukan kapan inisialisasi selesai. Setelah selesai, aplikasi Anda dapat memanggil result() untuk mendapatkan AdapterInitializationStatus yang dihasilkan.

Metode yang menampilkan Future memiliki metode "hasil terakhir" yang sesuai, yang dapat digunakan aplikasi untuk mengambil Future terbaru untuk tindakan tertentu. Misalnya, firebase::gma::Initialize() memiliki metode yang sesuai yang disebut firebase::gma::InitializeLastResult(), yang menampilkan Future yang dapat digunakan aplikasi Anda untuk memeriksa status panggilan terakhir ke firebase::gma::Initialize().

Jika status Future selesai dan kode error-nya adalah firebase::gma::kAdErrorCodeNone, artinya operasi telah berhasil diselesaikan.

Anda juga bisa mendaftarkan callback agar dipanggil saat Future selesai. 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.
  }
}

Langkah 5: Pilih format iklan yang akan diterapkan di aplikasi

AdMob menawarkan berbagai format iklan yang berbeda, sehingga Anda dapat memilih format yang paling sesuai dengan pengalaman pengguna aplikasi Anda. Klik tombol format iklan berikut untuk melihat petunjuk penerapan terperincinya di dokumentasi AdMob.

Iklan kotak yang muncul di bagian atas atau bawah layar perangkat

Iklan Banner tetap ditampilkan di layar saat pengguna berinteraksi dengan aplikasi, dan dapat diperbarui secara otomatis setelah jangka waktu tertentu. Jika periklanan seluler merupakan hal yang baru bagi Anda, iklan Banner adalah pilihan pertama yang baik.

Menerapkan iklan banner

Interstisial

Iklan layar penuh yang menutupi antarmuka aplikasi hingga pengguna menutupnya

Iklan Interstisial paling cocok digunakan saat jeda alami dalam alur eksekusi aplikasi, misalnya di sela-sela level game atau tepat setelah menyelesaikan suatu tugas.

Menerapkan iklan interstisial

Reward

Iklan yang memberikan reward kepada pengguna karena telah menonton video singkat serta berinteraksi dengan survei dan iklan yang dapat dimainkan

Iklan Reward (atau "berbasis reward") dapat membantu memonetisasi pengguna yang tidak dipungut biaya.

Menerapkan iklan reward

Topik menarik lainnya

Melihat metrik pengguna dan data analisis

Setelah diinisialisasi, Mobile Ads SDK secara otomatis mulai mencatat peristiwa dan properti pengguna analisis ke dalam log dari aplikasi Anda. Data ini dapat Anda lihat tanpa harus menambahkan kode tambahan ke aplikasi atau menerapkan iklan apa pun. Berikut adalah tempat Anda dapat melihat data analisis ini:

Perhatikan bahwa untuk mewakili metrik ARPU dan ARPPU dengan lebih baik, sebaiknya sertakan data dari peristiwa kustom analisis yang bernama ecommerce_purchase dalam penghitungan pendapatan untuk metrik ini (pelajari caranya).

(Opsional) Menggunakan fitur Google Analytics dan Firebase lainnya

Manfaatkan kesempatan dan fitur lainnya untuk meningkatkan monetisasi aplikasi dan interaksi pengguna:

  • Menambahkan dan menggunakan Firebase SDK untuk Google Analytics

    Untuk mempelajari lebih lanjut, baca panduan untuk menggunakan Google Analytics dan Firebase dengan aplikasi AdMob.

  • Menggunakan produk Firebase lainnya di aplikasi

    Setelah menambahkan Firebase SDK untuk Google Analytics, gunakan produk Firebase lainnya untuk mengoptimalkan iklan di aplikasi Anda.

    • Dengan Remote Config, Anda dapat mengubah perilaku dan tampilan aplikasi tanpa memublikasikan update aplikasi, tanpa biaya apa pun dan tanpa batasan jumlah pengguna aktif harian.

    • Dengan A/B Testing, Anda dapat menguji perubahan pada UI, fitur, atau kampanye interaksi aplikasi untuk mempelajari apakah perubahan tersebut memengaruhi metrik kunci Anda (seperti pendapatan dan retensi) sebelum menerapkannya secara luas.