Parametri e condizioni di Remote Config


Puoi configurare i modelli sia per i casi d'uso client sia per quelli server. I modelli client vengono pubblicati in tutte le istanze di app che implementano gli SDK client Firebase per Remote Config, tra cui app per Android, Apple, web, Unity, Flutter e C++. I parametri e i valori Remote Config dei modelli specifici del server vengono inviati alle implementazioni Remote Config (incluse Cloud Run e Cloud Functions) che utilizzano l'SDK Node.js Firebase Admin 12.1.0 e versioni successive.

Quando utilizzi la console Firebase o le API di backend Remote Config, definisci uno o più parametri (coppie chiave-valore) e fornisci valori predefiniti in-app per questi parametri. Puoi eseguire l'override dei valori predefiniti in-app definendo i valori parametro. Le chiavi e i valori dei parametri sono stringhe, ma i valori dei parametri possono essere trasmessi come altri tipi di dati quando li utilizzi nella tua app.

Utilizzando la console Firebase, Admin SDK o l'API REST Remote Config, puoi creare nuovi valori predefiniti per i parametri, nonché valori condizionali utilizzati per scegliere come target gruppi di istanze di app. Ogni volta che aggiorni la configurazione nella console Firebase, Firebase crea e pubblica una nuova versione del tuo modello Remote Config. La versione precedente viene archiviata, consentendoti di recuperarla o eseguire il rollback in base alle esigenze. Queste operazioni sono disponibili nella console Firebase, in Firebase Admin SDK e nell'API REST e sono descritte più dettagliatamente in Gestire le versioni dei modelli Remote Config.

Questa guida illustra i parametri, le condizioni, le regole, i valori condizionali e la modalità di assegnazione della priorità ai vari valori parametro nel backend di Remote Config e nella tua app. Fornisce inoltre dettagli sui tipi di regole utilizzate per creare condizioni.

Condizioni, regole e valori condizionali

Una condizione viene utilizzata per scegliere come target un gruppo di istanze di app. Le condizioni sono costituite da una o più regole che devono avere tutte un valore true affinché la condizione abbia un valore true per una determinata istanza dell'app. Se il valore di una regola è undefined (ad esempio quando non è disponibile alcun valore), la regola avrà valore false.

Ad esempio, un parametro che definisce la pagina iniziale di un'app potrebbe mostrare immagini diverse in base al tipo di sistema operativo utilizzando la regola if device_os = Android:

Screenshot del parametro "splash_page" nella Console Firebase che mostra il valore predefinito per iOS e il valore condizionale per Android

In alternativa, puoi utilizzare una condizione temporale per controllare quando la tua app mostra gli articoli promozionali speciali.

Un parametro può avere più valori condizionali che utilizzano condizioni diverse e i parametri possono condividere le condizioni all'interno di un progetto. Nella scheda Parametri della console Firebase, puoi visualizzare la percentuale di recupero per i valori condizionali di ciascun parametro. Questa metrica indica la percentuale di richieste nelle ultime 24 ore che hanno ricevuto ciascun valore.

Priorità del valore parametro

A un parametro possono essere associati più valori condizionali. Le seguenti regole determinano quale valore viene recuperato dal modello Remote Config e quale viene utilizzato in una determinata istanza dell'app in un determinato momento:

  1. Innanzitutto, i valori condizionali vengono applicati a tutte le condizioni che hanno un valore valutato pari a true per una determinata richiesta del client. Se più condizioni hanno come risultato true, ha la precedenza la prima (in alto) mostrata nell'interfaccia utente della console Firebase e i valori condizionali associati a questa condizione vengono forniti quando un'app recupera i valori dal backend. Puoi modificare la priorità delle condizioni trascinandole nella scheda Condizioni.

  2. Se non sono presenti valori condizionali con condizioni che valutano true, il valore predefinito di Remote Config viene fornito quando un'app recupera valori dal backend. Se un parametro non esiste nel backend o se il valore predefinito è impostato su Utilizza predefinito in-app, non viene fornito alcun valore per quel parametro quando un'app recupera i valori.

Nella tua app, i valori dei parametri vengono restituiti dai metodi get in base al seguente elenco di priorità

  1. Se un valore è stato recuperato dal backend e poi attivato, l'app utilizza il valore recuperato. I valori dei parametri attivati sono permanenti.
  2. Se non è stato recuperato alcun valore dal backend o se i valori recuperati dal backend di Remote Config non sono stati attivati, l'app utilizza il valore predefinito in-app.

    Per ulteriori informazioni su come ottenere e impostare i valori predefiniti, consulta Scarica i valori predefiniti del modello Remote Config.

  3. Se non è stato impostato alcun valore predefinito in-app, l'app utilizza un valore di tipo statico (ad esempio 0 per int e false per boolean).

