Başlarken


Bu kılavuz, Firebase kullanmadan bir C++ uygulamasından AdMob ile para kazanmak isteyen yayıncılar içindir. Uygulamanıza Firebase'i dahil etmeyi planlıyorsanız veya düşünüyorsanız bu kılavuzun Firebase ile AdMob sürümüne göz atın.

Google Mobile Ads C++ SDK'sını bir uygulamaya entegre etmek, reklam göstermenin 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çip bu biçimi uygulamak için gerekli adımları uygulayabilirsiniz.

Google Mobile Ads C++ SDK'sı, Google Mobile Ads iOS ve Android SDK'larını kapsar 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 bulunur.

Bu kılavuzu ilk kez inceliyorsanız Google Mobil Reklamlar C++ test uygulamasını indirip bu uygulamayı kullanarak kılavuzu incelemenizi ö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:
    • 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 bir sürümü hedefleyin

AdMob hesabınızda uygulamanızı oluşturma

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

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

  2. Uygulamanızı AdMob'a kaydedin. Bu adım, bu kılavuzda daha sonra gerekli olacak benzersiz bir 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 bulunduğundan Firebase C++ SDK'sını indirip istediğiniz bir dizine çıkarın.

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

Android

CMake'i kullanmanızı öneririz. Ancak libfirebase_app.a ve libfirebase_gma.a öğelerini uygulamanıza bağlamak için genel Firebase C++ SDK'sını kullanmaya başlama kılavuzumuzda ndk-build ile ilgili talimatları bulabilirsiniz.

  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ünüzün (uygulama düzeyinde) Gradle dosyasına (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ılarda 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ğinize dair bir örnektir.

  1. Aşağıdaki komutu çalıştırarak CocoaPods'un 1 veya sonraki sürümlerini edinin:

    sudo gem install cocoapods --pre
  2. Google Mobile Ads pod'unu, sıkıştırılmamış SDK'dan 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 Core SDK'sı (GMA C++ SDK'sı için gereklidir) için pod'ları ekleyin:

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

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

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

Her şey hazır C++ uygulamanız, diğer Firebase hizmetleri olmadan Google Mobile Ads C++ SDK'sını kullanacak şekilde yapılandırılmış olmalıdır.

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

Android

Mobile Ads SDK 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 sayfaya geri dönün.

iOS

Mobile Ads SDK iOS kılavuzunda belirtildiği şekilde Info.plist dosyanızı güncelleme adımını uygulayın ve ardından bu sayfaya geri dönün.

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

Reklamları yüklemeden önce uygulamanızın Google Mobile Ads C++ SDK'sını ilk kullanıma hazırlaması için firebase::gma::Initialize() işlevini çağırın. Bu işlev SDK'yı ilk kullanıma hazırlar ve ilk kullanıma hazırlama işlemi tamamlandıktan sonra (veya 30 saniyelik zaman aşımının ardından) bir firebase::Future tamamlar. Bu işlemin yalnızca bir kez yapılması gerekir. İdeal olarak uygulama başlatılırken yapılmalıdır.

Reklamlar, Initialize() çağrıldığında 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 (ör. tag_for_child_directed_treatment veya tag_for_under_age_of_consent) ayarlamanız ya da 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() işlevini çağırarak bu işlemleri yaptığınızdan emin olun. Daha fazla bilgi için hedefleme kılavuzumuzu inceleyin.

Initialize()'yı çağırma örneğini aşağıda görebilirsiniz:

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 kullanma

Future, eşzamansız yöntem çağrılarınızın tamamlanma durumunu belirlemenize olanak tanır.

Örneğin, uygulamanız firebase::gma::Initialize() işlevini çağırdığında yeni bir firebase::Future oluşturulur ve döndürülür. Uygulamanız daha sonra başlatma işleminin ne zaman tamamlandığını belirlemek için status() Future öğesini yoklayabilir. İşlem tamamlandıktan sonra uygulamanız, sonuçtaki result() değerini almak için AdapterInitializationStatus işlevini çağırabilir.

Future döndüren yöntemlerin, 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 vardır. Örneğin, firebase::gma::Initialize() için firebase::gma::InitializeLastResult() adlı bir yöntem vardır. Bu yöntem, uygulamanızın firebase::gma::Initialize() için yapılan son çağrının durumunu kontrol etmek üzere kullanabileceği bir Future döndürür.

Future durumunun tamamlanmış olması ve hata kodunun firebase::gma::kAdErrorCodeNone olması durumunda işlem başarıyla tamamlanmıştır.

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ışır. Bu nedenle, kodunuzun iş parçacığı açısından güvenli olduğundan emin olun. Bu kod snippet'inde geri çağırma için bir işlev işaretçisi kullanılı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.
  }
}

Bir 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, uygulamanızın kullanıcı deneyimine en uygun olanı seçebilmeniz için çeşitli reklam biçimleri sunar.

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 kalmaya devam eder ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılığa yeni başladıysanız bu kılavuzlar işe başlamak için harika bir kaynak olacaktır.

Banner reklamları uygulama

Geçiş reklamı

Kullanıcı tarafından kapatılana kadar bir uygulamanın arayüzünü kaplayan tam ekran reklamlar. Bu reklamlar, uygulamanın yürütülme 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üllü

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

Ödüllü reklamları uygulama