Bu kılavuz, Firebase kullanmadan C++ uygulamasından AdMob ile para kazanmak isteyen yayıncılar içindir. Uygulamanıza Firebase eklemeyi planlıyorsanız veya bunu düşünüyorsanız bu kılavuzun Firebase ile AdMob sürümüne bakın.
Google Mobile Ads C++ SDK'sını uygulamaya entegre etmek, reklam göstermenin ve gelir elde etmenin ilk adımıdır. SDK'yı entegre ettikten sonra şunları yapabilirsiniz: Geçiş reklamı veya ödüllü gibi bir reklam biçimi seçin ve aşağıdaki adımları uygulayın: uygulayacaksınız.
Google Mobile Ads C++ SDK'sı Google Mobile Ads iOS ve Android SDK'larını
ve yalnızca bu platformlarda kullanılabilir. Google Mobile Ads C++ SDK'sı, asenkron işlemleri desteklemek için Firebase C++ yapılarını kullandığından firebase::gma
ad alanında bulunur.
Bu rehberi ilk kez okuyorsanız Google Mobil Reklamlar C++ test uygulamasını indirip talimatları uygulamanızı ö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:
- 16 veya daha yeni bir
minSdkVersion
sürümü - 28 veya daha yüksek bir
compileSdkVersion
- 16 veya daha yeni bir
iOS
- Xcode 13 veya sonraki bir sürümü kullanın
- iOS 10.0 veya sonraki sürümleri hedefleme
AdMob hesabınızda uygulamanızı ayarlayın
Aşağıdaki adımları tamamlayarak uygulamanızı bir AdMob uygulaması olarak kaydedin:
Oturum açın veya kaydolun kullandığınızdan emin olun.
Uygulamanızı Google Haritalar'daki AdMob. Bu adım, bir AdMob benzersiz bir AdMob uygulama kimliğine sahip uygulama ele alacağız.
Google Mobile Ads C++ SDK'sını yükleme
Google Mobile Ads C++ SDK'sı firebase::gma
ad alanında bulunduğu için
Firebase C++ SDK'sını indirin,
ve istediğiniz bir dizine açılır.
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
'i uygulamanıza bağlamak için genel Firebase C++ SDK'sı Başlangıç Kılavuzumuzdaki ndk-build talimatlarını bulabilirsiniz.
Projenizin
gradle.properties
dosyasında sıkıştırılmış SDK: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ına ait 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ılarda gerekli sürümlerin bulunduğundan emin olmak için uygulamanızı senkronize edin.
iOS
Bu bölümdeki adımlar, Google Mobil Reklamlar'ın nasıl ekleneceğine ilişkin bir örnektir. C++ SDK'sını ekleyerek iOS projenize ekleyin.
Aşağıdaki komutu çalıştırarak CocoaPods 1 veya üzeri bir sürüme sahip olabilirsiniz:
sudo gem install cocoapods --pre
Sıkıştırılmamış SDK'dan Google Mobile Ads kapsülünü ekleyin.
Henüz yoksa bir Podfile oluşturun:
cd APP_DIRECTORY
pod init
Podfile dosyanıza, Google Kullanıcı Mesajlaşma Platformu SDK'sı ve minimum Firebase temel SDK'sı (GMA C++ SDK'sı için gereklidir):
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 şu çerçeveleri projeye ekleyin:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
Artık hazırsınız! C++ uygulamanız Google Mobile Ads C++ SDK'sını kullanacak şekilde yapılandırıldı .
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ündeki 3. adımı uygulayın ve ardından bu sayfaya geri dönün.
iOS
Mobile Ads SDK'sında açıklandığı şekilde Info.plist dosyanızı güncelleyin adımını uygulayın iOS rehberine göz atıp ardından geri dönün. bu sayfaya.
Google Mobile Ads SDK'sını başlatma
Reklamları yüklemeden önce uygulamanızın Google Mobile Ads C++ SDK'sını şu şekilde başlatmasını sağlayın:
firebase::gma::Initialize()
çağrısı, SDK'yı başlatır ve
Başlatma tamamlandığında (veya 30 saniye sonra) firebase::Future
zaman aşımı) ekleyebilirsiniz. Bunun yalnızca bir kez yapılması gerekir. İdeal olarak uygulama lansmanında bu yapılır.
Reklamlar, Google Mobile Ads C++ SDK'sı veya uyumlulaştırma iş ortağı SDK'ları tarafından önceden yüklenebilir
Initialize()
arandığında. Google Ads'deki kullanıcılardan
Avrupa Ekonomik Alanı (AEA) için farklı ayarları kabul ederek, isteğe özel herhangi bir işareti (ör.
tag_for_child_directed_treatment
veya tag_for_under_age_of_consent
) veya
Aksi takdirde, reklamları yüklemeden önce
Google Mobil'i başlatmadan önce firebase::gma::SetRequestConfiguration()
Ads C++ SDK'sı. Daha fazla bilgi için
Hedefleme kılavuzu.
Aşağıda, Initialize()
yönteminin nasıl çağrılacağına ilişkin bir örnek verilmiştir:
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
kullanın
Future
, projenizin tamamlanma durumunu,
eşzamansız yöntem çağrıları.
Örneğin, uygulamanız firebase::gma::Initialize()
çağırdığında, yeni bir
firebase::Future
oluşturuldu ve döndürüldü. Uygulamanız o zaman
Başlatma işleminin ne zaman tamamlandığını belirlemek için Future
/status()
.
İşlem tamamlandığında, uygulamanız aşağıdaki sonuçları almak için result()
yöntemini çağırabilir:
AdapterInitializationStatus
.
Future
değeri döndüren yöntemlere karşılık gelen bir "son sonuç" bulunur. yöntemlerin
uygulamaların, belirli bir işlem için en son Future
bilgisini almak için kullanabileceği anlamına gelir. Örneğin, firebase::gma::Initialize()
için firebase::gma::InitializeLastResult()
adlı bir karşılık gelen yöntem vardır. Bu yöntem, uygulamanızın firebase::gma::Initialize()
'e 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ıştır.
Ayrıca, bir Future
tamamlandığında çağrılacak geri çağırmaları da kaydedebilirsiniz. İçinde
bazı durumlarda, geri çağırma farklı bir iş parçacığında çalışacak. Bu yüzden,
kodunuzun iş parçacığı açısından güvenli olduğunu unutmayın. Bu kod snippet'inde, geri çağırma işlevi için bir işlev işaretçisi kullanılmaktadı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ı. Artık bir reklam. AdMob, uygulamanızın kullanıcı deneyimine en uygun olanı seçebilmeniz için çeşitli reklam biçimleri sunar.
Banner
Cihaz ekranının üst veya alt kısmında görünen dikdörtgen reklamlar. Banner reklamlar, kullanıcılar uygulamayla etkileşim kurarken ekranda kalır ve bir süre sonra otomatik olarak yenilenir. Mobil reklamcılık konusunda yeniyseniz bu kaynaklardan yararlanabilirsiniz.
Geçiş reklamı
Kullanıcı tarafından kapatılana kadar uygulamanın arayüzünü kaplayan tam ekran reklamlar. En iyi kullanım alanı, uygulama akışındaki doğal duraklamalarda (ör. seviyeler arasında veya bir görev tamamlandıktan hemen sonra
Ödüllü
Kısa videoları izleyen, ayrıca oynatılabilir reklamlar ve anketlerle etkileşimde bulunan kullanıcıları ödüllendiren reklamlardır. Ücretsiz içerik uygulamalarından para kazanmak için kullanılır.