Başlarken


Bu kılavuz, Firebase kullanmadan C++ uygulamasından AdMob ile para kazanmak isteyen yayıncılar içindir. Uygulamanıza Firebase eklemeyi planlıyorsanız veya bunu düşünüyorsanız bu kılavuzun Firebase ile AdMob sürümüne bakın.

Google Mobile Ads C++ SDK'sını uygulamaya entegre etmek, reklam göstermenin ve gelir elde etmenin ilk adımıdır. SDK'yı entegre ettikten sonra geçiş reklamı veya ödüllü reklam gibi bir reklam biçimi seçebilir ve ilgili biçimi uygulama adımlarını uygulayabilirsiniz.

Google Mobile Ads C++ SDK'sı, Google Mobile Ads iOS ve Android SDK'larını sarmalayan ve yalnızca bu platformlarda kullanılabilen bir SDK'dır. Google Mobile Ads C++ SDK'sı, asenkron işlemleri desteklemek için Firebase C++ yapılarını kullandığından firebase::gma ad alanında bulunur.

Bu kılavuzu ilk kez okuyorsanız Google Mobil Reklamlar C++ test uygulamasını indirip talimatları uygulamanızı öneririz.

Ön koşullar

Yapay Zeka

  • Android Studio 3.2 veya sonraki sürümleri kullanın
  • Uygulamanızın derleme dosyasında aşağıdaki değerlerin kullanıldığından emin olun:
    • 16 veya daha yeni bir minSdkVersion sürümü
    • 28 veya daha yüksek bir compileSdkVersion

iOS

  • Xcode 13 veya sonraki bir sürümü kullanın
  • iOS 10.0 veya sonraki bir sürümü hedefleyin

AdMob hesabınızda uygulamanızı ayarlama

Aşağıdaki adımları uygulayarak uygulamanızı AdMob uygulaması olarak kaydedin:

  1. AdMob hesabında oturum açın veya kaydolun.

  2. Uygulamanızı AdMob'a kaydedin. Bu adım, bu kılavuzun ilerleyen bölümlerinde ihtiyaç duyacağınız benzersiz bir AdMob uygulama kimliği içeren bir AdMob uygulaması oluşturur.

Google Mobile Ads C++ SDK'sını yükleme

Google Mobile Ads C++ SDK'sı firebase::gma ad alanında bulunduğundan Firebase C++ SDK'sını indirin ve ardından seçtiğiniz bir dizine açın.

Firebase C++ SDK'sı platforma özel değildir ancak platforma özel kitaplık yapılandırmaları gerektirir.

Yapay Zeka

CMake'i kullanmanızı öneririz ancak libfirebase_app.a ve libfirebase_gma.a'i uygulamanıza bağlamak için genel Firebase C++ SDK'sı Başlangıç Kılavuzumuzdaki ndk-build talimatlarını bulabilirsiniz.

  1. Projenizin gradle.properties dosyasında, sıkıştırılmamış SDK'nın konumunu belirtin:

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. Projenizin settings.gradle dosyasına aşağıdaki içeriği ekleyin:

    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. Modül (uygulama düzeyinde) Gradle dosyanıza (genellikle app/build.gradle) Google Mobile Ads C++ SDK'sına ait kitaplık bağımlılığını içeren aşağıdaki içeriği ekleyin.

    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. Projenizin CMakeLists.txt dosyasına aşağıdaki içeriği ekleyin.

    # 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. Tüm bağımlılarda gerekli sürümlerin bulunduğundan emin olmak için uygulamanızı senkronize edin.

iOS

Bu bölümdeki adımlar, Google Mobile Ads C++ SDK'sının iOS projenize nasıl ekleneceğini gösteren bir örnektir.

  1. Aşağıdaki komutu çalıştırarak CocoaPods 1 veya sonraki bir sürümü edinin:

    sudo gem install cocoapods --pre
  2. Sıkıştırılmamış SDK'dan Google Mobile Ads kapsülünü ekleyin.

    1. Henüz yoksa bir Podfile oluşturun:

      cd APP_DIRECTORY
      pod init
    2. Pod dosyanıza Google Mobile Ads C++ SDK'sı, Google Kullanıcı Mesajlaşma Platformu SDK'sı ve minimum Firebase çekirdek SDK'sı (GMA C++ SDK'sı tarafından gereklidir) için pod'ları ekleyin:

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. Kapsülleri yükleyin, ardından Xcode'da .xcworkspace dosyasını açın.

      pod install
      open APP.xcworkspace
    4. Firebase C++ SDK'sındaki aşağıdaki çerçeveleri projeye ekleyin:

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

Her şey hazır C++ uygulamanız, başka Firebase hizmeti olmadan Google Mobil Reklamlar C++ SDK'sını kullanacak şekilde yapılandırılmış.

Uygulamanızın AdMob uygulama kimliğini yapılandırma

Yapay Zeka

