Mulai

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Panduan ini ditujukan untuk penayang yang ingin memonetisasi aplikasi C++ dengan AdMob dan tidak menggunakan Firebase. Jika Anda berencana untuk menyertakan Firebase dalam aplikasi (atau Anda mempertimbangkannya), lihat versi AdMob dengan Firebase dari panduan ini.

Mengintegrasikan Google Mobile Ads C++ SDK ke dalam aplikasi adalah langkah pertama untuk menampilkan iklan dan memperoleh pendapatan. Setelah mengintegrasikan SDK, Anda dapat memilih format iklan (seperti interstisial atau reward) dan mengikuti langkah-langkah untuk menerapkannya.

Google Mobile Ads C++ SDK menggabungkan Google Mobile Ads iOS dan Android SDK, dan hanya tersedia di platform tersebut. Google Mobile Ads C++ SDK memanfaatkan konstruksi Firebase C++ untuk mendukung operasi asinkron, sehingga terletak di namespace firebase::gma.

Jika ini pertama kalinya Anda mencoba panduan ini, sebaiknya download dan ikuti aplikasi pengujian C++ Iklan Seluler Google.

Prasyarat

Android

  • Menggunakan Android Studio 3.2 atau yang lebih tinggi
  • Pastikan file build aplikasi menggunakan nilai berikut:
    • minSdkVersion 16 atau lebih tinggi
    • compileSdkVersion 28 atau lebih tinggi

iOS

  • Menggunakan Xcode 13 atau yang lebih tinggi
  • Menargetkan iOS 10.0 atau yang lebih tinggi

Siapkan aplikasi di akun AdMob

Daftarkan aplikasi sebagai aplikasi AdMob dengan menyelesaikan langkah-langkah berikut:

  1. Login ke atau daftar ke akun AdMob.

  2. Daftarkan aplikasi ke AdMob. Langkah ini akan membuat aplikasi AdMob 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, lalu ekstrak file tersebut 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. Tambahkan konten berikut ke file settings.gradle project Anda:

      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. 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
      }
    
  4. Tambahkan konten berikut ke file CMakeLists.txt project Anda.

      # 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 dikonfigurasi untuk menggunakan Google Mobile Ads C++ SDK tanpa layanan Firebase lainnya.

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 Anda 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 dikonfigurasi untuk menggunakan Google Mobile Ads C++ SDK tanpa layanan Firebase lainnya.

Konfigurasikan ID aplikasi AdMob Aplikasi Anda

Android

Ikuti langkah 3 dalam artikel Mengonfigurasi aplikasi Anda seperti yang dijelaskan oleh panduan Android Ads SDK Android, lalu kembali ke halaman memulai C++ ini.

iOS

Ikuti langkah-langkah Update Info.plist seperti yang dijelaskan oleh panduan iOS Mobile Ads SDK, lalu kembali ke halaman memulai C++ ini.

Menginisialisasi Google Mobile Ads SDK

Sebelum memuat iklan, minta aplikasi Anda untuk melakukan inisialisasi Google Mobile Ads C++ SDK dengan memanggil firebase::gma::Initialize() yang menginisialisasi SDK dan menyelesaikan firebase::Future setelah inisialisasi selesai (atau setelah waktu tunggu 30 detik). Hal ini hanya perlu dilakukan sekali, idealnya saat peluncuran aplikasi.

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), mengatur setiap 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 menginisialisasi Google Mobile Ads C++ SDK. Untuk informasi lebih lanjut, 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(), firebase::Future baru akan dibuat dan ditampilkan. Aplikasi Anda kemudian dapat memeriksa status() dari Future untuk menentukan kapan inisialisasi telah selesai. Setelah selesai, aplikasi Anda dapat memanggil result() untuk mendapatkan AdapterInitializationStatus yang dihasilkan.

Metode yang menampilkan Future memiliki "hasil terakhir" 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 errornya adalah firebase::gma::kAdErrorCodeNone, berarti operasi telah berhasil diselesaikan.

Anda juga dapat mendaftarkan callback agar dipanggil saat Future selesai. Dalam beberapa kasus, callback akan berjalan di thread yang 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 sejumlah format iklan yang berbeda, sehingga Anda dapat memilih salah satu yang paling sesuai dengan pengalaman pengguna aplikasi Anda.

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 Anda baru menggunakan iklan seluler, ini adalah tempat yang tepat untuk memulai.

Menerapkan iklan banner

Interstisial

Iklan layar penuh yang menutupi antarmuka aplikasi hingga pengguna menutupnya. Iklan ini paling baik digunakan pada jeda alami dalam alur eksekusi aplikasi, seperti di antara level game atau tepat setelah tugas selesai.

Menerapkan iklan interstisial

Diberikan sebagai 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 dapat dimainkan secara gratis.

Menerapkan iklan reward