Amazon Pinpoint에서 인앱 메시지 전송 및 검색 - Amazon Pinpoint

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Pinpoint에서 인앱 메시지 전송 및 검색

인앱 메시지를 사용하여 애플리케이션 사용자에게 타겟팅된 메시지를 보낼 수 있습니다. 인앱 메시지는 자유롭게 사용자 지정할 수 있습니다. 인앱 메시지에는 웹 사이트를 열거나 사용자를 앱의 특정 부분으로 이동시키는 버튼이 포함될 수 있습니다. 배경색과 텍스트 색상을 구성하고, 텍스트 위치를 조정하고, 알림에 버튼과 이미지를 추가할 수 있습니다. 단일 메시지를 보내거나 최대 5개의 고유한 메시지가 포함된 캐러셀을 만들 수 있습니다. 인앱 메시지 템플릿 생성 지침을 비롯한 인앱 메시지의 개요는 Amazon Pinpoint 사용 설명서인앱 템플릿 생성 섹션을 참조하세요.

를 AWS Amplify 사용하여 Amazon Pinpoint의 인앱 메시징 기능을 앱에 원활하게 통합할 수 있습니다. Amplify는 메시지를 가져오고, 메시지를 렌더링하고, 분석 데이터를 Amazon Pinpoint로 보내는 프로세스를 자동으로 처리할 수 있습니다. 이 통합은 현재 React Native 애플리케이션에서 지원됩니다. 자세한 내용은 Amplify 프레임워크 설명서인앱 메시징을 참조하세요.

이 섹션에서는 앱의 엔드포인트에 대한 인앱 메시지 요청 및 해당 요청의 결과 해석에 대한 정보를 제공합니다.

엔드포인트에 대한 인앱 메시지 검색

애플리케이션은 GetInAppMessagesAPI를 호출하여 해당 엔드포인트에 권한이 부여된 모든 인앱 메시지를 검색할 수 있습니다. GetInAppMessages API를 직접적으로 호출할 경우 다음과 같은 파라미터를 제공하게 됩니다.

  • ApplicationId - 인앱 메시지 캠페인이 연결된 Amazon Pinpoint 앱의 고유 ID입니다.

  • EndpointId - 메시지를 검색할 엔드포인트의 고유 ID입니다.

이러한 값을 사용하여 API를 직접적으로 호출하면 메시지 목록이 반환됩니다. 이 작업으로 생성된 응답에 대한 자세한 내용은 GetInAppMessages API 응답 이해 섹션을 참조하세요.

AWS SDK를 사용하여 작업을 호출할 수 있습니다. GetInAppMessages 다음 코드 예제에는 인앱 메시지를 검색하는 함수가 포함되어 있습니다.

JavaScript

별도의 모듈에서 클라이언트를 생성하고 내보냅니다.

import { PinpointClient } from "@aws-sdk/client-pinpoint"; const REGION = "us-east-1"; const pinClient = new PinpointClient({ region: REGION }); export { pinClient };

엔드포인트에 대한 인앱 메시지를 검색합니다.

// Import required AWS SDK clients and commands for Node.js import { PinpointClient, GetInAppMessagesCommand } from "@aws-sdk/client-pinpoint"; import { pinClient } from "./lib/pinClient.js"; ("use strict"); //The Amazon Pinpoint application ID. const projectId = "4c545b28d21a490cb51b0b364example"; //The ID of the endpoint to retrieve messages for. const endpointId = "c5ac671ef67ee3ad164cf7706example"; const params = { ApplicationId: projectId, EndpointId: endpointId }; const run = async () => { try { const data = await pinClient.send(new GetInAppMessagesCommand(params)); console.log(JSON.stringify(data, null, 4)); return data; } catch (err) { console.log("Error", err); } }; run();
Python
import logging import boto3 from botocore.exceptions import ClientError logger = logging.getLogger(__name__) def retrieve_inapp_messages( pinpoint_client, project_id, endpoint_id): """ Retrieves the in-app messages that a given endpoint is entitled to. :param pinpoint_client: A Boto3 Pinpoint client. :param project_id: An Amazon Pinpoint project ID. :param endpoint_id: The ID of the endpoint to retrieve messages for. :return: A JSON object that contains information about the in-app message. """ try: response = pinpoint_client.get_in_app_messages( ApplicationId=project_id, EndpointId=endpoint_id) except ClientError: logger.exception("Couldn't retrieve messages.") raise else: return response def main(): project_id = "4c545b28d21a490cb51b0b364example" endpoint_id = "c5ac671ef67ee3ad164cf7706example" inapp_response = retrieve_inapp_messages( boto3.client('pinpoint'), project_id, endpoint_id) print(inapp_response) if __name__ == '__main__': main()