Mobile Ads SDK'sı Android kılavuzunda açıklandığı şekilde Uygulamanızı yapılandırma bölümündeki 3. adımı uygulayın ve ardından bu sayfaya geri dönün.

iOS

Mobile Ads SDK iOS kılavuzunda açıklandığı şekilde Info.plist dosyanızı güncelleme adımını uygulayın ve ardından bu sayfaya dönün.

Google Mobile Ads SDK'sını ilk kullanıma hazırlayın

Reklamları yüklemeden önce uygulamanızın firebase::gma::Initialize() işlevini çağırarak Google Mobile Ads C++ SDK'sını ilk kullanıma hazırlamasını sağlayın. Bu işlev, SDK'yı ilk kullanıma hazırlar ve ilk kullanıma hazırlama işlemi tamamlandıktan sonra (veya 30 saniyelik zaman aşımının ardından) firebase::Future işlevini tamamlar. Bu işlemin ideal olarak uygulamanın lansmanında bir kez yapılması gerekir.

Reklamlar, Initialize() çağrıldıktan sonra Google Mobile Ads C++ SDK'sı veya uyumlulaştırma iş ortağı SDK'ları tarafından önceden yüklenebilir. Avrupa Ekonomik Alanı'ndaki (AEA) kullanıcılardan izin almanız gerekiyorsa, isteğe özel işaretler (tag_for_child_directed_treatment veya tag_for_under_age_of_consent gibi) ayarlamanız ya da reklamları yüklemeden önce başka bir işlem yapmanız gerekiyorsa Google Mobile Ads C++ SDK'sını başlatmadan önce firebase::gma::SetRequestConfiguration()'yi çağırarak bunu yaptığınızdan emin olun. Daha fazla bilgi için Hedefleme kılavuzumuzu inceleyin.

Initialize() işlevinin nasıl çağrılacağıyla ilgili bir örnek aşağıda verilmiştir:

Yapay Zeka

// 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.
}

Bir yöntem çağrısının tamamlanma durumunu izlemek için Future kullanın

Future, asenkron yöntem çağrılarınızın tamamlanma durumunu belirlemenize olanak tanır.

Örneğin, uygulamanız firebase::gma::Initialize() işlevini çağrdığında yeni bir firebase::Future oluşturulur ve döndürülür. Ardından uygulamanız, ilklendirmenin ne zaman tamamlandığını belirlemek için Future'ın status() özelliğini sorgulayabilir. İşlem tamamlandığında uygulamanız, sonuç olarak elde edilen AdapterInitializationStatus değerini almak için result() işlevini çağırabilir.

Future döndüren yöntemlerin, uygulamaların belirli bir işlem için en son Future'yi almak üzere kullanabileceği karşılık gelen bir "son sonuç" yöntemi vardır. Örneğin, firebase::gma::Initialize() için firebase::gma::InitializeLastResult() adlı bir karşılık gelen yöntem vardır. Bu yöntem, uygulamanızın firebase::gma::Initialize()'e yapılan son çağrının durumunu kontrol etmek için kullanabileceği bir Future döndürür.

Future öğesinin durumu tamamlandıysa ve hata kodu firebase::gma::kAdErrorCodeNone ise işlem başarıyla tamamlanmıştır.

Ayrıca, bir Future tamamlandığında çağrılacak geri çağırma işlevleri de kaydedebilirsiniz. Bazı durumlarda geri çağırma işlevi farklı bir iş parçacığında çalışır. Bu nedenle, kodunuzun iş parçacığı açısından güvenli olduğundan emin olun. Bu kod snippet'inde, geri çağırma işlevi için bir işlev işaretçisi kullanılmaktadır:

// 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.
  }
}

Reklam biçimi seçme

Google Mobile Ads C++ SDK'sı içe aktarıldı. Artık reklam uygulamaya hazırsınız. AdMob, uygulamanızın kullanıcı deneyimine en uygun olanı seçebilmeniz için çeşitli reklam biçimleri sunar.

Cihaz ekranının üst veya alt kısmında görünen dikdörtgen reklamlardır. Banner reklamlar, kullanıcılar uygulamayla etkileşim kurarken ekranda kalmaya devam eder ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılık konusunda yeniyseniz bu kaynaklardan yararlanabilirsiniz.

Banner reklamları uygulama

Geçiş reklamı

Kullanıcı tarafından kapatılana kadar bir uygulamanın arayüzünü kaplayan tam ekran reklamlar. Bu reklamlar en iyi şekilde, uygulamanın akışındaki doğal duraklamalar sırasında (ör. bir oyunun seviyeleri arasında veya bir görev tamamlandıktan hemen sonra) kullanılır.

Geçiş reklamları uygulama

Ödüllü

Kısa videoları izleyen, ayrıca oynatılabilir reklamlar ve anketlerle etkileşimde bulunan kullanıcıları ödüllendiren reklamlardır. Ücretsiz içerik uygulamalarından para kazanmak için kullanılır.

Ödüllü reklamları uygulama