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

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


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

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


در پایان آخرین مرحله، با مخاطبان Google Analytics آشنا شدید. در این مرحله، یک پارامتر کنترل بولی 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. روی Create new کلیک کنید و سپس Create new condition را انتخاب کنید.

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

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

    2. از منوی کشویی Applies if... ، مخاطبین کاربر را انتخاب کنید.

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

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

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

    1. برای گروه Value of Purchasers , false را انتخاب کنید.

    2. برای مقدار Default ، true را انتخاب کنید.

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

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

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

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

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

Remote Config SDK را به برنامه خود اضافه کنید

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

سویفت

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

pod 'Firebase/RemoteConfig'

اندروید

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

implementation 'com.google.firebase:firebase-config:22.0.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+KTX

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+KTX

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+KTX

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 UI) نظارت کنید.


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




مرحله 2: Google Analytics را راه اندازی کنید