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

مرحله ۳: راه‌اندازی Firebase Remote Config برای نمایش تجربه‌های آگهی ویژه


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

مرحله ۳: راه‌اندازی Firebase Remote Config برای نمایش تجربه‌های آگهی ویژه


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

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

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

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

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

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

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

    2. از منو کرکره‌ای Data type، بولی را انتخاب کنید.

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

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

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

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

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

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

  6. در پانل ایجاد پارامتر، مراحل زیر را تکمیل کنید:

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

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

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

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

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

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

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

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

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

Swift

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

pod 'Firebase/RemoteConfig'

Android

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

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

فلوت‌زنی

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

flutter pub add firebase_remote_config

Unity

آخرین نسخه کیت توسعه نرم‌افزار Firebase Unity را بارگیری و نصب کنید، و سپس بسته Remote Config را به پروژه‌تان اضافه کنید:
FirebaseRemoteConfig.unitypackage

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

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

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

Swift

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');
  });

Unity

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 را ازقبل واکشی کنید تا برنامه‌تان بداند آگهی نشان دهد یا نه.

Swift

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();

Unity

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 تبدیل می‌شود: تبلیغ نمایش داده نشود (زیرا کاربر، کاربر پولی است).

Swift

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.
  }
}

Unity

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 را تکمیل کردید.




مرحله ۲: راه‌اندازی Google Analytics