Questa immagine riassume la modalità di assegnazione della priorità ai valori dei parametri nel backendRemote Config e nell'app:

Diagramma che mostra il flusso descritto dagli elenchi ordinati sopra

Tipi di dati dei valori parametro

Remote Config ti consente di selezionare un tipo di dati per ogni parametro e convalida tutti i valori Remote Config in base a quel tipo prima di un aggiornamento del modello. Il tipo di dati viene archiviato e restituito su una richiesta getRemoteConfig.

I tipi di dati supportati sono:

  • String
  • Boolean
  • Number
  • JSON

Nell'interfaccia utente della console Firebase, il tipo di dati può essere selezionato da un menu a discesa accanto alla chiave del parametro. Nell'API REST, i tipi possono essere impostati utilizzando il campo value_type all'interno dell'oggetto parametro.

Gruppi di parametri

Remote Config ti consente di raggruppare i parametri per un'UI più organizzata e migliorare l'usabilità.

Ad esempio, supponiamo che tu debba attivare o disattivare tre diversi tipi di autenticazione durante l'implementazione di una nuova funzionalità di accesso. Con Remote Config, puoi creare i tre parametri per attivare i tipi che preferisci e poi organizzarli in un gruppo denominato "Nuovo accesso", senza dover aggiungere prefissi o ordinamento speciale.

Puoi creare gruppi di parametri utilizzando la console Firebase o l'API REST Remote Config. Ogni gruppo di parametri che crei ha un nome univoco nel tuo modello Remote Config. Quando crei gruppi di parametri, tieni presente quanto segue:

  • I parametri possono essere inclusi in un solo gruppo alla volta e una chiave del parametro deve essere comunque univoca per tutti i parametri.
  • I nomi dei gruppi di parametri sono limitati a 256 caratteri.
  • Se utilizzi sia l'API REST sia la console Firebase, assicurati che qualsiasi logica dell'API REST sia aggiornata per gestire i gruppi di parametri durante la pubblicazione.

Crea o modifica i gruppi di parametri utilizzando la console Firebase

Puoi raggruppare i parametri nella scheda Parametri della console Firebase. Per creare o modificare un gruppo:

  1. Seleziona Gestisci gruppi.
  2. Seleziona le caselle di controllo per i parametri da aggiungere e seleziona Sposta nel gruppo.
  3. Seleziona un gruppo esistente o creane uno nuovo inserendo un nome e una descrizione e selezionando Crea nuovo gruppo. Dopo aver salvato un gruppo, puoi pubblicarlo utilizzando il pulsante Pubblica modifiche.

Creare gruppi tramite programmazione

L'API REST di Remote Config offre un modo automatico per creare e pubblicare gruppi di parametri. Supponendo che tu abbia familiarità con REST e che sia configurato per autorizzare le richieste all'API, puoi eseguire questi passaggi per gestire i gruppi in modo programmatico:

  1. Recupera il modello corrente
  2. Aggiungi oggetti JSON per rappresentare i gruppi di parametri
  3. Pubblica i gruppi di parametri utilizzando una richiesta PUT HTTP.

L'oggetto parameterGroups contiene chiavi di gruppo, con una descrizione nidificata e un elenco di parametri raggruppati. Tieni presente che ogni chiave di gruppo deve essere univoca a livello globale.

Ad esempio, di seguito è riportato un estratto di una revisione del modello che aggiunge il gruppo di parametri "nuovo menu" con un parametro, pumpkin_spice_season:

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …

  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's pumpkin spice season."
        }
      }
    }
  }
}

Condizioni degli indicatori personalizzati

I valori condizionali degli indicatori personalizzati possono essere utilizzati per associare indicatori arbitrari che definisci e invii nella tua applicazione con le condizioni che crei in base agli indicatori in Remote Config. In questo modo puoi personalizzare le esperienze lato client o dell'app.

Le condizioni degli indicatori personalizzati sono disponibili per i seguenti ambienti client:

  • iOS: versione 11.8.0 o successive
  • Android: versione 22.1.0 o successive (Firebase BoM versione 33.8.0 o successive)
  • Web: versione 11.2.0 o successive

