C++ projenizde AdMob'u kullanmaya başlama

AdMob'un iOS ve Android SDK'larını kullanmayı düşünün.


Bu hızlı başlangıç kılavuzu, Firebase ile oluşturulmuş bir uygulamayı paraya dönüştürmek için AdMob kullanmak isteyen yayıncılar ve geliştiriciler içindir. Uygulamanıza Firebase'ı eklemeyi planlamıyorsanız bunun yerine bağımsız AdMob kılavuzunu ziyaret edin.

Henüz yapmadıysanız, AdMob, Firebase ve Google Analytics'i birlikte kullanmanın tüm avantajlarını öğrenin.

Bu kılavuzu ilk kez okuyorsanız, Google Mobile Ads C++ SDK test uygulamasını indirip takip etmenizi öneririz.

Başlamadan önce

  • Firebase projeniz ve Firebase uygulamanız yoksa Firebase'i C++ projenize ekleme başlıklı Firebase başlangıç kılavuzundaki adımları izleyin.

  • Firebase projenizde Google Analytics öğesinin etkinleştirildiğinden emin olun:

    • Yeni bir Firebase projesi oluşturuyorsanız proje oluşturma iş akışı sırasında Google Analytics etkinleştirin.

    • Google Analytics'nın etkinleştirilmediği bir Firebase projeniz varsa Google Analytics'yı > Proje ayarları bölümündeki Entegrasyonlar sekmesinden etkinleştirebilirsiniz.

    hakkında daha fazla bilgi edinin.

1. Adım: Uygulamanızı AdMob hesabınızda kurun

  1. Uygulamanızın her platform versiyonunu bir AdMob uygulaması olarak kaydedin.

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

    2. Uygulamanızın her platform varyantını AdMob ile kaydedin. Bu adım, bu kılavuzun ilerleyen kısımlarında ihtiyaç duyacağınız benzersiz bir AdMob Uygulama Kimliğine sahip bir AdMob uygulaması oluşturur.

    Uygulamanıza Mobile Ads SDK'sını eklemeniz istenecek. Bu görevle ilgili ayrıntılı talimatları bu kılavuzun ilerleyen kısımlarında bulabilirsiniz.

  2. AdMob uygulamalarınızın her birini ilgili Firebase uygulamasına bağlayın.

    Bu adım isteğe bağlıdır ancak kesinlikle önerilir. Kullanıcı ölçümlerini etkinleştirmenin ve AdMob uygulamalarınızı Firebase'e bağlamanın avantajları hakkında daha fazla bilgi edinin.

    Her platform çeşidi için AdMob hesabınızın Uygulamalar panosunda aşağıdaki iki adımı tamamlayın:

    1. AdMob'in AdMob hesabınızda düzenlenmiş analiz verilerini işlemesine ve görüntülemesine izin vermek için Kullanıcı Metrikleri'ni etkinleştirin. Bu ayar, AdMob uygulamanızı Firebase'e bağlamak için de gereklidir.

    2. AdMobUygulamanızı mevcut Firebase projenize ve ilgili Firebase uygulamanıza bağlayın.

      Firebase uygulamanız için girdiğiniz paket adını (Android) veya paket kimliğini (iOS) girdiğinizden emin olun. Firebase uygulamanızın paket adını veya paket kimliğini Uygulamalarınız kartında > Proje ayarları bölümünde bulabilirsiniz.

Adım 2: AdMob Uygulama Kimliğinizi uygulamanıza ekleyin

Android

Aşağıda gösterildiği gibi <meta-data> etiketini ekleyerek AdMob Uygulama Kimliğinizi uygulamanızın AndroidManifest.xml dosyasına ekleyin.

<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ADMOB_APP_ID"/>
    </application>
</manifest>

iOS

Uygulamanızın Info.plist dosyasına, AdMob Uygulama Kimliğinizin dize değerine sahip bir GADApplicationIdentifier anahtarı ekleyin.

Bu değişikliği programatik olarak yapabilirsiniz:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

Veya, bunu özellik listesi düzenleyicisinde düzenleyin:

Emlak Listesi Düzenleyicisi

3. Adım: Google Mobil Reklamlar SDK'sını ekleyin

Google Mobile Ads C++ SDK'sı firebase::gma ad alanında bulunduğundan, Firebase C++ SDK'sını indirin ve ardından istediğiniz bir dizine açın.

Firebase C++ SDK platforma özgü değildir, ancak platforma özgü kütüphane yapılandırmaları gerektirir.

Android

  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.

Her şey hazır C++ uygulamanız Google Mobile Ads C++ SDK'sını kullanacak şekilde yapılandırılmıştır.

iOS

Bu bölümdeki adımlar, Google Mobile Ads C++ SDK'sının iOS projenize nasıl ekleneceğine 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. Açılan SDK'dan Google Mobile Ads pod'unu ekleyin.

    1. Henüz yoksa bir Podfile oluşturun:

      cd YOUR_APP_DIRECTORY
      pod init
    2. Podfile'ınıza Google Mobile Ads C++ SDK'sı için pod'u ekleyin:

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

      pod install
      open YOUR_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 Google Mobile Ads C++ SDK'sını kullanacak şekilde yapılandırılmıştır.

