Formato dei dati allegato

Il modo più semplice per aggiungere allegati di Notifiche nelle vicinanze è tramite Dashboard di Google Beacon. In alternativa, puoi utilizzare API Proximity Beacon e il formato dei dati degli allegati descritti di seguito.

Gli allegati relativi alla funzione Notifiche nelle vicinanze devono utilizzare il com.google.nearby e un tipo costituito dalla lingua a due lettere e il suffisso -debug facoltativo.

Gli allegati devono essere formattati utilizzando JSON. Ad esempio:

    {
      "title": "Example",
      "url": "https://www.example.com"
    }

Il formato JSON consente facoltativamente un targeting più specifico, come mostrato di seguito:

    {
      "title": "Example",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startDate": "2017-01-01",
          "endDate": "2017-01-31",
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00",
          "anyOfDaysOfWeek": [1, 2, 3, 4, 5, 6, 7],
          "anyOfAppInstallStates": ["INSTALLED", "NOT_INSTALLED"]
        }
      ]
    }

Dove:

  • title: il titolo dei contenuti. La lunghezza di title deve essere inferiore e deve contenere meno di 50 caratteri. Questo dovrebbe idealmente dare all'utente un invito all'azione. Ad esempio, Order with your phone, skip the line, Set up your thermostat o Learn more about sea otters.
  • url: l'URL dell'app, del sito web o del servizio.
  • targeting: regole facoltative per la limitazione della visibilità delle notifiche in base al contesto del dispositivo.

Formati URL

La funzionalità Notifiche nelle vicinanze supporta tre formati di URL:

URL web

Un URL web è esattamente un URL normale. Quando viene ricevuto un URL web, all'utente viene chiesto di aprire l'URL nel browser predefinito. Nessuna app speciale configurazione obbligatoria. Gli URL web devono utilizzare HTTPS e sono formattati come URL normale:

  https://www.example.com

Se l'URL web non attiva una notifica, le cause più probabili sono:

  • Utilizzo di HTTP anziché HTTPS
  • È vietato collegare uno store come play.google.com. La pagina web dovrebbero basarsi sui dati e offrire informazioni o azioni utili direttamente nella pagina di destinazione.

App per intenzione

Gli URL per intent di app vengono utilizzati per attivare un intent in un'app. Quando un intent di app ricevuto, l'app associata risponde ai parametri contenuti in URL, a condizione che sia presente il filtro per intenzione dell'app corrispondente. Se l'app non viene installata, l'utente viene indirizzato al Play Store per installare l'app. Dopo il giorno l'app è installata, quindi possono avviarla e continuare con la funzionalità specificato dallo sviluppatore. Gli URL per intenzione delle app sono formattati nel seguente modo:

  intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;

Per maggiori dettagli sulla formattazione degli URL per intent, consulta Intent Android con Chrome. Tieni presente che gli extra per intent non vengono trasmessi.

Puoi anche costruire l'URL correttamente creando un intent e poi utilizzando intent.toUri(Intent.URI_INTENT_SCHEME), come mostrato qui:

    Intent intent = new Intent()
        .setData(new Uri.Builder()
            .scheme("yourscheme")
            .authority("host")
            .appendPath("path")
            .build())
        .setPackage("com.yourapp.ui");
    Log.i(TAG, "Use this intent url: " + intent.toUri(Intent.URI_INTENT_SCHEME));

Intent di app in formato libero

Questa opzione deve essere utilizzata per gli intent di app che non possono corrispondere allo schema, al percorso e il formato del nome del pacchetto. Utilizza questa opzione solo se hai la certezza che l'URL per intent sia formattata correttamente.

Puoi scegliere di indirizzare l'utente a un URL specificato anziché al Play Store in all'evento di mancata installazione dell'app aggiungendo S.browser_fallback_url all'intent:

intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui; \
  S.browser_fallback_url=http%3A%2F%2Fm.yoursite.com%2Fpath%2F%;end;

Targeting contestuale

Regole

Il servizio Notifiche nelle vicinanze supporta quattro regole di targeting:

Data

dateStart e dateEnd vengono utilizzati per specificare l'intervallo di date entro il quale l'allegato sia visibile in formato ISO 8601. L'esempio seguente mostra la notifica a gennaio 2017.

    {
      "title": "January 2017",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startDate": "2017-01-01",
          "endDate": "2017-01-31"
        }
      ]
    }

Ora del giorno

"timeOfDayStart" e "timeOfDayEnd" sono utilizzati per specificare l'intervallo di tempo giornaliero in cui l'allegato è visibile, in formato ISO 8601. L'esempio seguente mostra una notifica giornaliera dalle 9:00 alle 17:00:

    {
      "title": "Work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
        }
      ]
    }

Giorno della settimana

"anyOfDaysOfWeek" viene utilizzato per specificare i giorni della settimana in cui allegato è visibile. Il formato è ISO 8601, da 1(lunedì) a 7(domenica). L'esempio seguente mostra le notifiche di sabato e domenica:

    {
      "title": "Weekends",
      "url": "https://www.example.com",
      "targeting":[
        {
          "anyOfDaysOfWeek": [6, 7]
        }
      ]
    }

Stato di installazione dell'app

"anyOfAppInstallStates" è per impostare la visibilità degli allegati in base all'app stati di installazione. Funziona solo per l'URL App per intenzione. Le seguenti l'esempio mostra una notifica quando l'app non è installata.

    {
      "title": "App not installed",
      "url": "intent://host/path#Intent;package=com.example",
      "targeting":[
        {
          "anyOfAppInstallStates": ["NOT_INSTALLED"]
        }
      ]
    }

Combinazione di regole

Per ogni allegato possono essere presenti più regole di targeting. Regole da lo stesso oggetto di targeting è collegato con una relazione AND. Nell'esempio che segue mostra una notifica dalle 9:00 alle 17:00 il sabato e la domenica.

    {
      "title": "Weekend and work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
          "anyOfDaysOfWeek": [6, 7]
        }
      ]
    }

Le regole dei diversi oggetti di targeting vengono sincronizzate con OR. Le seguenti un esempio mostra una notifica dalle 9 alle 17 tutti i giorni dal lunedì al venerdì più tutto il giorno di sabato e domenica.

    {
      "title": "Weekend or work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "anyOfDaysOfWeek": [6, 7]
        },
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
        }
      ]
    }

Aggiungi un filtro per intent alla tua app

Le app devono essere configurate per gestire lo schema, l'host e il percorso dell'URL specificato. Per farlo, devi aggiungere un elemento nel file AndroidManifest.xml per dichiarare un <intent-filter> che corrisponde allo schema, all'host e al percorso e contrassegnala come sfogliabile con una categoria come mostrato qui:

  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
     <!-- both categories below are required -->
     <category android:name="android.intent.category.BROWSABLE"/>
     <category android:name="android.intent.category.DEFAULT"/>
    <data android:host="host"
          android:pathPrefix="/path"
          android:scheme="yourscheme"/>
  </intent-filter>

Per saperne di più, vedi Gestione dei link alle app.