Nearby 알림 첨부파일을 추가하는 가장 쉬운 방법은 <ph type="x-smartling-placeholder"></ph> Google 비콘 대시보드 또는 <ph type="x-smartling-placeholder"></ph> Proximity Beacon API 및 첨부파일 데이터 형식(아래에 설명됨)을 사용하세요.
Nearby 알림 기능을 위한 첨부파일은
com.google.nearby 네임스페이스, 그리고 2자리 언어로 구성된 유형
코드 및 선택적 -debug 접미사를 포함할 수 있습니다.
첨부파일은 JSON을 사용하여 형식을 지정해야 합니다. 예를 들면 다음과 같습니다.
{
"title": "Example",
"url": "https://www.example.com"
}
JSON 형식은 선택적으로 아래와 같이 보다 구체적인 타겟팅을 허용합니다.
{
"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"]
}
]
}
각 항목의 의미는 다음과 같습니다.
- title — 콘텐츠의 제목입니다.
title의 길이는 더 짧아야 합니다. 40자(영문 기준) 미만이고 50자(영문 기준) 미만이어야 합니다. 이렇게 하면 클릭 유도 문구입니다. 예를 들면Order with your phone, skip the line,Set up your thermostat,Learn more about sea otters입니다. - url — 앱, 웹사이트 또는 서비스의 URL입니다.
- 타겟팅 - 알림 표시 여부를 제한하는 규칙(선택사항) 기반으로 합니다.
URL 형식
Nearby 알림은 세 가지 URL 형식을 지원합니다.
웹 URL
웹 URL은 말 그대로 일반적인 URL입니다. 웹 URL이 수신되면 기본 브라우저에서 URL을 열라는 메시지가 표시됩니다. 특수 앱 없음 필수 구성 항목입니다. 웹 URL은 HTTPS를 사용해야 하며 일반 URL:
https://www.example.com
웹 URL이 알림을 트리거하지 않는다면 다음과 같은 이유가 있을 가능성이 높습니다.
- HTTPS 대신 HTTP 사용
- play.google.com과 같은 앱 스토어에 연결하는 행위는 금지됩니다. 웹페이지 독자적인 역할을 해야 하며 사이트에 대한 유용한 정보나 조치를 추가할 수 있습니다.
앱 인텐트
앱 인텐트 URL은 앱에서 인텐트를 트리거하는 데 사용됩니다. 앱 인텐트가 URL이 수신되면 연결된 앱이 URL(해당하는 앱 인텐트 필터가 있는 경우) 앱이 앱이 설치되어 있지 않으면 사용자가 앱을 설치할 수 있도록 Play 스토어로 이동합니다. 후(After) 앱이 설치되면 사용자가 앱을 실행하고 기능을 계속 사용할 수 있음 개발자가 지정합니다. 앱 인텐트 URL의 형식은 다음과 같습니다.
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;
인텐트 URL 형식 지정에 관한 자세한 내용은 다음을 참고하세요. Chrome의 Android 인텐트 인텐트 추가 항목은 전달되지 않습니다.
인텐트를 만든 다음
intent.toUri(Intent.URI_INTENT_SCHEME)님,
를 참조하세요.
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));
자유 형식 앱 인텐트
이 옵션은 스키마, 경로, 확인할 수 있습니다 인텐트 URL이 확실한 경우에만 이 옵션을 사용하세요. 올바른 형식을 갖추어야 합니다.
다음의 경우 Play 스토어 대신 지정된 URL로 사용자를 보낼 수 있습니다. 앱이 설치되지 않은 이벤트에 S.browser_fallback_url 매개변수를 인텐트에 추가합니다.
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui; \
S.browser_fallback_url=http%3A%2F%2Fm.yoursite.com%2Fpath%2F%;end;
문맥 타겟팅
규칙
Nearby 알림은 4가지 타겟팅 규칙을 지원합니다.
날짜
dateStart 및 dateEnd는
첨부파일이 ISO 8601 형식으로 표시되어야 합니다.
다음 예는 2017년 1월의 알림을 보여줍니다.
{
"title": "January 2017",
"url": "https://www.example.com",
"targeting":[
{
"startDate": "2017-01-01",
"endDate": "2017-01-31"
}
]
}
시간
'timeOfDayStart' 'timeOfDayEnd' 일일 시간 범위를 지정하는 데 사용됩니다. ISO 8601 형식으로 첨부파일을 표시합니다. 다음 예는 매일 오전 9시부터 오후 5시까지의 알림을 보여줍니다.
{
"title": "Work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
요일
'anyOfDaysOfWeek' 는 첨부파일이 표시됩니다. 형식은 1(월요일)에서 7(일요일)까지 ISO 8601입니다. 다음 예는 토요일과 일요일의 알림을 보여줍니다.
{
"title": "Weekends",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
}
]
}
앱 설치 상태
"anyOfAppInstallStates" 앱별로 첨부파일 공개 상태를 설정하는 데 사용됩니다. 설치 상태가 표시됩니다. 앱 인텐트 URL에서만 작동합니다. 다음 앱이 설치되지 않은 경우의 알림을 보여주는 예시입니다.
{
"title": "App not installed",
"url": "intent://host/path#Intent;package=com.example",
"targeting":[
{
"anyOfAppInstallStates": ["NOT_INSTALLED"]
}
]
}
규칙 조합
각 첨부파일에는 여러 개의 타겟팅 규칙이 있을 수 있습니다. 동일한 타겟팅 개체는 AND로 연결됩니다. 다음 예를 참고하세요. 토요일과 일요일 오전 9시부터 오후 5시까지 알림을 표시합니다.
{
"title": "Weekend and work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
"anyOfDaysOfWeek": [6, 7]
}
]
}
서로 다른 타겟팅 객체의 규칙은 함께 OR로 연결됩니다. 다음 예시는 월요일부터 금요일까지 매일 오전 9시부터 오후 5시까지 알림을 보여주지만 토요일과 일요일은 하루 종일
{
"title": "Weekend or work time",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
},
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
앱에 인텐트 필터 추가
지정된 URL에 대한 스키마, 호스트, 경로를 처리하도록 앱을 구성해야 합니다.
이를 위해서는 AndroidManifest.xml에 요소를 추가하여
<intent-filter>
스키마, 호스트 및 경로와 일치하고 카테고리로 탐색 가능하도록 표시합니다.
필터를 적용할 수 있습니다.
<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>
자세한 내용은 앱 링크 처리