Skip to content

PassKit

PassKit을 사용하여 Apple Wallet과 Google Pay 패스를 고객 경험에 통합함으로써 모바일 접근성을 확장할 수 있습니다. 또한 디지털 쿠폰과 고객 카드, 로열티 카드, 티겟 등 다양한 항목을 손쉽게 만들고 관리 및 배포하며 그 성과를 분석할 수 있습니다. 고객에게 필요한 다른 앱은 없습니다.

Braze와 PassKit의 통합을 통해 커스텀 Apple Wallet 및 Google Pay 패스를 즉시 제공하여 온라인 캠페인의 인게이지먼트를 높이고 측정할 수 있습니다. 그런 다음 사용량을 분석하고 실시간으로 조정하여 위치 기반 메시지와 고객의 모바일 지갑에 대한 개인화된 동적 업데이트를 트리거하여 매장 내 트래픽을 늘릴 수 있습니다.

필수 조건

통합

고객의 모바일 지갑 경험을 더욱 풍부하게 하려면 PassKit 대시보드 내에서 Braze의 /users/track 엔드포인트를 통해 데이터를 Braze로 전달하도록 선택할 수 있습니다.

PassKit에서 공유할 수 있는 데이터의 예는 다음과 같습니다.

  • 패스 생성됨: 고객이 패스 링크를 클릭하고 패스가 처음 표시되는 경우.
  • 패스 설치됨: 고객이 지갑 앱에 패스를 추가하고 저장하는 경우.
  • 패스 업데이트: 패스가 업데이트되는 경우.
  • 패스 삭제: 고객이 지갑 앱에서 패스를 삭제하는 경우.

데이터가 Braze로 전달되면, 오디언스를 구축하고, Liquid를 통해 콘텐츠를 개인화하며, 이러한 작업이 수행된 후 캠페인 또는 캔버스를 트리거할 수 있습니다.

Braze에 Passkit 연결

PassKit에서 데이터를 전달하려면, Braze 외부 ID를 PassKit의 externalId로 설정했는지 확인합니다.

  1. 설정 내 PassKit 패스 프로젝트 또는 프로그램의 통합에서 Braze 탭 아래 연결을 클릭합니다.
    PassKit 플랫폼의 Braze 통합 타일입니다.

  2. Braze API 키와 엔드포인트 URL을 입력하고 커넥터의 이름을 제공합니다.

  3. 통합 활성화 및 Braze에서 메시지를 트리거하거나 개인화할 이벤트를 토글합니다.
    API 키, 엔드포인트 URL, 통합 이름, 활성화 설정, 멤버십 설정 및 패스 설정을 허용하도록 확장된 PassKit Braze 통합 타일.

SmartPass 링크를 사용하여 패스 생성