GetInAppMessages API 응답 이해

GetInAppMessagesAPI 작업을 호출하면 지정된 엔드포인트에 권한이 부여된 메시지 목록이 반환됩니다. 이렇게 되면 앱이 응답의 값을 기반으로 메시지를 렌더링할 수 있습니다.

아래는 GetInAppMessages API를 직접적으로 호출할 때 반환되는 JSON 객체의 예제입니다.

{ "InAppMessagesResponse":{ "InAppMessageCampaigns":[ { "CampaignId":"inAppTestCampaign-4c545b28d21a490cb51b0b364example", "DailyCap":0, "InAppMessage":{ "Content":[ { "BackgroundColor":"#f8e71c", "BodyConfig":{ "Alignment":"CENTER", "Body":"This is a sample in-app message sent using Amazon Pinpoint.", "TextColor":"#d0021b" }, "HeaderConfig":{ "Alignment":"CENTER", "Header":"Sample In-App Message", "TextColor":"#d0021b" }, "ImageUrl":"https://example.com/images/thumbnail.png", "PrimaryBtn":{ "DefaultConfig":{ "BackgroundColor":"#d0021b", "BorderRadius":50, "ButtonAction":"CLOSE", "Text":"Dismiss", "TextColor":"#f8e71c" } } } ], "Layout":"MIDDLE_BANNER" }, "Priority":3, "Schedule":{ "EndDate":"2021-11-06T00:08:05Z", "EventFilter":{ "Dimensions":{ "Attributes":{ }, "EventType":{ "DimensionType":"INCLUSIVE", "Values":[ "_session.start" ] }, "Metrics":{ } } } }, "SessionCap":0, "TotalCap":0, "TreatmentId":"0" } ] } }

다음 섹션에서는 이 응답의 구성 요소에 대한 추가 정보를 제공합니다.

InAppMessageCampaigns 객체

InAppMessageCampaigns 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

CampaignId

메시지를 보낸 Amazon Pinpoint 캠페인의 이름 및 고유한 캠페인 ID가 포함된 문자열입니다. 이름은 캠페인 ID 앞에 옵니다. 두 값은 하이픈(-)으로 구분됩니다.

캠페인을 생성할 경우 Amazon Pinpoint에서 자동으로 생성합니다.

TreatmentId

이 메시지에 대한 캠페인 처리 ID를 나타내는 정수입니다. 캠페인에 처리가 한 개만 있는 경우 값은 0입니다.

Priority

인앱 메시지의 우선순위로, 1~5 사이의 정수로 표시됩니다. 여기서 1은 가장 높은 우선순위를 나타내고, 5는 가장 낮은 우선순위를 나타냅니다.

캠페인 생성 프로세스의 1단계.

InAppMessage

메시지가 렌더링되는 방식에 대한 정보가 들어 있는 InAppMessage 객체입니다.

캠페인에 지정된 인앱 메시지 템플릿의 콘텐츠를 기반으로 합니다.

Schedule

메시지를 보낸 시간에 대한 정보가 들어 있는 Schedule 객체입니다.

