Başla

Bu kılavuz, AdMob ile bir C++ uygulamasından para kazanmak isteyen ve Firebase kullanmayan yayıncılara yöneliktir. Uygulamanıza Firebase'i dahil etmeyi planlıyorsanız (veya kullanmayı düşünüyorsanız) bunun yerine bu kılavuzun Firebase ile AdMob sürümüne bakın.

Google Mobile Ads C++ SDK'sını bir uygulamaya entegre etmek, reklam görüntülemenin ve gelir elde etmenin ilk adımıdır. SDK'yı entegre ettikten sonra bir reklam biçimi (ör. geçiş reklamı veya ödüllü) seçebilir ve bu biçimi 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ından yararlanır. Böylece, firebase::gma ad alanında yer alır.

Bu kılavuzu ilk kez kullanıyorsanız Google Mobile Ads C++ test uygulamasını kullanarak indirip izlemenizi ö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, bu kılavuzun ilerleyen kısımlarında gerekli olan benzersiz bir AdMob Uygulama Kimliği ile 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 bulunduğundan Firebase C++ SDK'sını indirin ve ardından tercih ettiğiniz bir dizini 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ı için 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, diğer Firebase hizmetleri olmadan Google Mobile Ads C++ SDK'sını kullanacak şekilde yapılandırılır.

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ğıdaki komutu çalıştırarak CocoaPods'un 1 veya sonraki bir sürümünü edinin:

    sudo gem install cocoapods --pre
    
  2. Arşivden çıkarılan SDK'dan Google Mobile Ads kapsülünü ekleyin.

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

      cd your-app-directory
      pod init
      
    2. Google Mobile Ads C++ SDK'sı için kapsülü Podfile'ınıza 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 aşağıdaki çerçeveleri projeye ekleyin:

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

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

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

Android

Mobile Ads SDK'sı Android kılavuzunda açıklandığı şekilde Uygulamanızı yapılandırma başlıklı makalenin 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çıklanan şekildeInfo.plist dosyanızı güncelleyin ve ardından bu C++ başlangıç sayfasına dönün.

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

firebase::gma::Initialize()firebase::Future Bu işlemin yalnızca bir kez (ideal olarak uygulama başlatılırken) yapılması gerekir.

Initialize() çağrı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 şekilde işlem yapmanız gerekiyorsa Google Mobile Ads C++ SDK'sını başlatmadan önce firebase::gma::SetRequestConfiguration() yöntemini çağırarak bunu yaptığınızdan emin olun. Daha fazla bilgi için Hedefleme kılavuzumuza bakın.

Initialize() yönteminin nasıl aranacağını gösteren 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 belirlemek için kullanabileceğiniz bir yöntem sunar.

Örneğin, uygulamanız firebase::gma::Initialize() ç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() öğesini anketleyebilir. Uygulamanız tamamlandıktan sonra, elde edilen AdapterInitializationStatus sonucu elde etmek 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 ilgili "son sonuç" yöntemi bulunur. Örneğin firebase::gma::Initialize(), firebase::gma::InitializeLastResult() adında uygun bir yöntem sunar. Bu yöntem, uygulamanızın firebase::gma::Initialize() içindeki son aramanın 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 çağrılması 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 çeşitli reklam biçimleri sunar. Böylece uygulamanızın kullanıcı deneyimine en uygun reklam biçimini seçebilirsiniz.

Cihaz ekranının üst veya alt kısmında görünen 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ığa yeni başladıysanız bu yerleşimlerle başlamak iyi bir fikir olabilir.

Banner reklamları uygulama

Geçişli

Kullanıcı tarafından kapatılana kadar bir uygulamanın arayüzünü kapsayan tam ekran reklamlar. Bunlar en iyi şekilde, bir uygulamanın yürütme akışındaki 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, oynanabilir reklamlar ve anketlerle etkileşimde bulunan kullanıcıları ödüllendiren reklamlar. Ücretsiz uygulamalardan para kazanmak için kullanılır.

Ödüllü reklamları uygulama