Ad esempio, supponiamo che tu stia lavorando a un'app per l'acquisto di biglietti in cui vuoi visualizzare un banner nella schermata Home. Puoi utilizzare condizioni di indicatori personalizzati lato client per personalizzare questi banner in base alla località e agli interessi dell'utente. Puoi procedere nel seguente modo:

  1. Aggiungi banner_image_url e banner_link al modello di client Remote Config. Rappresentano l'immagine del banner e la pagina dell'evento associata a questa immagine.
  2. Imposta indicatori personalizzati dalla tua app con i valori city e preferred_event_category.
  3. Aggiungi valori predefiniti al modello Remote Config specifico del cliente e crea valori condizionali in base agli indicatori personalizzati impostati nel passaggio precedente.
  4. Aggiungi valori predefiniti al modello Remote Config specifico del cliente e valori condizionali per ogni condizione definita.
  5. Aggiorna il codice dell'applicazione per impostare e utilizzare le condizioni degli indicatori personalizzati.

Ora la tua app può scaricare banner_image_url e banner_link appropriati quando recupera questi parametri dal server Remote Config.

Limiti

Quando crei condizioni degli indicatori personalizzati, devi rispettare i seguenti limiti:

  • Numero di indicatori personalizzati:puoi creare fino a 100 condizioni di indicatori personalizzati.
  • Nome indicatore personalizzato:ogni nome di indicatore personalizzato può avere un massimo di 250 caratteri.
  • Valore dell'indicatore personalizzato:ogni valore dell'indicatore personalizzato può avere fino a 500 caratteri. Quando utilizzi le espressioni regolari, il limite è di 250 caratteri.

Tipi di regole di condizione

Nella console Firebase sono supportati i seguenti tipi di regole. Le funzionalità equivalenti sono disponibili nell'API REST Remote Config, come descritto nel riferimento alle espressioni condizionali.

Tipo di regola Operatori Valori Nota
App == Seleziona un ID app da un elenco di app associate al tuo progetto Firebase. Quando aggiungi un'app a Firebase, inserisci un ID pacchetto o un nome del pacchetto Android che definisce un attributo esposto come ID app nelle regole Remote Config.

Utilizza questo attributo come segue:
  • Per le piattaforme Apple: utilizza il valore CFBundleIdentifier dell'app. Puoi trovare l'identificatore pacchetto nella scheda Generale per il target principale dell'app in Xcode.
  • Per Android: utilizza il valore applicationId dell'app. Puoi trovare applicationId nel file build.gradle a livello di app.
Versione dell'app Per i valori di stringa:
corrisponde esattamente a,
contiene,
non contiene,
contiene regex

Per i valori numerici:
<, <=, =, !=, >, >=

Specifica le versioni della tua app da scegliere come target.

Prima di utilizzare questa regola, devi utilizzare una regola ID app per selezionare un'app Android/Apple associata al tuo progetto Firebase.

Per le piattaforme Apple: utilizza CFBundleShortVersionString dell'app.

Nota: assicurati che la tua app per Apple utilizzi l'SDK Firebase per le piattaforme Apple versione 6.24.0 o successive, poiché CFBundleShortVersionString non viene inviato nelle versioni precedenti (consulta le note di rilascio).

Per Android: utilizza il nome della versione dell'app.

I confronti delle stringhe per questa regola sono sensibili alle maiuscole. Quando utilizzi gli operatori corrisponde esattamente a, contiene, non contiene o contiene regex, puoi selezionare più valori.

Quando utilizzi l'operatore contiene regex, puoi creare espressioni regolari nel formato RE2. L'espressione regolare può corrispondere completamente o in parte alla stringa della versione di destinazione. Puoi anche utilizzare gli indicatori ^ e $ per trovare corrispondenze all'inizio, alla fine o nell'intera stringa di destinazione.

Numero build Per i valori di stringa:
corrisponde esattamente a,
contiene,
non contiene,
espressione regolare

Per i valori numerici:
=, ≠, >, ≥, <, ≤

Specifica le build della tua app da scegliere come target.

Prima di utilizzare questa regola, devi utilizzare una regola ID app per selezionare un'app Apple o Android associata al tuo progetto Firebase.

Questo operatore è disponibile solo per le app Apple e Android. Corrisponde a CFBundleVersion per Apple e versionCode per Android. I confronti delle stringhe per questa regola sono sensibili alle maiuscole.

Quando utilizzi gli operatori corrisponde esattamente a, contiene, non contiene o contiene regex, puoi selezionare più valori.

Quando utilizzi l'operatore contiene regex, puoi creare espressioni regolari nel formato RE2. L'espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare le ancore ^ e $ per trovare corrispondenze all'inizio, alla fine o nell'intera stringa di destinazione.

Piattaforma == iOS
Android
Web
 
Sistema operativo ==

Specifica i sistemi operativi da scegliere come target.

Prima di utilizzare questa regola, devi utilizzare una regola ID app per selezionare un'app web associata al tuo progetto Firebase.

