Başla

Bu kılavuz, AdMob ile bir C++ uygulamasından para kazanmak isteyen ve Firebase kullanmayan kişiler için hazırlanmıştır. Firebase'i uygulamanıza eklemeyi düşünüyorsanız (veya kullanmayı düşünüyorsanız) bu kılavuzun Firebase ile AdMob sürümünü inceleyin.

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

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

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

Ön koşullar

Android

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

iOS

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

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, bu kılavuzun ilerleyen kısımlarında ihtiyaç duyulan benzersiz AdMob Uygulama Kimliğine sahip 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 yer aldığından, Firebase C++ SDK'sını indirin ve seçtiğiniz bir dizinde sıkıştırılmış dosyayı 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) aşağıdaki içeriği ekleyin. Bu içerik, Google Mobile Ads C++ SDK'sı için kitaplık bağımlılığını içerir.

      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 Firebase hizmetleri olmadan Google Mobile Ads C++ SDK'yı kullanacak şekilde yapılandırıldı.

iOS

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

  1. Aşağıdakileri çalıştırarak CocoaPods sürüm 1 veya üzerini alın:

    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 ve ardından .xcworkspace dosyasını Xcode'da açın.

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

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

Artık hazırsınız! C++ uygulamanız, başka Firebase hizmetleri olmadan Google Mobile Ads C++ SDK'yı 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'nın 3. adımını 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 geri dönün.

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

Reklam yüklemeden önce SDK'yı başlatan ve ilk kullanıma hazırlama işlemi tamamlandıktan sonra (veya 30 saniyelik zaman aşımının ardından) firebase::Future değerini tamamlayan firebase::gma::Initialize() yöntemini çağırarak uygulamanızın Google Mobile Ads C++ SDK'yı başlatmasını sağlayın. Bunun yalnızca uygulama başlatma 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şaretler (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() çağrısı yaparak bunu yaptığınızdan emin olun. Daha fazla bilgi için Hedefleme kılavuzumuza bakın.

Initialize() numaralı telefonu nasıl arayacağınıza dair 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.
}

Bir 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 belirlemenin bir yolunu sunar.

Örneğin, uygulamanız firebase::gma::Initialize() yöntemini çağırdığında yeni bir firebase::Future oluşturulur ve döndürülür. Ardından uygulamanız, başlatma işleminin ne zaman tamamlandığını belirlemek için Future status() özelliğini anket yapabilir. İşlem tamamlandığında uygulamanız, elde edilen AdapterInitializationStatus sonucunu elde etmek için result() özelliğini çağırabilir.

Future döndüren yöntemler, uygulamaların belirli bir işlem için en son Future değerini almak üzere kullanabileceği ilgili bir "son sonuç" yöntemine sahiptir. Örneğin, firebase::gma::Initialize() firebase::gma::InitializeLastResult() adında benzer bir yöntem sunar. Bu yöntem, uygulamanızın firebase::gma::Initialize() adına yapılan son çağrının durumunu kontrol etmek için kullanabileceği bir Future değeri döndürür.

Future durumu tamamlandı ve hata kodu firebase::gma::kAdErrorCodeNone ise işlem başarıyla tamamlandı demektir.

Bir Future tamamlandığında geri çağırmak için geri çağırmaları da kaydedebilirsiniz. Bazı durumlarda geri çağırma farklı bir ileti dizisinde çalışır. Bu nedenle, 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ı artık içe aktarıldı ve reklam uygulamaya hazırsınız. AdMob çok çeşitli reklam biçimleri sunar. Böylece uygulamanızın kullanıcı deneyimine en uygun biçimi seçebilirsiniz.

Cihaz ekranının üst veya alt kısmında gösterilen dikdörtgen reklamlar. Banner reklamlar, kullanıcılar uygulama ile etkileşimde bulunurken ekranda kalır ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılıkta yeniyseniz başlangıç için mükemmel bir yerdir.

Banner reklamlar uygulama

Geçişli

Kullanıcı tarafından kapatılana kadar bir uygulamanın arayüzünü kaplayan tam ekran reklamlar. Bunlar en iyi, uygulamanın yürütülme sürecindeki doğal duraklamalarda (ör. bir oyunun seviyeleri arasında veya bir görevin tamamlanmasından hemen sonra) 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