ขั้นตอนที่ 3: จัดการค่าพารามิเตอร์ Remote Config ในโค้ดของแอป
| ข้อมูลเบื้องต้น ทดสอบ การใช้AdMobรูปแบบโฆษณาใหม่โดยใช้ Firebase |
| ขั้นตอนที่ 1: ใช้ AdMob เพื่อสร้างตัวแปรหน่วยโฆษณาใหม่สำหรับการทดสอบ |
| ขั้นตอนที่ 2: ตั้งค่า การทดสอบ A/B ในFirebaseคอนโซล |
|
ขั้นตอนที่ 3: จัดการค่าพารามิเตอร์ Remote Config ในโค้ดของแอป |
| ขั้นตอนที่ 4: เริ่ม การทดสอบ A/B และตรวจสอบผลการทดสอบในFirebaseคอนโซล |
| ขั้นตอนที่ 5: ตัดสินใจ ว่าจะเปิดตัวรูปแบบโฆษณาใหม่หรือไม่ |
ในขั้นตอนสุดท้าย คุณได้สร้างRemote Configพารามิเตอร์
(SHOW_NEW_AD_KEY) ในขั้นตอนนี้ คุณจะเพิ่มตรรกะลงในโค้ดของแอปเพื่อ
สิ่งที่แอปควรแสดงตามค่าของพารามิเตอร์นั้น — true
(แสดงโฆษณาใหม่) เทียบกับ false (ไม่แสดงโฆษณาใหม่)
เพิ่ม SDK ที่จำเป็น
ก่อนใช้ Remote Config ในโค้ดแอปพลิเคชัน ให้เพิ่มทั้ง SDK ของ Remote Config และ Firebase SDK สําหรับ Google Analytics ลงใน ไฟล์บิลด์ของโปรเจ็กต์
แพลตฟอร์มของ Apple
เพิ่มและติดตั้งพ็อดต่อไปนี้ใน Podfile
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Android
เพิ่มทรัพยากร Dependency ของไลบรารีต่อไปนี้ลงในไฟล์ build.gradle
implementation 'com.google.android.gms:play-services-ads:25.2.0'
implementation 'com.google.firebase:firebase-analytics:23.2.0'
implementation 'com.google.firebase:firebase-config:23.1.0'
Unity
ดาวน์โหลดและติดตั้ง Firebase Unity SDK จากนั้นเพิ่มแพ็กเกจ 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คอนโซลที่ดึงข้อมูลและเปิดใช้งาน ในการเรียกก่อนหน้า
ขั้นตอนที่ 2: สร้างการทดสอบ A/B ในFirebaseคอนโซล ขั้นตอนที่ 4: เริ่มการทดสอบ A/B และตรวจสอบผลการทดสอบ