Braze 내에서 스마트패스 링크를 설정하여 고객이 Android 또는 iOS에서 패스를 설치할 수 있는 고유한 URL을 생성할 수 있습니다. 이렇게 하려면 Braze 콘텐츠 블록에서 호출할 수 있는 암호화된 SmartPass 데이터 페이로드를 정의해야 합니다. 이 콘텐츠 블록은 향후 패스 및 쿠폰에 재사용할 수 있습니다. 통합하는 동안 다음이 사용됩니다:

  • PassKit URL: PassKit URL은 PassKit 프로그램에 대한 고유 URL입니다.
    각 프로그램에는 고유한 URL이 있으며, PassKit 프로그램 또는 프로젝트의 배포 탭에서 찾을 수 있습니다. (예: https://pub1.pskt.io/c/ww0jir)

  • PassKit 비밀: URL과 함께 이 프로그램을 위한 PassKit 키가 준비되어 있어야 합니다.
    PassKit URL과 같은 페이지에서 찾을 수 있습니다.

  • 프로그램(또는 프로젝트) ID: SmartPass URL을 생성하려면 PassKit 프로그램 ID가 필요합니다.
    프로젝트 또는 프로그램의 설정 탭에서 찾을 수 있습니다.

암호화된 SmartPass 링크 생성에 대한 자세한 내용은 이 PassKit 문서를 참조하세요.

1단계: 패스 데이터 페이로드 정의

먼저 쿠폰 또는 회원 페이로드를 정의해야 합니다.

페이로드에 포함할 수 있는 구성요소는 다양하지만, 여기서는 두 가지 중요한 구성요소에 주목합니다.

사용 가능한 필드, 유형 및 유용한 설명의 전체 목록은 PassKit GitHub 설명서 을 참조하세요.

페이로드 예시

1
2
3
4
5
6
7
8
{
  "members.member.externalId": "{{${user_id}}}",
  "members.member.points": "100",
  "members.tier.name": "current_customer",
  "person.displayName": "{{${first_name}}} {{${last_name}}}",
  "person.externalId": "{{${user_id}}}",
  "universal.expiryDate": "{{ "now" | date: "%s" | plus: 31622400 | date: "%FT%TZ" }}"
}

2단계: 정의되지 않은 페이로드 변수 생성 및 인코딩

Braze 대시보드 내에서 템플릿 > 콘텐츠 블록으로 이동하여 새 콘텐츠 블록을 만들고 이름을 지정합니다.

시작하려면 콘텐츠 블록 생성을 선택합니다.

다음으로, 콘텐츠 블록 Liquid 태그를 정의해야 합니다. 이 콘텐츠 블록을 저장한 후에는 메시지를 작성할 때 이 Liquid 태그를 참조할 수 있습니다. 이 예제에서는 Liquid 태그를 {{content_blocks.${passKit_SmartPass_url}}}로 지정했습니다.

이 콘텐츠 블록에서는 페이로드를 직접 포함하지 않고 {{passData}} 변수에서 참조합니다. 콘텐츠 블록에 추가해야 하는 첫 번째 코드 스니펫은 {{passData}} 변수의 Base64 인코딩을 캡처합니다.

1
{% capture base64JsonPayload %}{{passDatapassData|base64_encode}}{% endcapture %}

3단계: SHA1 HMAC 해시를 사용하여 암호화 서명을 생성합니다.

다음으로, 프로젝트 URL과 페이로드의 SHA1 HMAC 해시를 사용하여 암호화 서명을 생성합니다.

콘텐츠 블록에 추가해야 하는 두 번째 코드 스니펫은 해싱에 사용할 URL을 캡처합니다.

1
{% capture url %}{{projectUrl}}?data={{base64JsonPayload}}{% endcapture %}

다음으로 이 해시와 Project Secret 을 사용하여 서명을 생성해야 합니다. 세 번째 코드 스니펫을 포함하면 이 작업을 수행할 수 있습니다:

1
{% capture sig %}{{url | hmac_sha1: "Project_Secret"}}{% endcapture %}

마지막으로, 다섯 번째 코드 스니펫을 사용하여 전체 URL에 서명을 추가합니다.

1
{% capture longURL %}{{projectUrl}}?data={{base64JsonPayload}}&sig={{sig}}{% endcapture %}

4단계: URL 인쇄

마지막으로, 메시지 내에 SmartPass URL이 인쇄되도록 최종 URL을 호출해야 합니다.

1
{{longURL}}

이 시점에서 다음과 같은 콘텐츠 블록을 만들었을 것입니다:

1
2
3
4
5
6
7
8
9
{% capture base64JsonPayload %}{{passData|base64_encode}}{% endcapture %}

{% capture url %}{{projectUrl}}?data={{base64JsonPayload}}{% endcapture %}

{% capture sig %}{{url | hmac_sha1: "Project_Secret"}}{% endcapture %}

{% capture longURL %}{{projectUrl}}?data={{base64JsonPayload}}&sig={{sig}}&utm_source=braze&utm_campaign={{campaign.${name}}}{% endcapture %}{% capture longURL %}{{longURL | url_encode}}{% endcapture %}

{{longURL}}

이 예제에서는 이러한 설치의 소스를 Braze와 이 캠페인으로 추적하기 위해 UTM 매개변수가 추가되었습니다.

5단계: 종합

이 콘텐츠 블록을 만든 후에는 나중에 다시 재사용할 수 있습니다.

예제 콘텐츠 블록에 정의되지 않은 변수가 두 개 남아 있는 것을 볼 수 있습니다.
{{passData}} - 1단계에서 정의한 JSON 패스 데이터 페이로드
{{projectUrl}} - Passkit 프로젝트의 배포 탭에서 찾을 수 있는 프로젝트 또는 프로그램의 URL.

이 결정은 의도적인 것이며 콘텐츠 블록의 재사용성을 지원합니다. 이러한 변수는 콘텐츠 블록 내에서 생성되는 것이 아니라 참조될 뿐이므로 콘텐츠 블록을 다시 만들지 않고도 변수를 변경할 수 있습니다.

예를 들어 로열티 프로그램에 더 많은 초기 포인트를 포함하도록 도입 오퍼를 변경하거나 보조 회원 카드 또는 쿠폰을 만들고 싶을 수 있습니다. 이러한 시나리오에는 다른 Passkit(projectURLs) 또는 다른 패스 페이로드가 필요하며, Braze에서 캠페인별로 정의할 수 있습니다.

메시지 본문 작성하기

메시지 본문에서 이 두 변수를 모두 캡처한 다음 콘텐츠 블록을 호출하려고 합니다. 1단계에서 축소된 JSON 페이로드를 캡처합니다.

프로젝트 URL 지정

1
{% assign projectUrl = "https://pub1.pskt.io/c/ww0jir" %}

JSON 캡처

1
{% capture passData %}{"members.member.externalId": "{{${user_id}}}","members.member.points": "100","members.tier.name": "current_customer","person.displayName": "{{${first_name}}} {{${last_name}}}","person.externalId": "{{${user_id}}}","universal.expiryDate": "{{ "now" | date: "%s" | plus: 31622400 | date: "%FT%TZ" }}"}{% endcapture %}

방금 만든 콘텐츠 블록 참조

1
{{content_block.${passkit_SmartPass_url}}}

메시지 본문은 다음과 같이 표시되어야 합니다: 캡처한 JSON 및 콘텐츠 블록 참조가 표시된 콘텐츠 블록 메시지 작성기의 이미지입니다.

샘플의 출력 URL은 다음과 같습니다: 무작위로 생성된 긴 문자 및 숫자 문자열이 포함된 출력 URL입니다.

출력 URL이 길어집니다. 그 이유는 모든 패스 데이터가 포함되어 있고 동급 최고의 보안을 통합하여 데이터 무결성을 보장하고 URL 수정을 통한 조작이 없기 때문입니다. SMS를 사용하여 이 URL을 배포하는 경우 bit.ly 와 같은 링크 단축 프로세스를 통해 실행할 수 있습니다. 이는 bit.ly 엔드포인트에 대한 연결된 콘텐츠 호출을 통해 수행할 수 있습니다.

PassKit 웹훅을 사용한 패스 업데이트

Braze 내에서 웹훅 캠페인 또는 캔버스 내 웹훅을 설정하여 사용자의 행동에 따라 기존 패스를 업데이트할 수 있습니다. 유용한 PassKit 엔드포인트에 대한 정보는 다음 링크를 확인하세요.

페이로드 매개변수

시작하기 전에 PassKit에 대한 웹훅 생성 및 업데이트에 포함할 수 있는 일반적인 JSON 페이로드 매개변수는 다음과 같습니다.

1단계: Braze 웹훅 템플릿 만들기

향후 캠페인이나 캔버스에서 사용할 PassKit 웹훅 템플릿을 만들려면 Braze 대시보드의 템플릿 및 미디어 섹션으로 이동합니다. 일회성 PassKit 웹훅 캠페인을 만들거나 기존 템플릿을 사용하려면 새 캠페인을 만들 때 Braze에서 웹훅을 선택하세요.

PassKit 웹훅 템플릿을 선택하면 다음과 같은 내용이 표시됩니다:

  • 웹훅 URL: https://api-pub1.passkit.io/coupon/singleUse/coupon
  • 요청 본문: 원시 텍스트

요청 헤더 및 메서드

PassKit는 base 64로 인코딩된 PassKit API 키가 포함된 인증용 HTTP Header를 요구합니다. 다음은 이미 템플릿에 키-값 쌍으로 포함되어 있지만 설정 탭에서 <PASSKIT_LONG_LIVED_TOKEN> 을 PassKit 토큰으로 바꿔야 합니다. 토큰을 검색하려면 PassKit 프로젝트/프로그램으로 이동하여 설정 > 통합 > 장기 수명 토큰으로 이동합니다.

  • HTTP 메서드: PUT
  • 요청 헤더:
    • 권한 부여: Bearer <PASSKIT_LONG_LIVED_TOKEN>
    • Content-Type: application/json

요청 본문

웹훅을 설정하려면 사용 사례에 필요한 페이로드 매개변수를 포함하여 요청 본문 내에 새 이벤트 세부 정보를 입력합니다.

1
2
3
4
5
{
  "externalId": "{{${user_id}}}",
  "campaignId": " 2xa1lRy8dBz4eEElBfmIz8",
  "expiryDate": "2020-05-10T00:00:00Z"
}

2단계: 요청 미리보기

원시 텍스트가 적용 가능한 Braze 태그인 경우 자동으로 강조 표시됩니다.

미리보기 패널에서 요청을 미리 보거나 테스트 탭으로 이동하여 무작위 사용자, 기존 사용자를 선택하거나 직접 사용자 지정하여 웹훅을 테스트할 수 있습니다.

연결된 콘텐츠를 통해 패스 세부 정보 검색

패스를 생성하고 업데이트하는 것 외에도 Braze의 연결된 콘텐츠를 통해 사용자의 패스 메타데이터를 검색하여 메시징 캠페인에 개인화된 패스 세부 정보를 통합할 수도 있습니다.

PassKit 커넥티드 콘텐츠 호출

1
2
3
{% connected_content  https://api-pub1.passkit.io/coupon/singleUse/coupon/externalId/{{${user_id}}} :headers {"Authorization": "Bearer <PASSKIT_LONG_LIVED_TOKEN>","Content-Type": "application/json"} :save passes %}

{{passes.status}} 

Liquid 예제 응답

1
2
3
4
5
6
7
8
9
10
11
{
    "redemptionDate": null,
    "redemptionCode": "",
    "lat": 0,
    "lon": 0,
    "alt": 0,
    "redemptionSource": "",
    "redemptionReference": "",
    "transactionReference": "",
    "transactionAmount": 0
}
1
UNREDEEMED 
이 페이지가 얼마나 도움이 되었나요?
New Stuff!