Geri bildiriminizi paylaşın ve Google Mobile Ads SDK'sı yol haritasının şekillendirilmesine yardımcı olun. 5 Mayıs 2023'te sona ermeden önce 2023 Google Mobile Ads SDK'sı Yıllık Anketi'ne katılın.

Başla

Bu kılavuz, AdMob ile bir C++ uygulamasından para kazanmak isteyen ve Firebase kullanmayan yayıncılar için hazırlanmıştır. Uygulamanıza Firebase'i dahil etmeyi planlıyorsanız (veya kullanmayı düşünüyorsanız) bu kılavuzun Firebase ile AdMob sürümünü inceleyin.

Reklamları göstermenin ve gelir elde etmenin ilk adımı Google Mobile Ads C++ SDK'sını bir uygulamaya entegre etmektir. SDK'yı entegre ettikten sonra bir reklam biçimi (geçiş reklamı veya ödüllü reklam gibi) seçip bunu uygulama adımlarını uygulayabilirsiniz.

Google Mobile Ads C++ SDK'sı, Google Mobile Ads iOS ve Android SDK'larını sarmalar ve yalnızca bu platformlarda kullanılabilir. Google Mobile Ads C++ SDK'sı, eşzamansız işlemleri desteklemek için Firebase C++ yapılarını kullandığından firebase::gma ad alanında yer alır.

Bu kılavuzu ilk kez kullanıyorsanız Google Mobile Ads C++ test uygulamasını indirip takip etmenizi öneririz.

Ön koşullar

Android

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

iOS

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

AdMob hesabınızda uygulamanızı ayarlama

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

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

  2. Uygulamanızı AdMob'a kaydedin. Bu adım, daha sonra bu rehberde gerekli olacak benzersiz bir AdMob Uygulama Kimliği içeren bir AdMob uygulaması oluşturur.

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

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

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

Android

  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üzeyi) Gradle dosyanıza (genellikle app/build.gradle) Google Mobile Ads C++ SDK'sının 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ıların gerekli sürümlere sahip olduğundan emin olmak için uygulamanızı senkronize edin.

Artık hazırsınız! C++ uygulamanız, başka hiçbir Firebase hizmeti olmadan Google Mobile Ads C++ SDK'sını kullanacak şekilde yapılandırıldı.

iOS

Bu bölümdeki adımlar, Google Cloud Ads C++ SDK'sının iOS projenize nasıl ekleneceğine dair bir örnektir.

  1. Aşağıdaki sürümü çalıştırarak CocoaPods sürüm 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 your-app-directory
      pod init
      
    2. Podfile dosyanıza, Google Mobile Ads C++ SDK'sı için kapsülü ekleyin:

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

      pod install
      open your-app.xcworkspace
      
    4. Firebase C++ SDK'sından projeye aşağıdaki çerçeveleri ekleyin:

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

Artık hazırsınız! C++ uygulamanız, başka hiçbir Firebase hizmeti olmadan Google Mobile Ads C++ SDK'sını kullanacak şekilde yapılandırıldı.

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

Android

Mobile Ads SDK'sı Android kılavuzunda açıklandığı gibi, Uygulamanızı yapılandırma bölümündeki 3. adımı uygulayın ve ardından bu C++ başlangıç sayfasına dönün.

iOS

Mobile Ads SDK'sı iOS kılavuzunda açıklandığı gibi Info.plist dosyanızı güncelleyin adımını uygulayın ve ardından bu C++ başlangıç sayfasına dönün.

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

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

Initialize() çağrısı yapıldığında reklamlar, 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, isteğe özel işaretleri (tag_for_child_directed_treatment veya tag_for_under_age_of_consent gibi) ayarlamanız veya 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() yöntemini çağırarak bunu yapın. Daha fazla bilgi için Hedefleme kılavuzumuza bakın.

Initialize() yöntemini nasıl arayacağınıza ilişkin bir örneği aşağıda bulabilirsiniz:

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

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

Future, eşzamansız yöntem çağrılarınızın tamamlanma durumunu tespit edebilmeniz için bir yol sunar.

Örneğin, uygulamanız firebase::gma::Initialize() yöntemini çağırdığında yeni bir firebase::Future oluşturulup döndürülür. Daha sonra uygulamanız, başlatma işleminin ne zaman tamamlandığını belirlemek için Future öğesinin status() özelliğini ankete ekleyebilir. Bu işlem tamamlandığında uygulamanız, elde edilen AdapterInitializationStatus sonuç almak için result() yöntemini çağırabilir.

Future değeri döndüren yöntemlerde, uygulamaların belirli bir işlem için en son Future değerini almak üzere kullanabileceği karşılık gelen bir "son sonuç" yöntemi bulunur. Örneğin firebase::gma::Initialize(), firebase::gma::InitializeLastResult() adlı karşılık gelen bir yöntemi kullanır. Bu, uygulamanızın firebase::gma::Initialize() çağrısının son durumunu kontrol etmek için kullanabileceği bir Future döndürür.

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

Ayrıca, bir Future tamamlandığında geri çağırmak için geri çağırmaları kaydedebilirsiniz. Bazı durumlarda geri çağırma farklı bir mesaj dizisinde çalıştırılacağı için kodunuzun ileti dizisi açısından güvenli olduğundan emin olun. Bu kod snippet'i, geri çağırma için bir işlev işaretçisi kullanı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çin

Google Mobile Ads C++ SDK'sı şimdi içe aktarıldı ve bir reklam uygulamaya hazırsınız. AdMob birçok farklı reklam biçimi sunduğundan uygulamanızın kullanıcı deneyimine en uygun olanı seçebilirsiniz.

Cihaz ekranının üst veya alt kısmında görünen dikdörtgen reklamlar. Banner reklamlar, kullanıcılar uygulamayla etkileşim kurarken ekranda kalır ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılığa yeni başladıysanız başlangıç için mükemmel bir seçenektir.

Banner reklamları uygulama

Geçişli

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

Geçiş reklamlarını uygulama

Ödül olarak verildi

Kısa videoları izleyen ve oynatılabilir reklamlar ile anketlerle etkileşimde bulunan kullanıcıları ödüllendiren reklamlar. Ücretsiz uygulamalardan para kazanmak için kullanılır.

Ödüllü reklamları uygulama