Samouczek: optymalizacja zarabiania hybrydowego za pomocą AdMob, Google Analytics i Firebase

Krok 3. Skonfiguruj Firebase Remote Config, aby wyświetlać określone reklamy


Wprowadzenie: Optymalizacja hybrydowej monetyzacji za pomocą AdMob, Google Analytics, i Firebase
Krok 1. Utwórz w AdMob nowe jednostki reklamowe do wyświetlania
Krok 2. Skonfiguruj Google Analytics

Krok 3: Skonfiguruj Firebase Remote Config aby wyświetlać określone reklamy


Na końcu poprzedniego kroku dowiedzieliśmy się więcej o listach odbiorców Google Analytics. W tym kroku utworzysz parametr sterowany wartością logiczną Remote Config (o nazwie ad_control_switch), który korzysta z listy odbiorców „Kupujący”. Następnie dodasz do kodu aplikacji logikę określającą, co aplikacja ma wyświetlać na podstawie wartości tego parametru.

Konfigurowanie parametrów i warunków w konsoliRemote ConfigFirebase

  1. W konsoli Firebase otwórz projekt Firebase.Firebase

  2. W panelu po lewej stronie rozwiń sekcję Zaangażowanie i wybierz Zdalna konfiguracja.

  3. Kliknij Utwórz konfigurację (lub Dodaj parametr , jeśli wcześniej korzystałeś(-aś) ze Zdalnej konfiguracji Remote Config).

  4. W panelu Utwórz parametr wykonaj te czynności:

    1. W polu Nazwa parametru wpisz ad_control_switch.

    2. W menu Data type wybierz Wartość logiczna.

    3. Kliknij Utwórz nową, a następnie wybierz Utwórz nowy warunek.

  5. W oknie Zdefiniuj nowy warunek wykonaj te czynności:

    1. W polu Nazwa wpisz Purchasers Group (lub inną łatwą do rozpoznania nazwę warunku).

    2. W menu Obowiązuje, jeśli... wybierz Listy odbiorców.

    3. W menu Wybierz listy odbiorców wybierz Kupujący.

    4. Kliknij Zapisz warunek.

  6. Wróć do panelu Utwórz parametr i wykonaj te czynności:

    1. W przypadku Wartości w Grupie kupujących wybierz fałsz.

    2. W przypadku Wartości domyślnej wybierz prawda.

  7. Kliknij Zapisz, a następnie Opublikuj zmiany.

Ta konfiguracja sprawdzi, czy użytkownik znajduje się na liście odbiorców „Kupujący” (czyli czy jest płacącym użytkownikiem):

  • Jeśli użytkownik znajduje się na liście odbiorców "Kupujący", Remote Config zwróci wartość false dla parametru ad_control_switch.

  • Jeśli użytkownik nie znajduje się na liście odbiorców "Kupujący", Remote Config zwróci wartość true dla parametru ad_control_switch.

W kolejnych krokach zaimplementujesz Remote Config w aplikacji, aby obsługiwać te wartości parametrów.

Dodawanie pakietu SDK Remote Config do aplikacji

Zanim zaczniesz używać Remote Config w kodzie aplikacji, dodaj pakiet SDK Remote Config do bazy kodu aplikacji. Pamiętaj, że w poprzednich krokach tego samouczka do aplikacji zostały już dodane pakiet SDK Google Mobile Ads (AdMob) i pakiet SDK Google Analytics dla Firebase.

Swift

Dodaj i zainstaluj pod Remote Config w pliku podfile:

pod 'Firebase/RemoteConfig'

Android

Dodaj zależność biblioteki Remote Config do pliku build.gradle:

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

Flutter

W katalogu głównym projektu Flutter uruchom to polecenie, aby zainstalować wtyczkę Remote Config:

flutter pub add firebase_remote_config

Unity

Pobierz i zainstaluj najnowszy pakiet Firebase Unity SDK, a następnie dodaj pakiet Remote Config do projektu:
FirebaseRemoteConfig.unitypackage

Konfigurowanie instancji Remote Config

Aby aplikacja mogła używać wartości parametrów Remote Config, skonfiguruj instancję Remote Config, która umożliwi pobieranie nowych wartości przez instancję aplikacji klienta.

W tym przykładzie Remote Config jest skonfigurowana tak, aby sprawdzać nowe wartości parametrów co godzinę.

Swift

remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings

Kotlin

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

Pobieranie i aktywowanie Remote Config

Pobierz i aktywuj parametr Remote Config, aby mogła ona zacząć używać nowych wartości parametrów.

To wywołanie powinno pojawić się na etapie wczytywania aplikacji jak najszybciej ponieważ jest ono asynchroniczne. Wartość Remote Config musi być pobierana z wyprzedzeniem żeby było wiadomo, czy w aplikacji ma się wyświetlić reklama.

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

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

Twoja aplikacja jest teraz skonfigurowana do obsługi parametru Remote Config utworzonego przez Ciebie wcześniej w tym kroku.

Użyj wartości parametru Remote Config

Użyj pobranej z wyprzedzeniem wartości Remote Config w funkcji loadAdUnit(), aby określić, czy instancja aplikacji ma wykonać jedną z tych czynności:

  • Wartość parametru ad_control_switch to true: wyświetl reklamę pełnoekranową (ponieważ użytkownik jest użytkownikiem wersji bezpłatnej).

  • Wartość parametru ad_control_switch to false: nie wyświetlaj reklamy (ponieważ użytkownik płaci).

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

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

Publikowanie aplikacji

Ponieważ logika wyświetlania lub niewyświetlania reklamy znajduje się w bazie kodu, musisz opublikować nową wersję aplikacji, która zawiera tę logikę.

Jeśli wykonasz czynności opisane w tym samouczku, Twoja aplikacja powinna od razu zacząć wyświetlać użytkownikom spersonalizowane reklamy w aplikacji. Przychody z reklam możesz monitorować zarówno na koncie AdMob, jak i na panelach Google Analytics (w konsoli Firebase lub w interfejsie Google Analytics).


To wszystko! Ukończono samouczek dotyczący optymalizacji monetyzacji hybrydowej za pomocą AdMob, Google Analytics i Firebase.




Krok 2. Skonfiguruj Google Analytics