본문으로 바로가기

Amazon QuickSight를 사용하여 맞춤형 Pinpoint 대시 보드 생성

category AWS 2020. 7. 24. 10:28

Amazon QuickSight를 사용하여 맞춤형 Pinpoint 대시 보드 생성

Amazon Pinpoint 를 사용하면 모바일, 웹 및 기타 메시징 채널에서 고객 중심의 참여 경험을 만들 수 있습니다. 또한 메시징 프로그램의 성능을 추적하는 데 사용할 수있는 다양한 핵심 성과 지표 (KPI)를 제공합니다.

콘솔을 통해 또는 Amazon Pinpoint API를 사용하여 이러한 KPI에 액세스 할 수 있습니다. 경우에 따라 기본적으로 포함되지 않은 사용자 지정 대시 보드를 만들거나 이러한 메트릭을 다른 데이터와 결합 할 수도 있습니다. 앞으로 며칠 동안 사용자 지정 대시 보드를 만드는 데 사용할 수있는 여러 가지 방법에 대해 설명합니다.

이 게시물에서는 Amazon Pinpoint API를 사용하여 지표를 검색 한 다음 Amazon QuickSight 에서 생성 한 시각화에 표시하는 방법에 대해 알아 봅니다 . 이 옵션은 특정 메트릭 집합을 강조 표시하는 사용자 지정 대시 보드를 만들거나 기존 응용 프로그램이나 웹 사이트에 이러한 메트릭을 포함시키는 데 이상적입니다.

다음 포스트 (8 월 19 일 월요일에 게시)에서는 원시 이벤트 데이터를 S3 버킷으로 내보내는 방법을 배우고 해당 데이터를 사용하여 QuickSight의 초고속, 병렬, 인-인 을 사용하여 대시 보드를 생성합니다. 메모리 계산 엔진 (SPICE). 이 옵션을 사용하면 심층 분석을 수행하고 시각화를 신속하게 업데이트 할 수 있습니다. 모든 이벤트 데이터가 S3 버킷에 저장되므로 비용 효율적입니다.

마지막 게시물 (8 월 21 일 수요일에 게시 예정)에서는 이벤트 스트림 데이터에서 시각화를 만드는 프로세스에 대해서도 설명합니다. 그러나이 솔루션에서는 데이터가 Amazon Kinesis에서 Redshift 클러스터로 전송됩니다. 이 옵션은 대량의 이벤트 데이터를 처리해야하는 경우에 이상적입니다.


특정 지표를 사용하는 QuickSight 대시 보드 작성

Amazon Pinpoint API를 사용 하여 Amazon Pinpoint 콘솔 의 Analytics 페이지 에 표시되는 많은 지표에 프로그래밍 방식으로 액세스 할 수 있습니다 . 최근 블로그 게시물 인 지표 API를 사용하여 캠페인 실적 추적 에서 API를 사용하여 특정 KPI를 얻는 방법에 대해 자세히 알아볼 수 있습니다  .

다음 섹션에서는 Amazon S3에서 결과를 구문 분석 및 저장하고 Amazon Quicksight를 사용하여 사용자 지정 대시 보드를 생성하는 방법을 보여줍니다. 아래 단계는 특정 절차가 아닌 일반적인 지침을 제공하기위한 것입니다. 과거에 다른 AWS 서비스를 사용한 적이 있다면 여기에있는 대부분의 개념이 익숙 할 것입니다. 그렇지 않은 경우 걱정하지 마십시오. 문서를 쉽게 찾을 수 있도록 링크가 포함되어 있습니다.


1 단계 : 종속성 패키지

Lambda는 현재 현재 버전보다 몇 가지 버전 인 AWS SDK 버전을 사용합니다. 그러나 프로그래밍 방식으로 Pinpoint 메트릭을 검색하는 기능은 비교적 새로운 기능입니다. 이러한 이유로 최신 버전의 SDK 라이브러리를 컴퓨터에 다운로드하고 .zip 아카이브를 작성한 다음 해당 아카이브를 Lambda에 업로드해야합니다.

 

종속성을 패키징하려면

 

  1. 다음 코드를 텍스트 편집기에 붙여 넣습니다.

from datetime import datetime
import boto3
import json

AWS_REGION = "<us-east-1>"
PROJECT_ID = "<projectId>"
BUCKET_NAME = "<bucketName>"
BUCKET_PREFIX = "quicksight-data"
DATE = datetime.now()

# Get today's push open rate KPI values.
def get_kpi(kpi_name):

    client = boto3.client('pinpoint',region_name=AWS_REGION)

    response = client.get_application_date_range_kpi(
        ApplicationId=PROJECT_ID,
        EndTime=DATE.strftime("%Y-%m-%d"),
        KpiName=kpi_name,
        StartTime=DATE.strftime("%Y-%m-%d")
    )
    rows = response['ApplicationDateRangeKpiResponse']['KpiResult']['Rows'][0]['Values']

    # Create a JSON object that contains the values we'll use to build QuickSight visualizations.
    data = construct_json_object(rows[0]['Key'], rows[0]['Value'])

    # Send the data to the S3 bucket.
    write_results_to_s3(kpi_name, json.dumps(data).encode('UTF-8'))

# Create the JSON object that we'll send to S3.
def construct_json_object(kpi_name, value):
    data = {
        "applicationId": PROJECT_ID,
        "kpiName": kpi_name,
        "date": str(DATE),
        "value": value
    }

    return data