Questa regola restituisce true per una determinata istanza di app web se il sistema operativo e la relativa versione corrispondono a un valore target nell'elenco specificato.
Browser ==

Specifica i browser di destinazione.

Prima di utilizzare questa regola, devi utilizzare una regola ID app per selezionare un'app web associata al tuo progetto Firebase.

Questa regola restituisce true per una determinata istanza di app web se il browser e la relativa versione corrispondono a un valore target nell'elenco specificato.
Categoria dispositivo è, non è dispositivo mobile Questa regola valuta se il dispositivo che accede alla tua app web è mobile o meno (computer o console). Questo tipo di regola è disponibile solo per le app web.
Lingue è in Seleziona una o più lingue. Questa regola restituisce true per una determinata istanza dell'app se l'istanza dell'app è installata su un dispositivo che utilizza una delle lingue elencate.
Paese/regione è in Seleziona una o più regioni o paesi. Questa regola restituisce true per una determinata istanza dell'app se l'istanza si trova in una delle regioni o dei paesi elencati. Il codice paese del dispositivo viene determinato utilizzando l'indirizzo IP del dispositivo nella richiesta o il codice paese determinato da Firebase Analytics (se i dati di Analytics vengono condivisi con Firebase).
Segmenti di pubblico Include almeno un elemento Selezionane uno o più da un elenco di Google Analytics segmenti di pubblico che hai configurato per il tuo progetto.

Questa regola richiede una regola ID app per selezionare un'app associata al tuo progetto Firebase.

Nota:poiché molti segmenti di pubblico Analytics sono definiti da eventi o proprietà utente, che possono essere basati sulle azioni degli utenti dell'app, potrebbe essere necessario un po' di tempo prima che una regola Utente nel segmento di pubblico venga applicata a una determinata istanza dell'app.

Proprietà utente Per i valori di stringa:
contiene,
non contiene,
corrisponde esattamente a,
contiene regex

Per i valori numerici:
=, ≠, >, ≥, <, ≤

Nota: sul client puoi impostare solo valori di stringa per le proprietà utente. Per le condizioni che utilizzano operatori numerici, Remote Config converte il valore della corrispondente proprietà utente in un numero intero/in un numero con virgola mobile.
Seleziona una proprietà Google Analytics utente dall'elenco delle proprietà disponibili. Per scoprire come utilizzare le proprietà utente per personalizzare la tua app per segmenti molto specifici della tua base utenti, consulta Remote Config e le proprietà utente.

Per scoprire di più sulle proprietà utente, consulta le seguenti guide:

Quando utilizzi gli operatori corrisponde esattamente a, contiene, non contiene o contiene regex, puoi selezionare più valori.

Quando utilizzi l'operatore contiene regex, puoi creare espressioni regolari nel formato RE2. L'espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare le ancore ^ e $ per trovare corrispondenze all'inizio, alla fine o nell'intera stringa di destinazione.

