ट्यूटोरियल: AdMob, Google Analytics, और Firebase का इस्तेमाल करके, कमाई करने के हाइब्रिड मॉडल को ऑप्टिमाइज़ करें

तीसरा चरण: खास विज्ञापन अनुभव दिखाने के लिए Firebase Remote Config सेट अप करना


जानकारी: AdMob, Google Analytics, और Firebase का इस्तेमाल करके, हाइब्रिड मॉनेटाइज़ेशन को ऑप्टिमाइज़ करना
पहला चरण: डिसप्ले के लिए नई विज्ञापन यूनिट बनाने के लिए, AdMob का इस्तेमाल करना
दूसरा चरण: Google Analytics सेट अप करना

तीसरा चरण: विज्ञापनों के खास अनुभव दिखाने के लिए, Firebase Remote Config सेट अप करें


पिछले चरण के आखिर में, आपको Google Analytics की ऑडियंस के बारे में जानकारी मिली थी. इस चरण में, आपको Remote Config बूलियन कंट्रोल वाला पैरामीटर (जिसे ad_control_switch कहा जाता है) बनाना होगा. यह पैरामीटर, "खरीदारों" ऑडियंस का फ़ायदा उठाता है. इसके बाद, आपको अपने ऐप्लिकेशन के कोड में लॉजिक जोड़ना होगा, ताकि उस पैरामीटर की वैल्यू के आधार पर आपके ऐप्लिकेशन को पता चल सके कि उसे क्या दिखाना है.

Firebase console में Remote Config पैरामीटर और शर्तें सेट अप करना

  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. डिफ़ॉल्ट वैल्यू के लिए, true चुनें.

  7. सेव करें पर क्लिक करें. इसके बाद, बदलाव पब्लिश करें पर क्लिक करें.

यह कॉन्फ़िगरेशन यह जांच करेगा कि उपयोगकर्ता "खरीदारों" ऑडियंस में है या नहीं (यानी, वह पैसे चुकाने वाला उपयोगकर्ता है):

  • अगर उपयोगकर्ता "खरीदारों" ऑडियंस में है, तो Remote Config, ad_control_switch पैरामीटर के लिए false की वैल्यू दिखाएगा.

  • अगर उपयोगकर्ता "खरीदारों" ऑडियंस में शामिल नहीं है, तो Remote Config ad_control_switch पैरामीटर के लिए true की वैल्यू दिखाएगा.

इन पैरामीटर वैल्यू को मैनेज करने के लिए, यहां दिए गए चरणों में अपने ऐप्लिकेशन में Remote Config लागू किया जाएगा.

अपने ऐप्लिकेशन में Remote Config SDK टूल जोड़ना

अपने ऐप्लिकेशन कोड में Remote Config का इस्तेमाल करने से पहले, अपने ऐप्लिकेशन के कोडबेस में Remote Config SDK टूल जोड़ें. ध्यान दें कि आपके ऐप्लिकेशन में, इस ट्यूटोरियल के पिछले चरणों से Google Mobile Ads (AdMob) SDK टूल और Firebase के लिए Google Analytics SDK टूल पहले से मौजूद होना चाहिए.

अपनी podfile में Remote Config पॉड जोड़ें और इंस्टॉल करें:

pod 'Firebase/RemoteConfig'

अपनी build.gradle फ़ाइल में Remote Config लाइब्रेरी डिपेंडेंसी जोड़ें:

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

Remote Config प्लग इन इंस्टॉल करने के लिए, अपने Flutter प्रोजेक्ट के रूट से यह कमांड चलाएं:

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
remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)
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()
}
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()
        }
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 पैरामीटर वैल्यू का इस्तेमाल करना

loadAdUnit() फ़ंक्शन में, पहले से फ़ेच की गई Remote Config वैल्यू का इस्तेमाल करके, यह तय करें कि ऐप्लिकेशन इंस्टेंस को इनमें से कोई एक काम करना चाहिए या नहीं:

  • 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.
  }
}
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.
    }
}
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 यूज़र इंटरफ़ेस (यूआई) में देखा जा सकता है.


बस इतना ही! आपने AdMob, Google Analytics, और Firebase का इस्तेमाल करके, हाइब्रिड मॉनेटाइज़ेशन को ऑप्टिमाइज़ करने के लिए ट्यूटोरियल पूरा कर लिया है.




दूसरा चरण: Google Analytics सेट अप करना