آموزش: کسب درآمد ترکیبی را با استفاده از AdMob، Google Analytics و Firebases بهینه کنید

مرحله ۳: Firebase Remote Config برای نمایش تجربیات تبلیغاتی خاص تنظیم کنید


مقدمه: بهینه‌سازی کسب درآمد ترکیبی با استفاده از AdMob ، Google Analytics و Firebase
مرحله ۱: AdMob برای ایجاد واحدهای تبلیغاتی جدید برای نمایش استفاده کنید
مرحله ۲: راه‌اندازی گوگل آنالیتیکس

مرحله ۳: Firebase Remote Config برای نمایش تجربیات تبلیغاتی خاص تنظیم کنید


در پایان مرحله قبل، شما در مورد مخاطبان گوگل آنالیتیکس آموختید. در این مرحله، یک پارامتر بولی کنترل‌شده Remote Config (به نام ad_control_switch ) ایجاد خواهید کرد که از مخاطبان "خریداران" بهره می‌برد. سپس منطق مربوط به آنچه برنامه شما باید بر اساس مقدار آن پارامتر نمایش دهد را به کد برنامه خود اضافه خواهید کرد.

پارامترها و شرایط Remote Config در کنسول Firebase تنظیم کنید

  1. در کنسول Firebase ، پروژه Firebase خود را باز کنید.

  2. در پنل سمت چپ، بخش Engage را باز کنید و سپس Remote Config را انتخاب کنید.

  3. روی ایجاد پیکربندی (یا اگر قبلاً از Remote Config استفاده کرده‌اید، روی افزودن پارامتر ) کلیک کنید.

  4. در پنل ایجاد پارامتر ، مراحل زیر را انجام دهید:

    1. در فیلد نام پارامتر ، ad_control_switch را وارد کنید.

    2. از منوی کشویی Data typeنوع داده بولی (Boolean) را انتخاب کنید.

    3. روی «ایجاد جدید» کلیک کنید و سپس «ایجاد شرایط جدید» را انتخاب کنید.

  5. در پنجره تعریف یک شرط جدید ، مراحل زیر را انجام دهید:

    1. در فیلد نام ، Purchasers Group (یا هر نام قابل شناسایی دیگری برای شرایط) را وارد کنید.

    2. از منوی کشویی «اعمال می‌شود اگر...» ، مخاطب(های) کاربر را انتخاب کنید.

    3. از منوی کشویی «انتخاب مخاطبان(ها) ، خریداران» را انتخاب کنید.

    4. روی ذخیره شرط کلیک کنید.

  6. به پنل Create parameter برگردید و مراحل زیر را انجام دهید:

    1. برای گروه ارزش خریداران، مقدار false را انتخاب کنید.

    2. برای مقدار پیش‌فرض ، مقدار true را انتخاب کنید.

  7. روی ذخیره و سپس انتشار تغییرات کلیک کنید.

این پیکربندی بررسی می‌کند که آیا کاربر در گروه «خریداران» قرار دارد یا خیر (یعنی، کاربر پرداخت‌کننده است):

  • اگر کاربر در گروه «خریداران» باشد، Remote Config مقدار false را برای پارامتر ad_control_switch برمی‌گرداند.

  • اگر کاربر در گروه «خریداران» نباشد ، Remote Config مقدار true را برای پارامتر ad_control_switch برمی‌گرداند.

در مراحل بعدی، شما Remote Config در برنامه خود پیاده‌سازی خواهید کرد تا این مقادیر پارامترها را مدیریت کند.

کیت توسعه نرم‌افزار Remote Config را به برنامه خود اضافه کنید.

قبل از استفاده از Remote Config در کد برنامه خود، SDK مربوط به Remote Config را به کدبیس برنامه خود اضافه کنید. توجه داشته باشید که برنامه شما باید از قبل SDK مربوط به Google Mobile Ads ( AdMob ) و Google Analytics for Firebase SDK را از مراحل قبلی این آموزش داشته باشد.

سویفت

پاد Remote Config را در پادفایل خود اضافه و نصب کنید:

pod 'Firebase/RemoteConfig'

اندروید

وابستگی کتابخانه Remote Config را به فایل build.gradle خود اضافه کنید:

implementation 'com.google.firebase:firebase-config:23.1.0'

فلوتر

از ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه Remote Config اجرا کنید:

flutter pub add firebase_remote_config

وحدت

آخرین نسخه Firebase Unity SDK را دانلود و نصب کنید و سپس بسته Remote Config را به پروژه خود اضافه کنید:
FirebaseRemoteConfig.unitypackage

پیکربندی نمونه Remote Config

برای اینکه برنامه شما بتواند از مقادیر پارامترهای Remote Config استفاده کند، نمونه Remote Config را طوری پیکربندی کنید که بتواند مقادیر جدید را برای نمونه برنامه کلاینت دریافت کند.

در این مثال، Remote Config طوری پیکربندی شده است که هر ساعت یک بار مقادیر پارامترهای جدید را بررسی کند.

سویفت

remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings

Kotlin

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

Java

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

فلوتر

remoteConfig = FirebaseRemoteConfig.instance;
  final configSettings = FirebaseRemoteConfigSettings(
    minimumFetchInterval: Duration(hours: 1),
  );
  await remoteConfig.setConfigSettings(configSettings);

  // Use the `onConfigUpdated` callback to listen for changes to the config settings.
  remoteConfig.onConfigUpdated.listen((_) {
    print('Config settings confirmed');
  });