Nota:le proprietà utente raccolte automaticamente non sono disponibili quando crei le condizioni Remote Config.
Utente in percentuale casuale Dispositivo di scorrimento (nella console Firebase. L'API REST utilizza gli operatori <=, > e between. 0-100

Utilizza questo campo per applicare una modifica a un campione casuale di istanze di app (con dimensioni del campione inferiori allo 0,0001%), utilizzando il widget del cursore per segmentare gli utenti (istanze di app) smistati in modo casuale in gruppi.

Ogni istanza dell'app viene mappata in modo persistente a un numero intero o frazionario casuale, in base a un seed definito nel progetto.

Una regola utilizzerà la chiave predefinita (mostrata come Modifica seed nella console Firebase) a meno che non modifichi il valore del seed. Puoi ripristinare l'utilizzo della chiave predefinita per una regola svuotando il campo Seed.

Per indirizzare in modo coerente le stesse istanze di app in determinati intervalli di percentuale, utilizza lo stesso valore del seed in tutte le condizioni. In alternativa, seleziona un nuovo gruppo di istanze dell'app assegnate in modo casuale per un determinato intervallo percentuale specificando un nuovo seed.

Ad esempio, per creare due condizioni correlate che si applicano ciascuna al 5% non sovrapposto degli utenti di un'app, puoi configurare una condizione per una percentuale compresa tra lo 0% e il 5% e un'altra condizione per un intervallo compreso tra il 5% e il 10%. Per consentire ad alcuni utenti di comparire in modo casuale in entrambi i gruppi, utilizza valori seed diversi per le regole all'interno di ogni condizione.

Segmento importato è in Seleziona uno o più segmenti importati. Questa regola richiede la configurazione di segmenti importati personalizzati.
Data/Ora Prima, Dopo Una data e un'ora specificate nel fuso orario del dispositivo o in un fuso orario specificato, ad esempio "(GMT+11) ora di Sydney". Confronta l'ora corrente con l'ora di recupero del dispositivo.
Prima apertura Prima, Dopo Una data e un'ora specificate nel fuso orario specificato.

Corrisponde agli utenti che aprono per la prima volta l'app scelta come target nell'intervallo di tempo specificato.

Richiede i seguenti SDK:

  • SDK Firebase per Google Analytics
  • SDK per piattaforme Apple 9.0.0 o versioni successive o SDK Android 21.1.1 o versioni successive (Firebase BoM v30.3.0 o versioni successive)
ID di installazione è in Specifica uno o più ID installazione (fino a 50) da scegliere come target. Questa regola restituisce true per una determinata installazione se l'ID di quell'installazione è presente nell'elenco di valori separati da virgole.

Per scoprire come ottenere gli ID installazione, consulta Recupero degli identificatori client.
Utente esistente (nessun operatore) Ha come target tutti gli utenti di tutte le app all'interno del progetto corrente.

Utilizza questa regola di condizione per trovare corrispondenze per tutti gli utenti all'interno del progetto, indipendentemente dall'app o dalla piattaforma.

Indicatore personalizzato Per i valori di stringa:
contiene,
non contiene,
corrisponde esattamente a,
contiene regex

Per i valori numerici:
=, ≠, >, ≥, <, ≤

Per i valori di versione:
=, ≠, >, ≥, <, ≤

I confronti delle stringhe per questa regola sono sensibili alle maiuscole. Quando utilizzi l'operatore regex corrispondenze esatte, contiene, non contiene o contiene, puoi selezionare più valori. Quando utilizzi l'operatore regex contiene, puoi creare espressioni regolari in formato RE2. L'espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare le ancore ^ e $ per trovare corrispondenze all'inizio, alla fine o all'interno dell'intera stringa di destinazione.

I seguenti tipi di dati sono supportati per gli ambienti client:
  • iOS: int, double
  • Android: int, long, double
  • Web: numero

Numero che rappresenta i numeri di versione da associare (ad esempio 2.1.0).

Per ulteriori informazioni sulle condizioni degli indicatori personalizzati e sulle espressioni condizionali da utilizzare, consulta Condizioni degli indicatori personalizzati ed Elementi utilizzati per creare condizioni.

Parametri e condizioni di ricerca

Puoi cercare le chiavi, i valori e le condizioni dei parametri del tuo progetto dalla console Firebase utilizzando la casella di ricerca nella parte superiore della scheda Remote Config Parametri.

Limiti per parametri e condizioni

In un progetto Firebase puoi avere fino a 2000 parametri e fino a 500 condizioni. Le chiavi dei parametri possono avere una lunghezza massima di 256 caratteri, devono iniziare con un trattino basso o una lettera dell'alfabeto inglese (A-Z, a-z) e possono includere anche numeri. La lunghezza totale delle stringhe di valore del parametro all'interno di un progetto non può superare i 1.000.000 di caratteri.

Visualizzare le modifiche a parametri e condizioni

Puoi visualizzare le ultime modifiche ai tuoi modelli Remote Config dalla console Firebase. Per ogni singolo parametro e condizione, puoi:

  • Visualizza il nome dell'utente che ha modificato per ultimo il parametro o la condizione.

  • Se la modifica è avvenuta nello stesso giorno, visualizza il numero di minuti o ore trascorsi dalla pubblicazione della modifica nel modello Remote Config attivo.

  • Se la modifica è avvenuta uno o più giorni fa, visualizza la data in cui è stata pubblicata nel modello Remote Config attivo.

Cronologia delle modifiche per i parametri

Nella pagina Remote Config Parametri, la colonna Ultima pubblicazione mostra l'ultimo utente che ha modificato ciascun parametro e l'ultima data di pubblicazione della modifica:

  • Per visualizzare i metadati delle modifiche per i parametri raggruppati, espandi il gruppo di parametri.

  • Per ordinare in ordine crescente o decrescente in base alla data di pubblicazione, fai clic sull'etichetta della colonna Ultima pubblicazione.

Cronologia delle modifiche per le condizioni

Nella pagina Remote Config Condizioni, accanto a Ultima modifica in ogni condizione puoi vedere l'ultimo utente che ha modificato la condizione e la data della modifica.

Passaggi successivi

Per configurare il progetto e l'app Firebase per l'utilizzo di Remote Config, consulta Introduzione a Firebase Remote Config.