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
, atauLearn 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.