Başla

Bu kılavuz, Firebase kullanmadan AdMob ile bir C++ uygulamasından 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ın bir uygulamaya entegre edilmesi, 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ü reklam gibi bir reklam biçimi seçebilir ve 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 çalıştırıyorsanız Google Mobil Reklamlar C++ test uygulamasını indirip talimatları 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:
    • minSdkVersion/16 veya daha yüksek
    • compileSdkVersion/28 veya daha yüksek

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ı uygulayarak 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 sonraki bölümlerinde gerekli olan benzersiz bir AdMob uygulama kimliğine sahip 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ı indirip istediğiniz bir dizine açın.

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

Android

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

  1. Projenizin gradle.properties dosyasında, açılan 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ı 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ılıklarda 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ı iOS projenize nasıl ekleyeceğinizi gösteren 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 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ı (GMA C++ SDK'sı için gereklidir) için kapsülleri ekleyin:

      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ındaki 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ılmıştı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 bölümünün 3. adımını uygulayın ve ardından bu sayfaya geri dönün.

iOS

Mobil Reklam 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 Google Mobile Ads C++ SDK'sını başlatmasını sağlayın. Bunun için firebase::gma::Initialize() yöntemini çağırın. Bu çağrı, SDK'yı başlatır ve başlatma tamamlandıktan sonra (veya 30 saniyelik zaman aşımından sonra) bir firebase::Future işlemini tamamlar. Bu işlem yalnızca bir kez, ideal olarak uygulamanın lansmanında yapılması gerekir.

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, 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() yöntemini çağırarak bunu yaptığınızdan emin olun. Daha fazla bilgi için Hedefleme kılavuzumuza bakın.

Initialize() numaralı telefonu nasıl arayacağınızla ilgili bir örnek:

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 kullanma

Future, eşzamansız yöntem çağrılarınızın tamamlanma durumunu belirleyebilmenizi sağlayan 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. Ardından uygulamanız, başlatmanın ne zaman tamamlandığını belirlemek için Future öğesinin status() değerini yoklayabilir. İşlem tamamlandığında, uygulamanız result() yöntemini çağırarak elde edilen AdapterInitializationStatus sonucunu alabilir.

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

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

Ayrıca, Future tamamlandığında çağrılacak geri çağırmaları da kaydedebilirsiniz. Bazı durumlarda, geri çağırma farklı bir iş parçacığında çalışır. Bu nedenle, kodunuzun iş parçacığı 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 bir reklamı uygulamaya hazırsınız. AdMob bir dizi farklı reklam biçimi sunduğu için uygulamanızın kullanıcı deneyimine en uygun olan biçimi 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, mobil reklamlar mükemmel bir başlangıç noktasıdır.

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 uygulama akışındaki doğal duraklamalarda, örneğin bir oyunun seviyeleri arasında veya bir görev tamamlandıktan hemen sonra kullanılır.

Geçiş reklamlarını uygulama

Ödül olarak verildi

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

Ödüllü reklamları uygulama