캠페인 생성 프로세스의 4단계(콘솔에서 캠페인이 생성된 경우) 또는 Schedule 객체(API 또는 SDK를 사용하여 캠페인을 생성한 경우).

DailyCap

24시간 동안 인앱 메시지가 사용자에게 표시될 수 있는 횟수(정수로 표시)입니다.

프로젝트 수준 설정에서 상속됩니다. 캠페인에 프로젝트 설정을 재정의하는 설정이 포함된 경우 해당 설정이 대신 사용됩니다.

SessionCap

애플리케이션 세션 중에 사용자에게 인앱 메시지가 표시될 수 있는 횟수(정수로 표시)입니다.

TotalCap

캠페인당 인앱 메시지가 엔드포인트에 표시될 수 있는 총 횟수(정수로 표시)입니다.

InAppMessage 객체

InAppMessage 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

Content

메시지 내용을 설명하는 InAppMessageContent객체를 포함하는 배열입니다.

캠페인에 지정된 인앱 메시지 템플릿의 콘텐츠를 기반으로 합니다.

Layout

인앱 메시지가 수신자의 디바이스에 표시되는 방식을 설명하는 문자열입니다. 가능한 값은 다음과 같습니다.

  • BOTTOM_BANNER - 페이지 하단에 배너로 표시되는 메시지입니다.

  • TOP_BANNER - 페이지 상단에 배너로 표시되는 메시지입니다.

  • OVERLAYS - 전체 화면을 덮는 메시지입니다.

  • MOBILE_FEED - 페이지 앞의 창에 표시되는 메시지입니다.

  • MIDDLE_BANNER - 페이지 중간에 배너로 표시되는 메시지입니다.

  • CAROUSEL - 최대 5개 고유 메시지의 스크롤 가능한 레이아웃입니다.

HeaderConfig 객체

HeaderConfig 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

Alignment

헤더 텍스트의 텍스트 정렬을 지정하는 문자열입니다. 가능한 값은 LEFT, CENTERRIGHT입니다.

캠페인에 지정된 인앱 메시지 템플릿의 콘텐츠를 기반으로 합니다.

Header

메시지 헤더 텍스트입니다.

TextColor

16진수 색상 코드를 설명하는 문자열로 표현되는 헤더 텍스트의 색입니다(예: 검은색의 경우 '#000000').

BodyConfig 객체

BodyConfig 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

Alignment

메시지 본문의 텍스트 정렬을 지정하는 문자열입니다. 가능한 값은 LEFT, CENTERRIGHT입니다.

캠페인에 지정된 인앱 메시지 템플릿의 콘텐츠를 기반으로 합니다.

Body

메시지의 본문 텍스트입니다.

TextColor

16진수 색상 코드가 포함된 문자열로 표현되는 본문 텍스트의 색상입니다(예: 검정색의 경우 '#000000').

InAppMessageContent 객체

InAppMessageContent 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

BackgroundColor

16진수 색상 코드가 포함된 문자열로 표시되는 인앱 메시지의 배경색입니다(예: 검은색의 경우 '#000000').

캠페인에 지정된 인앱 메시지 템플릿의 콘텐츠를 기반으로 합니다.

BodyConfig

메시지의 본문 내용과 관련된 정보가 들어 있는 BodyConfig객체입니다.

HeaderConfig

메시지의 머리글 또는 제목과 관련된 정보가 들어 있는 HeaderConfig객체입니다.

ImageUrl

메시지에 표시되는 이미지의 URL입니다.

PrimaryBtn

메시지의 기본 버튼에 대한 정보가 들어 있는 InAppMessageButton객체입니다.

SecondaryBtn

메시지의 보조 버튼에 대한 정보가 들어 있는 InAppMessageButton객체입니다. 인앱 메시지 템플릿에 보조 버튼이 지정되지 않은 경우에는 표시되지 않습니다.

Schedule 객체

Schedule 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

EndDate

캠페인이 종료될 예정인 ISO 8601 형식의 예약 시간입니다.

