Skip to content

ユーザー属性CSVをBrazeにインポートする

以下の記事では、ユーザー追跡エンドポイントを通じて CSV ファイルからユーザー属性データを直接 Braze にポストする Lambda プロセスを簡単にデプロイできるサーバーレスアプリケーションを紹介しています。このアプリケーションの統合は、我々の Amperity パートナーによってテストされ、GitHub で確認できます。

このプロセスは、設定された AWS S3 バケットに CSV ファイルをアップロードすると即座に起動します。大きなファイルやアップロードを扱うことができますが、Lambda の時間制限により、関数は10分後に実行を停止します。このプロセスは、ファイルの残りの部分を処理するために、別の Lambda インスタンスを起動します。ファンクションのタイミングについての詳細は、推定実行時間をチェックしてほしい。

CSVユーザー属性

更新されるユーザー属性は、次の .csv 形式である必要があります。

1
2
external_id,attr_1,...,attr_n
userID,value_1,...,value_n

最初の列には更新するユーザーの外部 ID を指定し、次の列には属性名と値を指定する必要があります。指定する属性の数は異なる場合があります。処理するCSVファイルがこのフォーマットに従っていない場合、この関数は失敗する。

CSVファイルの例:

1
2
3
external_id,Loyalty Points,Last Brand Purchased
abc123,1982,Solomon
def456,578,Hunter-Hayes

CSV処理

配列に含まれる値(例:"['Value1', 'Value2']" )は自動的に構造化解除され、配列の文字列表現ではなく、配列でAPIに送信される。

要件

この Lambda 関数を正常に実行するには、次のものが必要です。

  • S3とLambdaサービスを利用するためのAWSアカウント
  • Braze サーバーに接続するための Braze API URL
  • /users/track エンドポイントにリクエストを送信できるようにするためのBraze API キー
  • 更新するユーザーの外部IDと属性を含むCSVファイル

API URL、または REST エンドポイントは、Braze API ドキュメントおよびダッシュボードにあります。

  • API ドキュメント
    APIドキュメントに従って、BrazeインスタンスURLをRESTエンドポイントURLに一致させるだけでよい。例えば、ダッシュボードにdashboard-01.braze.com/ URLが表示されている場合、RESTエンドポイントはhttps://rest.iad-01.braze.com

  • ダッシュボード
    [設定の管理] ページに移動し SDK エンドポイントを見つけます。sdkrest に置き換えて、REST エンドポイントを取得します。例えば、sdk.iad-01.braze.com と表示された場合、APIのURLは次のようになる。 rest.iad-01.braze.com

Brazeサーバーに接続するには、APIキーが必要である。この一意の識別子により、Brazeはあなたの身元を確認し、データをアップロードすることができる。

APIキーを取得するには、「設定」>「APIキー」を選択する。

/users/track エンドポイントに投稿する権限を持つ API キーが必要です。APIキーの1つがそのエンドポイントをサポートしていることが分かっていれば、そのキーを使うことができる。

新しいものを作成する場合は、[新規 API キー作成] をクリックします。次に、API キーに名前を付け、[ユーザーデータ] エンドポイントグループの下の [users.track] を選択し、[API キーの保存] をクリックします。

使用上の注意

概要
  1. AWSサーバーレスアプリケーションリポジトリからBrazeの一般公開されているCSV処理Lambdaをデプロイする
  2. 新しく作成したS3バケットに、ユーザー属性のCSVファイルをドロップする
  3. ユーザーは自動的にBrazeにインポートされる

デプロイする

ユーザー属性 CSV ファイルの処理を開始するには、処理を自動的に行うサーバーレスアプリケーションをデプロイする必要があります。このアプリケーションは、デプロイを成功させるために以下のリソースを自動的に作成する:

  • ラムダ関数
  • Lambdaプロセスが読み込み可能なCSVファイル用のS3バケット_(注意:このLambda関数は、.csv 拡張子ファイルの通知のみを受け取る)_
  • S3 バケットの作成を許可するロール
  • Lambdaが新しいバケットでS3のアップロードイベントを受け取ることを許可するポリシー

アプリケーションへの直接リンクをたどるか、AWS Serverless Application Repository を開いて「braze-user-attribute-import」を検索します。なお、このアプリケーションを表示するには、Show apps that create custom IAM roles and resource policies のチェックボックスをオンにしなければなりません。アプリケーションは、ラムダが新しく作成されたS3バケットから読み込むためのポリシーを作成する。

[デプロイ] をクリックし、AWS に必要なリソースをすべて作成させます。

デプロイを監視し、CloudFormation 内にスタック (つまり、必要なすべてのリソース) が作成されていることを確認できます。serverlessrepo-braze-user-attribute-import」というスタックを見つける。ステータスCREATE_COMPLETE に変わったら、その機能は使用可能です。スタックをクリックして「リソース」を開き、さまざまなリソースが作成されるのを見ることができる。

以下のリソースが作成された:

  • S3バケット-braze-user-csv-import-aaa123 という名前のバケット。aaa123 はランダムに生成された文字列である。
  • Lambda 関数- braze-user-attribute-import という名前の Lambda 関数
  • IAM ロール- Lambda が S3 から読み取りを行い、関数出力をログに記録することを許可する braze-user-csv-import-BrazeUserCSVImportRole という名前のポリシー

実行

この機能を実行するには、新しく作成したS3バケットにユーザー属性CSVファイルをドロップする。

モニタリングとロギング

関数が正常に実行されていることを確認するには、関数の実行ログを読めばいい。Braze ユーザー CSV インポート関数を開き (コンソールの Lambda リストから選択)、[Monitor] に移動します。ここでは、その関数の実行履歴を見ることができる。出力を読み取るには、[CloudWatch でログを表示] をクリックします。チェックしたいラムダ実行イベントを選択する。

推定実行時間

2048 MB ラムダ関数

行数 実行時間
10k 3s
100k 30s
1M 5分
5M 30分

既存の関数を更新する

すでにアプリケーションをデプロイしていて、新しいバージョンがリポジトリにある場合は、初めてデプロイするのと同じように、機能を再デプロイすることでアップデートできる。つまり、Braze API キーと Braze API URL を再度渡す必要があります。アップデートはファンクションコードを上書きするだけだ。S3 バケットなどの他の既存のリソースを変更または削除することはありません。

致命的なエラー

ファイルのさらなる処理を妨げる予期しないエラーが発生した場合は、プログラムがファイルの処理を停止したポイントから Lambda を再起動するために使用できるイベントがログに記録されます (「モニタリングとロギング」で説明されている CloudWatch からアクセス可能)。データ・ポイントを保存するために、同じデータを再インポートしないことが重要である。これを行う手順については、GitHub リポジトリを参照してください。

New Stuff!