مرحله ۳: مدیریت مقادیر پارامتر Remote Config در کد برنامه
| مقدمه: آزمایش پذیرش قالب آگهی AdMob جدید بااستفاده از Firebase |
| مرحله ۱: استفاده از AdMob برای ایجاد گونه واحد آگهی جدید برای آزمایش |
| مرحله ۲: راهاندازی آزمون آ/ب در کنسول Firebase |
|
مرحله ۳: مدیریت مقادیر پارامتر Remote Config در کد برنامه |
| مرحله ۴: شروع آزمون آ/ب و مرور نتایج آزمون در کنسول Firebase |
| مرحله ۵: تصمیم بگیرید قالب آگهی جدید را عرضه کنید یا نه |
در پایان مرحله آخر، پارامتر Remote Config را ایجاد کردید
(SHOW_NEW_AD_KEY). در این مرحله، منطق را به کد برنامهتان اضافه میکنید تا براساس مقدار آن پارامتر، برنامه چه چیزی را نمایش دهد — true
(آگهی جدید را نشان بده) دربرابر false (آگهی جدید را نشان نده).
کیتهای توسعه نرمافزار موردنیاز را اضافه کنید
قبلاز استفاده از Remote Config در کد برنامه، هم کیت توسعه نرمافزار Remote Config و هم کیت توسعه نرمافزار Firebase برای Google Analytics را به فایلهای ساخت پروژه اضافه کنید.
پلاتفرمهای Apple
غلافهای زیر را به فایل غلاف خود اضافه و نصب کنید:
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Android
وابستگیهای کتابخانه زیر را به فایل build.gradle خود اضافه کنید:
implementation 'com.google.android.gms:play-services-ads:25.5.0'
implementation 'com.google.firebase:firebase-analytics:23.2.0'
implementation 'com.google.firebase:firebase-config:23.1.0'
Unity
«کیت توسعه نرمافزار Firebase Unity» را بارگیری و نصب کنید، سپس بستههای Unity زیر را به پروژهتان اضافه کنید:
FirebaseAnalytics.unitypackageFirebaseRemoteConfig.unitypackage
پیکربندی نمونه Remote Config
برای استفاده از مقادیر پارامتر Remote Config، نمونه Remote Config را پیکربندی کنید تا برای واکشی مقادیر جدید برای نمونه برنامه مشتری راهاندازی شود.
در این مثال، Remote Config پیکربندی شده است تا مقادیر پارامتر جدید را هر ساعت یکبار بررسی کند.
Swift
remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings
Objective-C
self.remoteConfig = [FIRRemoteConfig remoteConfig];
FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
remoteConfigSettings.minimumFetchInterval = 3600;
self.remoteConfig.configSettings = remoteConfigSettings;
Java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Kotlin
remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)
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()
}
Objective-C
[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
if (status == FIRRemoteConfigFetchStatusSuccess) {
NSLog(@"Config fetched!");
[self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
// ...
}];
} else {
NSLog(@"Config not fetched");
NSLog(@"Error %@", error.localizedDescription);
}
[self 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();
}
});
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()
}
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 را که در طول راهاندازی آزمایش A/B در ابتدای این آموزش ایجاد کردید مدیریت کند.
استفاده از مقدار پارامتر Remote Config
از مقدار پیشواکشیشده Remote Config در تابع loadAdUnit() استفاده کنید تا
تعیین کنید آیا نمونه برنامه باید واحد آگهی بینابینی پاداشدار جدید را نشان دهد (مقدار پارامتر true) یا
نشان ندهد (مقدار پارامتر false).
Swift
private func loadAdUnit() {
let showNewAdFormat = remoteConfig["users"].boolValue
if showNewAdFormat {
// Load Rewarded Interstitial Ad.
// This should load your new implemented ad unit
// as per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Objective-C
- (void)loadAdUnit {
BOOL showAds = self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;
if (showAds) {
// Load Rewarded Interstitial Ad.
// This should load your new implemented ad unit
// per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Java
private void loadAdUnit() {
boolean showNewAdFormat =
mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY);
if (showNewAdFormat) {
// Load Rewarded Interstitial Ad.
// This should load your new implemented ad unit
// per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Kotlin
private fun loadAdUnit() {
var showNewAdFormat = remoteConfig.getBoolean(SHOW_NEW_AD_KEY)
if (showNewAdFormat) {
// Load Rewarded Interstitial Ad.
// This should load your new implemented ad unit
// per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Unity
void LoadAdUnit() {
bool showNewAdFormat =
remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue;
if (showNewAdFormat) {
// Load Rewarded Interstitial Ad (new implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
افزودن بررسیهای دیگر برای مقدار پارامتر
در بخشهای دیگری از کد برنامهتان باید مقدار این پارامتر Remote Config را بررسی کنید تا مشخص شود کدام تجربه آگهی بارگیری خواهد شد. برای مثال، میتوانید تصمیم بگیرید که آیا آگهی پساز اینکه کاربر مشاهده آگهی کنونی را تمام کرد مجدد بار شود یا نه.
ابتدا باید تماسهای واکشی و فعالسازی برقرار شود تا تغییرات مقدار پارامتر دریافت شود — برای مثال، اگر تصمیم بگیرید آزمایش جدیدی ایجاد کنید یا آزمایشی را پایان دهید.
از آنجا، همیشه میتوانید مقدار پارامتر را بااستفاده از تماسهای زیر بررسی کنید:
Swift
remoteConfig["showNewAdKey"].boolValue
Objective-C
self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;
Java
mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)
Kotlin
remoteConfig.getBoolean(SHOW_NEW_AD_KEY)
Unity
remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue
این تماسها همیشه مقدار یکسانی را برای نمونه برنامه برمیگردانند، بسته به اینکه در گروه کنترل یا گروه متغیر آگهی جدید قرار گرفته باشد، مگر اینکه در کنسول Firebase تغییراتی ایجاد شده باشد که در تماسهای قبلی واکشی و فعال شده باشد.
مرحله ۲: راهاندازی کردن آزمون آ/ب در کنسول Firebase مرحله ۴: شروع کردن آزمون آ/ب و بررسی نتایج آزمون