4. Adım: Google Mobil Reklamlar SDK'sını başlatın

Reklamları yüklemeden önce firebase::gma::Initialize() çağırarak Mobile Ads SDK'sını başlatın.

Bu çağrı, başlatma işlemi tamamlandığında (veya 30 saniyelik bir zaman aşımından sonra) tamamlanan bir firebase::Future döndürür. Bu yöntemi yalnızca bir kez ve mümkün olduğunca erken, ideal olarak uygulama başlatılırken çağırın.

Initialize()'ı çağırmanın bir örneği şöyledir:

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, asenkron yöntem çağrılarınızın tamamlanma durumunu belirlemenize olanak sağlayan bir yol sağlar.

Örneğin, uygulamanız firebase::gma::Initialize() öğesini çağırdığında yeni bir firebase::Future oluşturulur ve döndürülür. Uygulamanız daha sonra başlatmanın ne zaman tamamlandığını belirlemek için Future öğesinin status() öğesini sorgulayabilir. Tamamlandığında, uygulamanız sonuçta elde edilen AdapterInitializationStatus değerini elde etmek için result() öğesini çağırabilir.

Future döndüren yöntemlerin, uygulamaların belirli bir eylem 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(), uygulamanızın firebase::gma::Initialize() öğesine yapılan son çağrının durumunu kontrol etmek için kullanabileceği Future döndüren firebase::gma::InitializeLastResult() adlı karşılık gelen bir yönteme sahiptir.

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

Ayrıca, Future tamamlandığında çağrılacak geri aramaları 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 parçası geri arama için bir fonksiyon 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.
  }
}

5. adım: Uygulamanızda uygulanacak bir reklam biçimi seçin

AdMob, uygulamanızın kullanıcı deneyimine en uygun formatı seçebilmeniz için çeşitli reklam biçimleri sunar. AdMob belgelerinde ayrıntılı uygulama talimatlarını görüntülemek için bir reklam biçiminin düğmesine tıklayın.

Cihaz ekranının üst veya alt kısmında görünen dikdörtgen reklamlar

Banner reklamlar, kullanıcılar uygulama ile etkileşime girdiği sürece ekranda kalır ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılığa yeni başlıyorsanız, başlamak için harika bir yer.

Banner reklamları uygulayın

Geçişli

Kullanıcı tarafından kapatılıncaya kadar bir uygulamanın arayüzünü kaplayan tam ekran reklamlar

Geçiş reklamları, bir uygulamanın yürütülmesi sırasındaki doğal duraklamalarda, örneğin bir oyunun seviyeleri arasında veya bir görev tamamlandıktan hemen sonra en iyi şekilde kullanılır.

Geçiş reklamlarını uygulayın

Ödüllü

Kullanıcıları kısa videolar izlemeleri ve oynanabilir reklamlar ve anketlerle etkileşim kurmaları karşılığında ödüllendiren reklamlar

Ödüllü (veya "ödül tabanlı") reklamlar, ücretsiz oynayan kullanıcıların para kazanmasına yardımcı olabilir.

Ödüllü reklamları uygulayın

Diğer ilgi alanı konuları

Kullanıcı metriklerini ve analiz verilerini görüntüleme

Başlatıldıktan sonra Mobile Ads SDK, uygulamanızdaki analiz etkinliklerini ve kullanıcı özelliklerini otomatik olarak kaydetmeye başlar. Bu verileri, uygulamanıza ek kod eklemeden veya herhangi bir reklam uygulamadan görüntüleyebilirsiniz. Bu analiz verilerini görebileceğiniz yerler:

ARPU ve ARPPU metriklerini daha iyi temsil etmek için, bu metriklerin gelir hesaplamasına ecommerce_purchase adlı bir analiz özel etkinliğinden veri eklemek isteyebilirsiniz (nasıl yapılacağını öğrenin).

(İsteğe bağlı) Google Analytics ve Firebase'in daha fazla özelliğini kullanın

Uygulama para kazanma ve kullanıcı etkileşimini iyileştirmek için daha fazla fırsattan ve özellikten yararlanın:

  • Firebase SDK'sını ekleyin ve kullanınGoogle Analytics

    Daha fazla bilgi edinmek için Google Analytics ve Firebase'ı AdMob uygulamalarıyla kullanma kılavuzunu ziyaret edin.

  • Uygulamanızda diğer Firebase ürünlerini kullanın

    Google Analytics için Firebase SDK'sını ekledikten sonra, uygulamanızdaki reklamları optimize etmek için diğer Firebase ürünlerini kullanın.

    • Remote Config, sınırsız sayıda günlük etkin kullanıcı için, uygulama güncellemesi yayınlamadan, ücretsiz olarak uygulamanızın davranışını ve görünümünü değiştirmenize olanak tanır.

    • A/B Testing, uygulamanızın kullanıcı arayüzünde, özelliklerinde veya etkileşim kampanyalarında yaptığınız değişiklikleri test ederek bu değişikliklerin geniş çaplı kullanıma sunulmadan önce temel metrikleriniz (ör. gelir ve elde tutma) üzerinde etkili olup olmadığını öğrenmenizi sağlar.