Datenformat des Anhangs

Am einfachsten lassen sich Anhänge in der Nähe über das Google Beacon-Dashboard anhängen. Alternativ können Sie die Proximity Beacon API und das unten beschriebene Datenformat für Anhänge verwenden.

Anhänge für die Funktion „Benachrichtigungen in der Nähe“ müssen den Namespace com.google.nearby und einen Typ aus dem aus zwei Buchstaben bestehenden Sprachcode und dem optionalen Suffix -debug verwenden.

Anhänge müssen mit JSON formatiert werden. Beispiel:

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

Das JSON-Format ermöglicht optional ein spezifischeres Targeting, wie im Folgenden gezeigt:

    {
      "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"]
        }
      ]
    }

Wobei:

  • title – Titel des Inhalts. title sollte weniger als 40 Zeichen und weniger als 50 Zeichen enthalten. Idealerweise sollte der Nutzer einen Call-to-Action erhalten. Beispiel: Order with your phone, skip the line, Set up your thermostat oder Learn more about sea otters.
  • url: Die URL für die App, die Website oder den Dienst.
  • targeting – Optionale Regeln zur Beschränkung der Benachrichtigungssichtbarkeit je nach Gerätekontext

URL-Formate

Nearby-Benachrichtigungen unterstützen drei URL-Formate:

Web-URL

Eine Web-URL ist genau das, nur eine normale URL. Wenn eine Web-URL eingeht, wird der Nutzer aufgefordert, die URL im Standardbrowser zu öffnen. Es ist keine spezielle Anwendungskonfiguration erforderlich. Web-URLs müssen HTTPS verwenden und als normale URL formatiert sein:

  https://www.example.com

Wenn Ihre Web-URL keine Benachrichtigung auslöst, hat das folgende Ursachen:

  • HTTP statt HTTPS verwenden
  • Die Verknüpfung mit einem App-Shop wie play.google.com ist untersagt. Die Webseite sollte eigenständig sein und auf der Landingpage nützliche Informationen oder Aktionen bieten.

App-Intent

App-Intent-URLs werden verwendet, um einen Intent in einer App auszulösen. Wenn eine App-Intent-URL empfangen wird, antwortet die verknüpfte App auf die Parameter in der URL, sofern der entsprechende App-Intent-Filter vorhanden ist. Wenn die App nicht installiert ist, wird der Nutzer zum Play Store weitergeleitet. Dort kann er die App installieren und mit der vom Entwickler angegebenen Funktion fortfahren. App-Intent-URLs sind so formatiert:

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

Weitere Informationen zum Formatieren von Intent-URLs finden Sie unter Android-Intents mit Chrome. Intent-Extras werden nicht übergeben.

Sie können die URL auch ordnungsgemäß erstellen. Dazu erstellen Sie einen Intent und verwenden dann intent.toUri(Intent.URI_INTENT_SCHEME), wie hier gezeigt:

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

App-Intent im freien Format

Diese Option sollte für App-Intents verwendet werden, die nicht mit dem Schema, Pfad und Format des Paketnamens übereinstimmen können. Verwenden Sie diese Option nur, wenn Sie sicher sind, dass die Intent-URL richtig formatiert ist.

Sie können den Nutzer zu einer angegebenen URL statt zum Play Store weiterleiten, falls die App nicht installiert wird. Fügen Sie dazu dem Intent den Parameter S.browser_fallback_url hinzu:

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

Kontext-Targeting

Regeln

Nearby-Benachrichtigungen unterstützen vier Ausrichtungsregeln:

Datum

Mit dateStart und dateEnd wird der Zeitraum angegeben, in dem der Anhang sichtbar ist. Die Angabe erfolgt im ISO 8601-Format. Das folgende Beispiel zeigt die Benachrichtigung im Januar 2017:

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

Tageszeit

Mit „timeOfDayStart“ und „timeOfDayEnd“ wird der tägliche Zeitraum im Anhang angegeben. Die Angabe erfolgt im ISO-8601-Format. Im folgenden Beispiel sehen Sie die Benachrichtigung täglich von 9:00 bis 17:00 Uhr:

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

Wochentag

„anyOfDaysOfWeek“ wird verwendet, um die Wochentage anzugeben, an denen der Anhang sichtbar ist. Das Format ist ISO 8601 von 1(Monday) bis 7(Sunday). Das folgende Beispiel zeigt eine Benachrichtigung an Samstag und Sonntag:

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

App-Installationsstatus

Mit „anyOfAppInstallStates“ legen Sie die Sichtbarkeit des Anhangs basierend auf dem Installationsstatus der App fest. Dies funktioniert nur bei App-Intent-URLs. Im folgenden Beispiel sehen Sie eine Benachrichtigung, wenn die App nicht installiert ist.

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

Kombination von Regeln

Für jeden Anhang können mehrere Ausrichtungsregeln festgelegt sein. Die Regeln aus demselben Targeting-Objekt werden über eine AND-Verknüpfung verknüpft. Das folgende Beispiel zeigt eine Benachrichtigung von 9:00 bis 17:00 Uhr an Samstagen und Sonntagen.

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

Regeln aus den verschiedenen Targeting-Objekten werden mit OR verknüpft. Das folgende Beispiel zeigt eine Benachrichtigung von Montag bis Freitag von 9:00 bis 17:00 Uhr sowie Samstag und Sonntag den ganzen Tag über.

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

App-Intent-Filter hinzufügen

Apps müssen so konfiguriert sein, dass sie das Schema, den Host und den Pfad für die angegebene URL verarbeiten. Dazu musst du ein Element in deiner AndroidManifest.xml-Datei hinzufügen, um ein <intent-filter> zu deklarieren, das dem Schema, dem Host und dem Pfad entspricht, und es mit einem Kategoriefilter als blätterbar markieren:

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

Weitere Informationen finden Sie unter App-Links verarbeiten.