บทแนะนํา: เพิ่มประสิทธิภาพการสร้างรายได้รูปแบบผสมโดยใช้ AdMob, Google Analytics และ Firebase

ขั้นตอนที่ 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. ในแผงด้านซ้าย ให้ขยายส่วนมีส่วนร่วม แล้วเลือก การกำหนดค่าระยะไกล

  3. คลิกสร้างการกําหนดค่า (หรือเพิ่มพารามิเตอร์หากใช้ Remote Config ก่อน)

  4. ในแผงสร้างพารามิเตอร์ ให้ทำตามขั้นตอนต่อไปนี้

    1. ในช่องชื่อพารามิเตอร์ ให้ป้อน ad_control_switch

    2. จากเมนูแบบเลื่อนลง Data type ให้เลือกบูลีน

    3. คลิกสร้างใหม่ แล้วเลือกสร้างเงื่อนไขใหม่

  5. ทำตามขั้นตอนต่อไปนี้ในกล่องโต้ตอบกำหนดเงื่อนไขใหม่

    1. ในช่อง Name ให้ป้อน Purchasers Group (หรืออะไรก็ได้ที่จำง่าย ชื่อที่ระบุได้ของเงื่อนไข)

    2. จากเมนูแบบเลื่อนลงใช้หาก... ให้เลือกกลุ่มเป้าหมายที่เป็นผู้ใช้

    3. จากเมนูแบบเลื่อนลงเลือกกลุ่มเป้าหมาย ให้เลือกผู้ซื้อ

    4. คลิกบันทึกเงื่อนไข

  6. กลับไปที่แผงสร้างพารามิเตอร์ ให้ทำตามขั้นตอนต่อไปนี้

    1. สําหรับค่าของกลุ่มผู้ซื้อ ให้เลือก false

    2. เลือก true สําหรับค่าเริ่มต้น

  7. คลิกบันทึก แล้วคลิกเผยแพร่การเปลี่ยนแปลง

การกําหนดค่านี้จะตรวจสอบว่าผู้ใช้อยู่ใน "ผู้ซื้อ" หรือไม่ กลุ่มเป้าหมาย (กล่าวคือ พวกเขาเป็นผู้ใช้ที่จ่ายเงิน):

  • หากผู้ใช้อยู่ในกลุ่ม "ผู้ซื้อ" จากนั้น Remote Config จะ แสดงผลค่า false สำหรับพารามิเตอร์ ad_control_switch

  • หากผู้ใช้ไม่ได้อยู่ใน "ผู้ซื้อ" จากนั้น Remote Config จะแสดงผลค่า true สำหรับพารามิเตอร์ ad_control_switch

ในขั้นตอนต่อไปนี้คุณจะใช้ Remote Config ในแอปเพื่อ จัดการค่าพารามิเตอร์เหล่านี้

เพิ่ม SDK Remote Config ลงในแอป

ก่อนใช้ Remote Config ในโค้ดของแอปพลิเคชัน ให้เพิ่ม Remote Config SDK ไปยังฐานของโค้ดของแอป โปรดทราบว่าแอปของคุณควร มี SDK Google Mobile Ads (AdMob) และ SDK ของ Google Analytics สำหรับ Firebase จากขั้นตอนก่อนหน้าของบทแนะนำนี้

Swift

เพิ่มและติดตั้งพ็อด Remote Config ใน Podfile ดังนี้

pod 'Firebase/RemoteConfig'

Android

เพิ่มทรัพยากร Dependency ของไลบรารี Remote Config ลงในไฟล์ build.gradle ดังนี้

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

Flutter

จากรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง ปลั๊กอิน Remote Config:

flutter pub add firebase_remote_config

Unity

ดาวน์โหลดและติดตั้งเวอร์ชันล่าสุด Firebase Unity SDK แล้วเพิ่ม แพ็กเกจ Remote Config ในโปรเจ็กต์ของคุณ:
FirebaseRemoteConfig.unitypackage

กำหนดค่าอินสแตนซ์ Remote Config

เพื่อให้แอปสามารถใช้ค่าพารามิเตอร์ Remote Config โปรดกำหนดค่า Remote Config อินสแตนซ์เพื่อให้ดึงข้อมูลค่าใหม่สำหรับแอปไคลเอ็นต์ได้ อินสแตนซ์

ในตัวอย่างนี้ มีการกำหนดค่า Remote Config เพื่อตรวจหาพารามิเตอร์ใหม่ 1 ครั้งต่อชั่วโมง

Swift

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

Flutter

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

Flutter

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

Flutter

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 หรือ UI ของ Google Analytics)


เท่านี้ก็เรียบร้อย คุณดูบทแนะนำสำหรับการเพิ่มประสิทธิภาพการสร้างรายได้รูปแบบผสมจบแล้ว โดยใช้ AdMob, Google Analytics และ Firebase




ขั้นตอนที่ 2: ตั้งค่า Google Analytics