Başla

Bu kılavuz, Firebase kullanmadan bir C uygulamasından AdMob ile para kazanmak isteyen 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.

Google Mobile Ads C SDK'sını bir uygulamaya entegre etmek, reklam görüntüleme ve gelir elde etmenin ilk adımıdır. SDK'yı entegre ettikten sonra geçiş reklamı veya ödüllü gibi bir reklam biçimi seçebilir ve ilgili adımları uygulayarak bu reklam biçimini 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 ilgili adımları uygulamanızı ö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 daha yüksek bir minSdkVersion
    • 28 veya daha yüksek 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ı ayarlayın

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

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

  2. Uygulamanızı AdMob'a kaydedin. Bu adımda, bu kılavuzun ilerleyen bölümlerinde ihtiyaç duyulan benzersiz AdMob uygulama kimliğine sahip bir AdMob uygulaması oluşturulur.

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 istediğiniz dizine çıkartarak açın.

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

Android

CMake'i kullanmanızı öneririz. libfirebase_app.a ve libfirebase_gma.a öğelerini uygulamanıza bağlamak için ndk-build ile ilgili talimatları genel Firebase C SDK'sı Başlangıç Kılavuzu'nda bulabilirsiniz.

  1. Projenizin gradle.properties dosyasında, sıkıştırılmış 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üzeyindeki) Gradle dosyanıza (genellikle app/build.gradle), Google Mobile Ads C SDK'sı için kitaplık bağımlılığını da 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.

iOS

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

  1. Aşağıdaki komutu çalıştırarak CocoaPods 1 veya üzeri bir sürüme sahip olabilirsiniz:

    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. Podfile'ınıza Google Mobile Ads C SDK'sı, Google Kullanıcı Mesajlaşma Platformu SDK'sı ve minimum Firebase temel SDK'sı için kapsülleri ekleyin (GMA C SDK'sı için gereklidir):

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

      pod install
      open APP.xcworkspace
      
    4. Firebase C SDK'sından şu çerçeveleri projeye ekleyin:

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

Artık hazırsınız! C uygulamanız, Google Mobile Ads C SDK'sını diğer Firebase hizmetleri olmadan kullanacak şekilde yapılandırılmıştır.

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

Android

Mobil Ads SDK'sı Android kılavuzunda açıklandığı şekilde Uygulamanızı yapılandırma işleminin 3. adımını uygulayın, ardından bu sayfaya geri dönün.

iOS

Mobile Ads SDK'sı iOS kılavuzunda açıklanan Info.plist dosyanızı güncelleyin adımını uygulayın ve ardından bu sayfaya geri dönün.

Google Mobile Ads SDK'sını başlatma

Reklamları yüklemeden önce uygulamanızın, SDK'yı başlatan ve başlatma tamamlandığında (veya 30 saniyelik zaman aşımının ardından) firebase::Future işlemini tamamlayan firebase::gma::Initialize() çağrısı yaparak Google Mobile Ads C SDK'sını başlatmasını sağlayın. Bunun yalnızca bir kez yapılması gerekir. İdeal olarak uygulama lansmanında bu yapılır.

Reklamlar, Initialize() çağrısının ardından 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 herhangi bir işareti (tag_for_child_directed_treatment veya tag_for_under_age_of_consent gibi) ayarlayın veya reklamları yüklemeden önce gerekli işlemleri yapın. Google Mobile Ads C SDK'sını başlatmadan önce firebase::gma::SetRequestConfiguration() komutunu çağırarak bunu yaptığınızdan emin olun. Daha fazla bilgi için Hedefleme kılavuzumuza bakın.

Aşağıda, Initialize() yönteminin nasıl çağrılacağına ilişkin bir örnek verilmiştir:

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 belirlemeniz için bir yöntem 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. Daha sonra uygulamanız, başlatmanın ne zaman tamamlandığını belirlemek için Future öğesinin status() öğesini yoklayabilir. İşlem tamamlandığında, uygulamanız result() yöntemini çağırarak AdapterInitializationStatus sonucunu elde edebilir.

Future değeri döndüren yöntemler, 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öntemine sahiptir. Örneğin, firebase::gma::Initialize(), firebase::gma::InitializeLastResult() adında karşılık gelen bir yönteme sahip. Bu yöntem, uygulamanız tarafından firebase::gma::Initialize() öğesine yapılan son çağrının durumunu kontrol etmek için kullanabileceğiniz bir Future değeri döndürüyor.

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

Ayrıca, bir Future tamamlandığında çağrılacak geri çağırmaları da kaydedebilirsiniz. Bazı durumlarda, geri çağırma farklı bir iş parçacığında çalışacak. Bu nedenle, kodunuzun iş parçacığı 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ı içe aktarıldı ve reklam uygulamaya hazırsınız. AdMob bir dizi farklı reklam biçimi sunar. Böylece 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şimde bulunurken ekranda kalır ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılıkta yeniyseniz bu tür bir başlangıç noktası olarak çok iyi bir noktadır.

Banner reklam uygulama

Geçişli

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

Geçiş reklamlarını uygulama

Ödül olarak verildi

Kullanıcıları kısa videolar izledikleri ve oynatılabilir reklamlar ve anketlerle etkileşimde bulundukları için ödüllendiren reklamlar. Ücretsiz uygulamalardan para kazanmak için kullanılır.

Ödüllü reklamları uygulama