캠페인 생성 프로세스의 4단계(콘솔에서 캠페인이 생성된 경우) 또는 Schedule 객체(API 또는 SDK를 사용하여 캠페인을 생성한 경우).

EventFilter

인앱 메시지를 표시하게 하는 이벤트에 대한 정보입니다. Amazon Pinpoint 인앱 캠페인과 일치하는 이벤트를 생성하면 메시지가 표시됩니다.

InAppMessageButton 객체

InAppMessageButton 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

DefaultConfig

인앱 메시지에 있는 버튼의 기본 설정에 대한 정보가 들어 있는 DefaultButtonConfig객체입니다.

캠페인에 지정된 인앱 메시지 템플릿의 콘텐츠를 기반으로 합니다.

Android

Android 기기에서 버튼이 작동하는 방식을 지정하는 OverrideButtonConfig객체입니다. 이는 DefaultConfig 객체에 자세히 설명된 기본 버튼 구성을 재정의합니다.

IOS

iOS 장치에서 버튼이 동작하는 방식을 지정하는 OverrideButtonConfig객체입니다. 이는 DefaultConfig 객체에 자세히 설명된 기본 버튼 구성을 재정의합니다.

Web

웹 앱에서 버튼이 동작하는 방식을 지정하는 OverrideButtonConfig객체입니다. 이는 DefaultConfig 객체에 자세히 설명된 기본 버튼 구성을 재정의합니다.

DefaultButtonConfig 객체

DefaultButtonConfig 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

BackgroundColor

16진수 색상 코드가 포함된 문자열로 표시되는 버튼의 배경색입니다(예: 검은색의 경우 '#000000').

캠페인에 지정된 인앱 메시지 템플릿의 콘텐츠를 기반으로 합니다.

BorderRadius

버튼 테두리의 반경(픽셀 단위)으로, 정수로 표현됩니다. 숫자가 클수록 모서리가 더 둥글어집니다.

ButtonAction

수신자가 인앱 메시지에서 버튼을 선택할 때 수행되는 작업을 설명하는 문자열입니다. 가능한 값은 다음과 같습니다.

  • LINK - 웹 대상에 대한 링크입니다.

  • DEEP_LINK - 애플리케이션의 특정 페이지에 대한 링크입니다.

  • CLOSE - 메시지를 닫습니다.

Link

버튼의 대상 URL입니다. 가 있는 버튼에는 ButtonAction 표시되지 않습니다. CLOSE

Text

버튼에 표시되는 텍스트입니다.

TextColor

16진수 색상 코드가 포함된 문자열로 표시되는 텍스트의 색입니다(예: 검은색의 경우 '#000000').

OverrideButtonConfig 객체

OverrideButtonConfig 객체는 인앱 메시지 템플릿이 재정의 버튼을 사용하는 경우에만 표시됩니다. 재정의 버튼은 iOS 디바이스, Android 디바이스 또는 웹 브라우저와 같은 특정 디바이스 유형에 대한 특정한 구성이 있는 버튼입니다.

OverrideButtonConfig 객체에는 다음 속성이 포함됩니다.

속성 설명 설정 위치

ButtonAction

수신자가 인앱 메시지에서 버튼을 선택할 때 수행되는 작업입니다. 가능한 값은 다음과 같습니다.

  • LINK - 웹 대상에 대한 링크입니다.

  • DEEP_LINK - 애플리케이션의 특정 페이지에 대한 링크입니다.

  • CLOSE - 메시지를 닫습니다.

캠페인에 지정된 인앱 메시지 템플릿의 콘텐츠를 기반으로 합니다.

Link

버튼의 대상 URL입니다. ButtonActionCLOSE인 버튼에는 표시되지 않습니다.

Text

버튼에 표시되는 텍스트입니다.

TextColor

16진수 색상 코드가 포함된 문자열로 표시되는 텍스트의 색입니다(예: 검은색의 경우 '#000000').