وحدت

var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
var configSettings = new ConfigSettings {
  MinimumFetchInternalInMilliseconds =
        (ulong)(new TimeSpan(1, 0, 0).TotalMilliseconds)
};
remoteConfig.SetConfigSettingsAsync(configSettings)
        .ContinueWithOnMainThread(task => {
          Debug.Log("Config settings confirmed");
}

Remote Config دریافت و فعال کنید

پارامتر Remote Config را دریافت و فعال کنید تا بتواند از مقادیر پارامتر جدید استفاده کند.

شما می‌خواهید این فراخوانی را در اسرع وقت در مرحله بارگذاری برنامه خود انجام دهید، زیرا این فراخوانی ناهمزمان است و شما به مقدار Remote Config از قبل واکشی شده نیاز دارید تا برنامه شما بداند که آیا باید تبلیغی را نشان دهد یا خیر.

سویفت

remoteConfig.fetch() { (status, error) -> Void in
  if status == .success {
    print("Config fetched!")
    self.remoteConfig.activate() { (changed, error) in
      // ...
    }
  } else {
    print("Config not fetched")
    print("Error: \(error?.localizedDescription ?? "No error available.")")
  }
  self.loadAdUnit()
}

Kotlin

remoteConfig.fetchAndActivate()
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                val updated = task.result
                Log.d(TAG, "Config params updated: $updated")
            } else {
                Log.d(TAG, "Config params failed to update")
            }
            loadAdUnit()
        }

Java

mFirebaseRemoteConfig.fetchAndActivate()
        .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
            @Override
            public void onComplete(@NonNull Task<Boolean> task) {
                if (task.isSuccessful()) {
                    boolean updated = task.getResult();
                    Log.d(TAG, "Config params updated: " + updated);
                } else {
                    Log.d(TAG, "Config params failed to update");
                }
                loadAdUnit();
            }
        });

فلوتر

remoteConfig = FirebaseRemoteConfig.instance;

// Fetch and activate the latest Remote Config values.
final updated = await remoteConfig.fetchAndActivate();

// Check if the config params were updated successfully.
if (updated) {
  print('Config params updated');
} else {
  print('Config params failed to update');
}

// Load the ad unit.
_loadAdUnit();

وحدت

remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
  if (task.IsFaulted) {
    Debug.LogWarning("Config params failed to update");
  } else {
    Debug.Log("Config params updated: " + task.Result);
  }
  LoadAdUnit();
});

اکنون برنامه شما برای مدیریت پارامتر Remote Config که قبلاً در این مرحله ایجاد کرده‌اید، پیکربندی شده است.

از مقدار پارامتر Remote Config استفاده کنید

از مقدار از پیش واکشی شده‌ی Remote Config در تابع loadAdUnit() برای تعیین اینکه آیا نمونه‌ی برنامه باید یکی از موارد زیر را انجام دهد یا خیر، استفاده کنید:

  • مقدار پارامتر ad_control_switch به true تغییر می‌کند: تبلیغ بینابینی را نشان بده (زیرا کاربر، کاربری است که هزینه‌ای پرداخت نمی‌کند).

  • مقدار پارامتر ad_control_switch به false تغییر می‌کند: تبلیغ را نشان نده (زیرا کاربر، یک کاربر پرداخت‌کننده است).

سویفت

private func loadAdUnit() {
  let showAds = remoteConfig["ad_control_switch"].boolValue

  if showAds {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

Kotlin

private fun loadAdUnit() {
  var showAds = remoteConfig.getBoolean(ad_control_switch)

  if (showAds) {
      // Load interstitial ad (implemented ad unit)
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Don't show ads.
    }
}

Java

private void loadAdUnit() {
    boolean showAds =
      mFirebaseRemoteConfig.getBoolean(ad_control_switch);

    if (showAds) {
      // Load interstitial ad (implemented ad unit)
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Don't show ads.
    }
}

فلوتر

void _loadAdUnit() {
  bool showAds = remoteConfig.getBool(ad_control_switch);

  if (showAds) {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

وحدت

void LoadAdUnit() {
  bool showAds =
      remoteConfig.GetValue("ad_control_switch").BooleanValue;

  if (showAds) {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

برنامه خود را منتشر کنید

از آنجایی که منطق نمایش یا عدم نمایش تبلیغ در کدبیس شما وجود دارد، باید نسخه جدیدی از برنامه خود را که شامل این منطق است، منتشر کنید.

اگر مراحل این آموزش را دنبال کرده باشید، برنامه شما باید بلافاصله شروع به ارائه یک تجربه تبلیغات درون برنامه‌ای سفارشی به کاربرانتان کند. می‌توانید درآمد تبلیغات خود را هم در حساب AdMob خود و هم در داشبوردهای Google Analytics (چه در کنسول Firebase و چه در رابط کاربری Google Analytics) نظارت کنید.


و تمام! شما آموزش بهینه‌سازی کسب درآمد ترکیبی با استفاده از AdMob ، Google Analytics و Firebase را به پایان رساندید.




مرحله ۲: تنظیم گوگل آنالیتیکس