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 monetyzacji hybrydowej za pomocą AdMob, Google Analytics i Firebase
Krok 1. Użyj opcji AdMob, aby utworzyć nowe jednostki reklamowe wyświetlania
Krok 2. Skonfiguruj Google Analytics

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


W ostatnim kroku poznaliśmy listy odbiorców Google Analytics. W tym kroku utworzysz parametr Remote Config kontrolowany przez wartość logiczną (nazywany ad_control_switch), który wykorzystuje listę odbiorców „Kupujący”. Następnie dodaj do kodu aplikacji logikę, która określi, co ma się wyświetlać w aplikacji na podstawie wartości tego parametru.

Konfigurowanie parametrów i warunków Remote Config w konsoli Firebase

  1. W konsoli Firebase otwórz projekt Firebase.

  2. W panelu po lewej stronie rozwiń sekcję Zaangażuj i kliknij Konfiguracja zdalna.

  3. Kliknij Utwórz konfigurację (lub Dodaj parametr, jeśli korzystasz z ustawienia 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 kliknij Logiczna.

    3. Kliknij Utwórz nowe, a następnie Utwórz nowy warunek.

  5. W oknie Definiowanie nowego warunku wykonaj te czynności:

    1. W polu Nazwa wpisz Purchasers Group (lub inną łatwo rozpoznawalną nazwę dla warunku).

    2. W menu Dotyczy, jeśli… kliknij Listy odbiorców z danymi o użytkownikach.

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

    4. Kliknij Zapisz warunek.

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

    1. Jako Wartość w polu Grupa nabywców wybierz false.

    2. Jako Wartość domyślna wybierz true.

  7. Kliknij kolejno ZapiszOpublikuj zmiany.

Ta konfiguracja sprawdza, czy użytkownik należy do grupy odbiorców „Kupujący” (czyli czy jest płatnym użytkownikiem):

  • Jeśli użytkownik należy do listy odbiorców „Kupujący”, funkcja Remote Config zwraca wartość false dla parametru ad_control_switch.

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

W następnych krokach wdrożysz w swojej aplikacji funkcję Remote Config, aby obsługiwać te wartości parametrów.

Dodaj do aplikacji pakiet SDK Remote Config

Zanim użyjesz pakietu Remote Config w kodzie aplikacji, dodaj do kodu aplikacji pakiet SDK Remote Config. Pamiętaj, że w aplikacji powinien być już zainstalowany pakiet SDK Google Mobile Ads (AdMob) i pakiet SDK Google Analytics dla Firebase z poprzednich kroków tego samouczka.

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:22.0.1'

Flutter

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

flutter pub add firebase_remote_config

Unity

Pobierz i zainstaluj najnowszą wersję pakietu Firebase Unity SDK, a potem dodaj do projektu pakiet Remote Config:
FirebaseRemoteConfig.unitypackage

Konfigurowanie instancji Remote Config

Aby aplikacja mogła używać wartości parametru Remote Config, skonfiguruj instancję Remote Config tak, aby mogła pobierać nowe wartości dla instancji aplikacji klienta.

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

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

Pobierz i aktywuj 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, a wartość Remote Config musi być pobierana z wyprzedzeniem, żeby aplikacja wiedziała, czy ma wyświetlić reklamę.

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 w funkcji loadAdUnit() wartości Remote Config pobranej wcześniej, aby określić, czy instancja aplikacji powinna wykonać jedną z tych czynności:

  • Wartość parametru ad_control_switch jest przekształcana w wartość true: wyświetl reklamę pełnoekranową (ponieważ użytkownik nie jest płatnym subskrybentem).

  • Wartość parametru ad_control_switch to false: nie wyświetlaj reklamy (ponieważ użytkownik jest płacącym użytkownikiem).

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 reklamy znajduje się w Twoim kodzie, musisz opublikować nową wersję aplikacji zawierającą tę logikę.

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


To wszystko. Użytkownik ukończył samouczek dotyczący optymalizacji hybrydowej monetyzacji za pomocą AdMob, Google Analytics i Firebase.




Krok 2. Skonfiguruj Google Analytics