Bu kılavuz, Firebase kullanmadan AdMob ile C++ uygulamasından para kazanmak isteyen yayıncılar için hazırlanmıştır. Uygulamanıza Firebase'i dahil etmeyi düşünü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, reklamları görüntüleme ve gelir elde etme yolundaki ilk adımdır. SDK'yı entegre ettikten sonra geçiş reklamı veya ödüllü reklam gibi bir reklam biçimi seçebilir ve 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ı kullanır. Bu nedenle, firebase::gma
ad alanında bulunur.
Bu kılavuzu ilk kez kullanıyorsanız Google Mobile Ads C++ test uygulamasını indirip talimatları izlemenizi ö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 ü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ı uygulayarak 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 bölümlerinde gerekli olacak benzersiz bir AdMob uygulama kimliğine sahip olan 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 zip dosyasını istediğiniz bir dizine açın.
Firebase C++ SDK'sı platforma özgü 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
'yi uygulamanıza bağlamak için genel Firebase C++ SDK Başlangıç Kılavuzumuzda ndk-build ile ilgili talimatları bulabilirsiniz.
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üzeyinde) Gradle dosyanıza (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 }
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ı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ğinize dair bir örnektir.
Aşağıdaki komutu çalıştırarak CocoaPods sürüm 1 veya daha yeni bir sürüme sahip olabilirsiniz:
sudo gem install cocoapods --pre
Açılmış SDK'dan Google Mobile Ads kapsülünü ekleyin.
Henüz yoksa bir Podfile oluşturun:
cd APP_DIRECTORY
pod init
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üller ekleyin:
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
Kapsülleri yükleyin, ardından
.xcworkspace
dosyasını Xcode'da açın.pod install
open APP.xcworkspace
Firebase C++ SDK'sından projeye aşağıdaki çerçeveleri 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
Mobil Reklamlar 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 firebase::gma::Initialize()
yöntemini çağırarak Google Mobile Ads C++ SDK'sını başlatmasını sağlayın. Bu çağrı SDK'yı başlatır ve başlatma
tamamlandığında (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()
komutunu çağırarak bunu yaptığınızdan emin olun. Daha fazla bilgi için Hedefleme kılavuzumuza bakın.
Initialize()
öğesinin nasıl çağrılacağına dair 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 bir Future
kullanma
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()
çağırdığında yeni bir firebase::Future
oluşturulur ve döndürülür. Ardından uygulamanız, başlatma işleminin ne zaman tamamlandığını belirlemek için Future
öğesinin status()
değerini yoklayabilir.
İşlem tamamlandığında uygulamanız result()
yöntemini çağırabilir ve sonuçta elde edilen AdapterInitializationStatus
sonucunu elde edebilir.
Future
döndüren yöntemlerde, uygulamaların belirli bir işlem için en son Future
değerini almak üzere kullanabileceği bir "son sonuç" yöntemi bulunur. Örneğin, firebase::gma::Initialize()
, firebase::gma::InitializeLastResult()
adlı karşılık gelen bir yönteme sahiptir. 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
öğesinin durumu tamamlandıysa ve hata kodu firebase::gma::kAdErrorCodeNone
ise işlem başarıyla tamamlanmış demektir.
Bir Future
tamamlandığında çağrılacak geri aramaları da kaydedebilirsiniz. Bazı durumlarda, geri çağırma farklı bir iş parçacığında çalıştırılı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ğundan uygulamanızın kullanıcı deneyimine en uygun olanı seçebilirsiniz.
Banner
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, başlamak için harika bir yerdir.
Geçişli
Kullanıcı tarafından kapatılana kadar bir uygulamanın arayüzünü kaplayan tam ekran reklamlar. En iyi uygulama akışındaki doğal duraklamalarda (ör. bir oyunun seviyeleri arasında ya da bir görev tamamlandıktan hemen sonra) kullanılır.
Ö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 uygulamalardan para kazanmak için kullanılır.