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>
자세한 내용은 앱 링크 처리