ハンズオンの目的
本ハンズオンは、下記を目的として実施致します。
- KARTEというプロダクトを知る
- EventBridgeを介したAWSとKARTEの連携方法とその容易さを知る
- AWSとKARTEの組み合わせで、カスタマーデータ活用の可能性が広がることを知る
ハンズオンで構築する基盤のアーキテクチャ
本ハンズオンでは、KARTEのカスタムイベントタグが設置されているWEBサイトを訪問したユーザーのデータをEventBridgeを経由してDynamoDB・S3に連携するシステムを構築します。 このシステムは大きく分けて3つのセクションに別れます。
- KARTE
- KARTEのカスタムイベントタグが設置されているWEBサイトを訪問したユーザーを解析し、EventBridgeへデータをリアルタイムで送信します。
- DynamoDBインテグレーション
- KARTEからEventBridge経由で連携されてきたデータを、Amazon SNS・AWS Lambdaを利用してテーブルに格納します。
- S3インテグレーション
- KARTEからEventBridge経由で連携されてきたデータを、Amazon Kinesis Data Firehoseを利用してJSON Lines形式でS3に保存します。
ハンズオンの流れ
本ハンズオンは下記のような流れに沿って実施致します。
- 事前準備
- KARTEの機能概要
- EventBridgeプラグインのインストール
- パートナーイベントソースの設定
- QuickStartを利用したDynamoDBインテグレーションのデプロイ
- QuickStartを利用したS3インテグレーションのデプロイ
- カスタマイズ例:KARTEでバナーが表示されたユーザー情報をEventBridge経由で送信する(optional)
- ハンズオン完了後のAWSリソースの削除
- KARTEとEventBridgeを活用したアプリケーション実装例とユースケース
事前準備
利用するAWSアカウント
本ハンズオンは、全てのAWS上での作業を「米国東部 (バージニア北部)us-east-1リージョン」で実施します。他のリージョンで作業を行うとハンズオンがうまく行かない可能性がございますので、確認しながら進めてください。
本ハンズオンでは、参加者ご自身のAWSアカウントをご利用いただくことが可能です。ご自身のAWSアカウントにログインの上、以下の設定を進めてください。
KARTEアカウントの有効化
KARTEの利用を今回開始される方には、アカウント有効化のための招待メールが届いております。メールのリンクから、アカウントの有効化をお願い致します。
デモサイトの確認
KARTEの動作確認用のデモサイトが、KARTEプロジェクト毎に用意されています。デモサイトにはKARTEプロジェクトのタグが埋め込まれており、デモサイト上での行動データが蓄積され、接客を表示させることが可能です。
デモサイトのURLは、https://{文字列}.demo-karte.io
となります。
デモサイトのURLがわからない方は、KARTEチャットサポートからお問い合わせください。
KARTEの機能概要
KARTEの機能の概要については、ハンズオン内で口頭でご説明致します。ご自身でKARTEへの理解を深めたい方は、下記のようなドキュメントをご参照ください。
- KARTEとは
- KARTE Academy
- KARTEの利用方法を勉強できるコンテンツが多数ございます。KARTEアカウントを持っている方限定でアクセスできるページとなりますので、ご自身のKARTEアカウントを利用の上でアクセスしてください。
EventBridgeプラグインのインストール
グローバルメニュー > すべてのプロダクト > ストア > アプリストアをクリック
(アプリストアのリンクはこちら)を選択して、アプリストアにアクセスしてください。
一覧からAmazon EventBridgeアプリを選択してください。
画面中央にインストール
ボタンがありますので、押下してください。
パートナーイベントソースの設定
パートナーイベントソースの作成
Amazon EventBridgeアプリ設定画面に進み、パートナーイベントソース
のタブを押下します。画面右上の追加
ボタンを押下して、パートナーイベントソースの設定に進みます。
下記のガイドに従って、パートナーイベントソースの設定を入力して保存してください。これにより、Amazon EventBridge側に、パートナーイベントバスが作成されます。なお、DynamoDBインテグレーションのデプロイ・S3インテグレーションのデプロイのそれぞれで別々のパートナーイベントバスが必要になるため、2つのパートナーイベントソースを作成するようにしてください。
項目 | 入力内容 |
---|---|
AWS Account ID | ハンズオンで利用するAWS環境の AWS Account IDをハイフンなしの12桁の数字で入力してください。 |
名前 | ハンズオンで作成するEventBridgeのイベントバスの名前に利用されるため、任意の名前を入力してください。作成する2つのパートナーイベントソースが区別できるように、-s3 ・-dynamodb などのsuffixを付与するようにしてください。利用できる文字は、半角英字(小文字)、数字、.(ドット)、-(ハイフン)、_(アンダースコア) になります。 |
有効化 | チェックボックスにチェック を入れてください。 |
Region | 本ハンズオンでは、米国東部 (バージニア北部) / us-east-1 をご選択ください。 |
パートナーイベントソースの確認
AWSにログインし、 Amazon EventBridgeのパートナーイベントソース画面 にアクセスし、前工程で入力した名前
に従ってパートナーイベントソースが2つ作成されていることを確認してください。このaws.partner/karte.io/{AWSAccountID}/{KARTEProjectId}/{名前}
のパスは、後ほど入力が必要になるため、メモしておいてください 。
データ連携用の接客・アクションの作成
接客・アクションの役割
KARTEからEventBridgeへデータを送信するために、「どのタイミング」で「どのデータ」を送信するか設定する必要があります。KARTEでは、この設定を「接客」「アクション」の2つの設定で実施します。今回のハンズオンでは、DynamoDB・S3と2つのサービスへの連携を行うため、2つの接客とアクション を作成致します。
以下に記載している接客・アクションの設定内容は、デモサイトの全てのページを訪問した際に、KARTEがユーザー情報を取得し、user_id等をEventBridge経由で各サービスに送信する設定 となります。お時間がある方は、EventBridgeへの配信タイミングや送信するデータの内容などを、下記を参考にカスタマイズしてみてください。
- カスタマイズ例:KARTEでバナーが表示されたユーザー情報をAWSに送信する(optional)
- ハンズオン後半では、実際に接客のカスタマイズを試します。
- 作成フロー - 配信トリガーの設定/仕様
- ページ閲覧時にKARTEが収集する情報(閲覧対象(ページ/画面情報)や閲覧環境(ブラウザ情報、端末情報など))を利用して、EventBridgeへの情報送信のタイミングを自由に決定することができます。
- 静的変数
content
に入力するjsonデータの内容が、「KARTE内部で定義された変数」という項目で記載されています。
- 変数・ユーザー情報変数」利用方法・仕様
- ユーザー情報変数を利用することで、KARTEからEventBridgeに送信するデータの内容をカスタマイズすることができます。
接客・アクションの作成
「接客・アクションの作成」はS3・DynamoDB連携のために2回実施する必要があります。ほぼ同一の作業を繰り返し実施することになるため、「接客サービス一覧」ページから対象の接客の「三点リーダ」を選択し、「複製」を押下して、接客をコピーすることを推奨します。また、作成・複製時は、混乱しないようにそれぞれのサービスに対応した名称設定をするように注意してください。
KARTE画面内のグローバルメニューから、すべてのプロダクト > アクション > 接客サービスを押下して接客サービス画面に遷移し、接客サービス画面から作成ボタンを押下します。
任意の接客サービス名
を入力し、アクションを追加
ボタンを押下します。
検索ボックスにEventBridge
と入力し、「AmazonEventBridgeテンプレート」を選択します。
接客の設定画面にて、下記を参考に接客の設定を変更してください。
名前 | 設定内容 |
---|---|
配信率 | EventBridgeのアイコンがあるアクションを100% に変更 |
配信頻度 | アクセス毎 に変更 |
同時配信 | OK に変更 |
アクションの編集
ボタンを押下し、アクションの設定画面に遷移します。
編集画面にて、下記を参考にアクション設定を入力し、保存ボタンを押下します。
名前 | 入力内容 |
---|---|
name | DynamoDB連携の場合 は_write_to_dynamo_request 、S3連携の場合 _write_to_s3_request と入力してください |
content | 下記のjson形式のデータをコピーして入力してください。 |
パートナーイベントソース名 | パートナーイベントソースの確認 でメモした、aws.partner/karte.io/{AWSAccountID}/{KARTEProjectId}/{名前} という形式のパートナーイベントソースのパスの中から、{名前} のみを入力してください。 また、DynamoDB・S3連携用にそれぞれ異なるパートナーイベントソースを作成しておりますので、正しい情報が入力されるように注意してください。 |
{
"values": {
"name": "KARTE",
"user_id": "#{visitor_id}",
"user_name" : "#{user_name}",
"segments" : "#{segments}",
"campaign_id" : "#{campaign_id}",
"shorten_id" : "#{shorten_id}",
"is_web" : "#{is_web}",
"is_ios" : "#{is_ios}",
"is_android" : "#{is_android}",
"address" : {
"country" : "JP",
"prefecture": "tokyo"
}
}
}
接客・アクションの公開
作成した接客は公開する必要があります。接客の設定画面にて、右上の公開
ボタンを押下して、接客を公開してください。
QuickStartを利用したDynamoDBインテグレーションのデプロイ
デプロイ
AWS クイックスタートから PLAID KARTE DynamoDB
を選択し、STEP3
のDeploy the Integration
のリンクを押下し、スタックの作成画面に遷移した後に、次へ
ボタンを押下してください。
下記に従って入力し、次へ
ボタンを押下してください。
名前 | 入力内容 |
---|---|
EventSourceName | パートナーイベントソースの確認 でメモした、aws.partner/karte.io/{AWSAccountID}/{KARTEProjectId}/{名前} という形式のDynamoDB用のパートナーイベントソースのパスを入力してください。 |
DyanamoDBTableName | DynamoDBのテーブル名になるので、任意の値を入力してください。 |
「スタックオプションの設定」は全てデフォルトの入力値のまま変更せず次へ
ボタンを押下し、「機能と変換」のチェックボックスにチェック
を入れて、スタックの作成
を押下してください。
リソースの作成には2~3分程度かかります。
CloudFormationのイベント
タブから、リソースの作成が完了していることを確認してください。
DynamoDBにデータが送信されているか動作確認
デモサイト(ハンズオン冒頭で確認したhttps://{文字列}.demo-karte.io
がURLのページ)の任意のページにアクセスした後に、先程作成されたDynamoDBのテーブルにデータが作成されていることを確認します。
QuickStartを利用したS3インテグレーションのデプロイ
デプロイ
AWS クイックスタートからPLAID KARTE S3を選択し、STEP3
のDeploy the Integration
のリンクを押下し、スタックの作成画面に遷移した後に、次へ
ボタンを押下してください。
下記に従って入力し、次へ
ボタンを押下してください。
名前 | 入力内容 |
---|---|
Event Source Name | パートナーイベントソースの確認 でメモした、aws.partner/karte.io/{AWSAccountID}/{KARTEProjectId}/{名前} という形式のS3用のパートナーイベントソースのパスを入力してください。 |
S3 Bucket Name | 作成されるS3バケットの名前になるため、任意の値を入力してください。 |
Kinesis Stream Name | 作成されるKinesis Streamの名前になるため、任意の値を入力してください。 |
「スタックオプションの設定」は全てデフォルトの入力値のまま変更せず次へ
ボタンを押下し、「機能と変換」のチェックボックスにチェック
を入れて、スタックの作成
を押下してください。
リソースの作成には2~3分程度かかります。
CloudFormationのイベント
タブから、リソースの作成が完了していることを確認してください。
S3にデータが送信されているか動作確認
デモサイト(ハンズオン冒頭で確認したhttps://{文字列}.demo-karte.io
がURLのページ)の任意のページにアクセスした後に、先程作成されたS3のバケットにデータが作成されていることを確認します。
S3インテグレーションではAmazon Kinesis Data Firehoseの設定で、5分間バッファリングしてまとめてS3にデータを書き込むため、ページにアクセスしてから5分程度待機した後にデータが作成されているかご確認ください。
カスタマイズ例:KARTEでバナーが表示されたユーザー情報をEventBridge経由で送信する(optional)
ここまでで基本的なKARTEとEventBridgeの連携は完了しましたが、この章ではユーザーのページ訪問以外の条件でのEventBridgeへのデータ送信を実現する設定を実施します。今回は、KARTEの基本的な機能を利用してKARTEでバナーを表示させ、バナーでWEB接客を実施したユーザーのみを、EventBridgeに送信する設定 を試してみます。
KARTEからバナーを出す接客を設定
KARTE画面内のグローバルメニューから、すべてのプロダクト > アクション > 接客サービスを押下して接客サービス画面に遷移し、接客サービス画面から作成ボタンを押下します。
任意の接客サービス名を入力し、アクションを追加
ボタンを押下します。ユーザーに「見せる」>バナー>クーポン
の順番にクリックし、アクションを追加
します。
接客の設定画面にて、下記を参考に設定を変更してください。作成した接客は公開する必要がありますので、設定後に右上の公開
ボタンを押下して、接客を公開してください。
名前 | 設定内容 |
---|---|
配信率 | バナーのアクションを100% に変更 |
配信頻度 | アクセス毎 に変更 |
配信トリガー | 閲覧イベントで設定>閲覧ページのURIアンカー>次に等しい を選択し、値を入力のテキストボックスにtest と入力します。 |
同時配信 | OK に変更 |
バナーの動作確認
配信トリガーで条件としてURIアンカーを付与したデモサイトのURL、https://{文字列}.demo-karte.io#test
にアクセスして、下記のようなクーポンが表示されることを確認してください。
バナーを表示したユーザーの情報を送信する設定に変更する
KARTE画面内のグローバルメニューから、アクション>接客サービス
を押下して接客サービス画面に遷移し、 第9章もしくは第10章で設定したEventBridge用の接客 の三点リーダーを選択し、接客の編集
を押下します。
配信トリガーから、条件を追加 > その他のイベントで設定 > 接客サービスを表示 > 接客サービス名 > 次に等しい
を選択して適用
を押し、値を入力
と記載されているテキストボックスを選択して、先程作成したクーポンを表示する接客のドロップダウンリストから選択します。設定が終わったら、画面右上の保存
ボタンを押下し、公開中のまま保存
を押下します。
接客の動作確認
前述の設定の変更により、EventBridge連携の動作は下記のように変わりました。
- Before(変更前)
- デモサイトの任意のページを訪問した際に(viewイベント発生時)、EventBridgeにユーザーデータを送信する。
- After(変更後)
- デモサイト上でクーポン用のバナーが表示された際に(message_openイベント発生時)、EventBridgeにユーザーデータを送信する。
このように連携の設定をカスタマイズすることで、自由自在にKARTEからEventBridgeへとデータを連携することができます。
- デモサイト上でクーポン用のバナーが表示された際に(message_openイベント発生時)、EventBridgeにユーザーデータを送信する。
ハンズオン終了後のAWSリソースの削除
ハンズオン終了後に不要になったAWSリソースは、CloudFormationのホーム画面 から一括削除することができます。CloudFormationのホーム画面からスタックを選択して、削除を実行してください。
S3バケットは、事前にバケットを空にする必要があります。CloudFormationで自動的に作成されたBucketを空にした上で、CloudFormationのスタックの削除を実行してください。
KARTEとEventBridgeを活用したアプリケーション実装例とユースケース
AWSとKARTEの組み合わせで作成できるアプリケーションの可能性は無限大です。以下に、AWS・KARTEの連携を前提としたアプリケーションの実装例とユースケースをご紹介致します。
例1:カスタマーデータ取得API構築
DynamoDBに格納されたカスタマーデータを、Lambda・API Gatewayを利用して取得できるAPIを作成します。
下記のようなユースケースが想定されます。
- KARTE上で特定の行動をとったユーザーの一覧をDynamoDBのテーブルに格納。APIを作成することで、社内の他の業務システムでユーザーの一覧情報として活用する。
例2:S3のデータをAthenaで検索する
S3に格納されたカスタマーデータを、Amazon Athenaを利用して検索できるようにします。
下記のようなユースケースが想定されます。
- S3をデータレイクとして、KARTEを利用して収集されるユーザーの行動データを収集。Athena等を利用して行動データの分析を実施する。
例3:KARTE Signalsを用いた広告出稿最適化
KARTE Signals は、KARTEによって収集される1st Party Dataを用いて、Facebookなどの各広告媒体とのデータの連携を実現します。このKARTE Signals とAWSの各種サービスで加工されたデータを組み合わせることで、広告出稿の最適化を実現できます。
例えば、下記のようなシステム構成が想定されます。この例では、KARTEや外部のシステムから収集したデータを元に、Amazon SageMakerを用いて機械学習モデルを作成します。機械学習モデルに基づいて作成されたデータをKARTE Datahubに送信し、広告出稿のシグナルとして利用します。
例4:KARTE Datahubのクエリ実行結果をEventBridgeを通じて連携(開発中)
KARTE Datahub に蓄積される様々なデータに対しSQLクエリを実行し、その結果をリアルタイムかつシームレスにAWSに送ることができます。
KARTE Datahub ではKARTEでリアルタイムに蓄積されるカスタマーデータに加え、AWS上に保存されているお客様の環境のデータも取り込むことができ、それらのデータに対し横断的にクエリを投げることができます。また、そのクエリ結果はAmazon EventBridgeを利用することで、AWSに簡単に送信することができ、さまざまなサービスでの活用が可能となります。
下記のようなユースケースが想定されます。
- ECサイトで取り扱っている商品でどのようなカテゴリーの商品がよく見られていて購入されているかを集計し、その集計結果をお客様の管理画面で閲覧する
- Amazon S3に商品に関する詳細情報を保存しておき、カスタマーデータの閲覧・購買イベントデータとジョインすることで集計が可能
- お客様が管理画面を開いたタイミングでクエリ実行APIを実行し、その結果をAmazon EventBridgeを通してお客様のサーバーに送信する
リファレンス
- AWS様との取り組みに関連したPLAIDのページ
- EventBridge連携のサポートサイト
- PLAIDが提供しているQuickStart
- QuickStartのテンプレートファイル(Github)
- 「KARTE Entry Series for SaaS」パッケージ