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 üzericompileSdkVersion
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:
Bir AdMob hesabında oturum açın veya kaydolun.
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
Projenizin
gradle.properties
dosyasında, sıkıştırılmamış SDK'nın konumunu belirtin:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
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"
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 }
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}")
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.
Aşağıdaki komutu çalıştırarak CocoaPods'un 1 veya sonraki bir sürümünü edinin:
sudo gem install cocoapods --pre
Arşivden çıkarılan SDK'dan Google Mobile Ads kapsülünü ekleyin.
Henüz yoksa bir Podfile oluşturun:
cd your-app-directory
pod init
Google Mobile Ads C++ SDK'sı için kapsülü Podfile'ınıza ekleyin:
pod 'Google-Mobile-Ads-SDK'
Kapsülü yükleyin, ardından
.xcworkspace
dosyasını Xcode'da açın.pod install
open your-app.xcworkspace
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.
Banner
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.
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.
Ö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.