# Send the data to the designated S3 bucket.
def write_results_to_s3(kpi_name, data):
    # Create a file path with folders for year, month, date, and hour.
    path = (
        BUCKET_PREFIX + "/"
        + DATE.strftime("%Y") + "/"
        + DATE.strftime("%m") + "/"
        + DATE.strftime("%d") + "/"
        + DATE.strftime("%H") + "/"
        + kpi_name
    )

    client = boto3.client('s3')

    # Send the data to the S3 bucket.
    response = client.put_object(
        Bucket=BUCKET_NAME,
        Key=path,
        Body=bytes(data)
    )

def lambda_handler(event, context):
    get_kpi('email-open-rate')
    get_kpi('successful-delivery-rate')
    get_kpi('unique-deliveries')

앞의 코드에서 다음을 변경하십시오.

 

  • 교체 <우리를 동쪽-1> 당신이 아마존 핀 포인트를 사용하는 AWS 지역의 이름으로.
  • 교체 <projectId> 메트릭과 연관되는 아마존 정밀한 프로젝트의 ID와.
  • 교체 <bucketName을> 은 데이터를 저장하는 데 사용하려는 아마존 S3 버킷의 이름으로. S3 버킷을 만드는 방법에 대한 자세한 내용은 양동이를 작성 에서 시작 안내서를 아마존 S3 .
  • 선택적 으로 검색하려는 특정 메트릭에 대한 함수를 lambda_handler호출하도록 get_kpi함수를 수정하십시오.

완료되면 파일을 retrieve_pinpoint_kpis.py 로 저장하십시오.

 

  2. pip 를 사용 하여 최신 버전 boto3및 botocore라이브러리 를 다운로드하십시오 . 이 라이브러리를 .zip 파일에 추가하십시오. 또한 retrieve_pinpoint_kpis.py 를 .zip 파일에 추가 하십시오. AWS Lambda 개발자 안내서 의 가상 환경 을 사용하여 추가 종속성으로 기능 업데이트 에서 이러한 모든 작업에 대해 자세히 알아볼 수 있습니다.

 

2 단계 : Lambda 기능 설정

이 섹션에서는 이전 섹션에서 생성 한 패키지를 Lambda에 업로드합니다.

Lambda 기능을 설정하려면

 

  1. Lambda 콘솔에서 처음부터 새 기능을 만듭니다. Python 3.7 런타임을 선택하십시오 .
  2. 다음 권한이 포함 된 Lambda 실행 역할을 선택하십시오.
    • mobiletargeting:GetApplicationDateRangeKpi 리소스에 대한 작업 을 허용합니다.
      arn:aws:mobiletargeting:<awsRegion>:<yourAwsAccountId>:apps/*/kpis/*/*여기서 <awsRegion> 은 Amazon Pinpoint를 사용하는 리전이고 <yourAwsAccountId> 는 AWS 계정 번호입니다.
    • s3:PutObjectresource에 대한 작업 을 허용합니다. arn:aws:s3:::<my_bucket>/*여기서 <my_bucket> 은 지표를 저장하려는 S3 버킷의 이름입니다.
    • IAM 역할 생성에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서 의 AWS 서비스 에 대한 권한을 위임 할 역할 생성을 참조하십시오 .
  3. 이전 섹션에서 만든 .zip 파일을 업로드하십시오.
  4. 처리기 값을로 변경하십시오 retrieve_pinpoint_kpis.lambda_handler.
  5. 변경 사항을 저장하십시오.

 

3 단계 : 기능 실행 스케줄

이제 Lambda 함수를 실행할 준비가되었습니다. 다음 단계는 트리거를 실행하는 트리거를 설정하는 것입니다. 이 경우 하루 종일 데이터를 검색하므로 매일 오후 11:59에 실행되는 예약 된 트리거를 설정합니다.

 

트리거를 설정하려면

  1. Lambda 콘솔의 Designer 섹션에서 Add trigger를 선택 하십시오 .
  2. 일정 표현식 규칙 유형을 사용하는 새 CloudWatch Events 규칙을 생성합니다.
  3. 스케줄 표현식의 경우을 입력하십시오 cron(59 23 ? * * *).

4 단계 : QuickSight 분석 작성

S3에서 데이터가 채워지면 Amazon QuickSight에서 분석 생성을 시작할 수 있습니다. 새 분석을 작성하는 프로세스에는 두 가지 작업이 있습니다. 새 데이터 세트 작성 및 시각화 작성.

 

QuickSight에서 분석을 작성하려면

  1. 텍스트 편집기에서 새 파일을 작성하십시오. 다음 코드를 붙여 넣습니다.

  2. https://quicksight.aws.amazon.com 에서 QuickSight 콘솔에 로그인 하십시오 .
  3. 새로운 S3 데이터 세트를 작성하십시오. 메시지가 표시되면 1 단계에서 생성 한 매니페스트 파일을 선택합니다. S3 데이터 세트 생성에 대한 자세한 내용은 Amazon QuickSight 사용 설명서의 Amazon S3 파일 을 사용하여 데이터 세트 생성을 참조하십시오 .
  4. 새로운 분석을 만듭니다. 여기에서 데이터 시각화를 시작할 수 있습니다. 자세한 내용 은 Amazon QuickSight 사용 설명서 의 분석 생성을 참조하십시오.
{
    "fileLocations": [
        {
            "URIPrefixes": [ 
                "s3://<bucketName>/quicksight-data/"          
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "JSON"
    }
}

댓글을 달아 주세요

대마도사 블로그
블로그 이미지 대마도사 님의 블로그
MENU
VISITOR 오늘4 / 전체17,683