Format Data Lampiran

Cara termudah untuk menambahkan lampiran Notifikasi Di Sekitar adalah dengan menggunakan Dasbor Beacon Google. Atau, Anda dapat menggunakan Proximity Beacon API dan format data lampiran yang dijelaskan di bawah.

Lampiran untuk fitur Nearby Notifications harus menggunakan namespace com.google.nearby, dan jenis yang terdiri dari kode bahasa dua huruf, dan akhiran -debug opsional.

Lampiran harus diformat menggunakan JSON. Contoh:

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

Format JSON secara opsional memungkinkan penargetan yang lebih spesifik seperti yang ditunjukkan di bawah:

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

Dalam hal ini:

  • title — Judul konten. Panjang title harus kurang dari 40 karakter dan harus kurang dari 50 karakter. Idealnya, hal ini dapat memberikan pesan ajakan (CTA) kepada pengguna. Misalnya, Order with your phone, skip the line, Set up your thermostat, atau Learn more about sea otters.
  • url — URL untuk aplikasi, situs, atau layanan.
  • penargetan — Aturan opsional untuk membatasi visibilitas notifikasi berdasarkan konteks perangkat.

Format URL

Notifikasi di Sekitar mendukung tiga format URL:

URL Web

URL web persis seperti itu, hanya URL biasa. Saat URL web diterima, pengguna akan diminta untuk membuka URL di browser default. Tidak perlu konfigurasi aplikasi khusus. URL web harus menggunakan HTTPS, dan diformat sebagai URL normal:

  https://www.example.com

Jika URL web Anda tidak memicu notifikasi, penyebab yang paling mungkin adalah:

  • Menggunakan HTTP, bukan HTTPS
  • Penautan ke app store seperti play.google.com dilarang. Halaman web harus berdiri sendiri dan menawarkan tindakan atau informasi berguna di halaman landing secara langsung.

Intent aplikasi

URL intent aplikasi digunakan untuk memicu Intent di aplikasi. Saat URL intent aplikasi diterima, aplikasi terkait akan merespons parameter yang terdapat dalam URL tersebut, asalkan filter intent aplikasi yang sesuai ada. Jika aplikasi tidak diinstal, pengguna akan diarahkan ke Play Store untuk menginstal aplikasi tersebut. Setelah diinstal, pengguna dapat meluncurkan aplikasi dan melanjutkan ke fitur yang ditentukan oleh developer. URL intent aplikasi diformat sebagai berikut:

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

Untuk detail selengkapnya tentang memformat URL intent, lihat Intent Android dengan Chrome. Perlu diketahui bahwa tambahan intent tidak diteruskan.

Anda juga dapat membuat URL dengan benar dengan membuat intent, lalu menggunakan intent.toUri(Intent.URI_INTENT_SCHEME), seperti yang ditunjukkan di sini:

    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 aplikasi bentuk bebas

Opsi ini harus digunakan untuk intent aplikasi yang tidak dapat mencocokkan format, jalur, dan format nama paket. Hanya gunakan opsi ini jika Anda yakin URL intent Anda diformat dengan benar.

Anda dapat memilih untuk mengirim pengguna ke URL tertentu, bukan Play Store, jika aplikasi tidak terinstal dengan menambahkan parameter S.browser_override_url ke intent:

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

Penargetan konteks

Aturan

Notifikasi di Sekitar mendukung empat aturan penargetan:

Tanggal

dateStart dan dateEnd digunakan untuk menentukan rentang tanggal lampiran terlihat, dalam format ISO 8601. Contoh berikut menunjukkan notifikasi selama Januari 2017.:

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

Waktu

"timeOfDayStart" dan "timeOfDayEnd" digunakan untuk menentukan rentang waktu harian tempat lampiran terlihat, dalam format ISO 8601. Contoh berikut menampilkan notifikasi dari pukul 09.00 hingga 17.00 setiap hari:

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

Hari

"anyOfDaysOfWeek" digunakan untuk menentukan hari saat lampiran terlihat. Formatnya adalah ISO 8601, dari 1(Senin) hingga 7(Minggu). Contoh berikut menampilkan notifikasi pada hari Sabtu dan Minggu:

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

Status instal aplikasi

"anyOfAppInstallStates" adalah untuk menyetel visibilitas lampiran berdasarkan status penginstalan aplikasi. Ini hanya berfungsi untuk URL Intent aplikasi. Contoh berikut menampilkan notifikasi saat aplikasi tidak diinstal.

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

Kombinasi aturan

Untuk setiap lampiran, bisa ada beberapa aturan penargetan. Aturan dari objek penargetan yang sama digabungkan DAN. Contoh berikut menampilkan notifikasi dari pukul 09.00 hingga 17.00 pada hari Sabtu dan Minggu.

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

Aturan dari berbagai objek penargetan adalah OR. Contoh berikut menunjukkan notifikasi dari pukul 09.00 hingga 17.00 setiap hari Senin sampai Jumat, plus sepanjang hari pada hari Sabtu dan Minggu.

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

Menambahkan filter intent ke aplikasi

Aplikasi harus dikonfigurasi untuk menangani skema, host, dan jalur untuk URL tertentu. Untuk melakukannya, Anda harus menambahkan elemen di AndroidManifest.xml dan mendeklarasikan <intent-filter> yang cocok dengan skema, host, serta jalur dan menandainya sebagai dapat dilihat dengan filter kategori, seperti yang ditunjukkan di sini:

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

Untuk mempelajari lebih lanjut, lihat Menangani Link Aplikasi.