ユーザーおよび Amazon Pinpoint エンドポイントの関連付け - Amazon Pinpoint

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユーザーおよび Amazon Pinpoint エンドポイントの関連付け

エンドポイントには、ユーザーを定義する属性を含めることができます。このユーザーは、対象者のユーザーを表します。例えば、ユーザーはモバイルアプリケーションをインストールしたユーザー、またはウェブサイトのアカウントを持つユーザーを表します。

ユーザーを定義するには、一意の ID を指定し、オプションでカスタムのユーザー属性を指定します。複数のデバイスでアプリを使用する場合、または複数のアドレスでメッセージを送信できる場合は、同一のユーザー ID を複数のエンドポイントに割り当てることができます。この場合、ユーザー属性は、Amazon Pinpoint によってこれらのエンドポイント間で同期されます。そのため、1 つのエンドポイントにユーザー属性を追加すると、その属性は Amazon Pinpoint によって、同一のユーザー ID が含まれる各エンドポイントに追加されます。

個々の属性に適用するデータを追跡するには、ユーザー属性を追加します。この属性は、ユーザーが使用しているデバイスによって異なります。例えば、ユーザーの名前、年齢、アカウントステータスの属性を追加することができます。

ヒント

アプリケーションで Amazon Cognito ユーザープールを使用してユーザー認証を行っている場合、Amazon Cognito はユーザー ID と属性を自動的にエンドポイントに追加します。Amazon Cognito は、ユーザープールのユーザーに割り当てられている sub をエンドポイントユーザー ID 値に割り当てます。Amazon Cognito でユーザーを追加する方法については、『Amazon Cognito デベロッパーガイド』の「Using amazon pinpoint analytics with amazon cognito user pools」を参照してください。

エンドポイントにユーザー定義を追加すると、さらに多くの方法で対象者を分類することができます。セグメントの定義は、ユーザー属性に基づき、またはユーザー ID のリストをインポートして行うことができます。ユーザーに基づき、セグメントにメッセージを送信する場合の送信先の例として、セグメント内の各ユーザー ID に関連付けられている各エンドポイントがあります。

また、メッセージは他の方法で対象者に送信することもできます。キャンペーンを使用してユーザーのセグメントにメッセージを送信したり、ユーザー ID のリストに直接メッセージを送信したりできます。メッセージをパーソナライズするには、ユーザーの属性値に置き換えられているメッセージ変数を含めることができます。

エンドポイントにユーザー定義を追加する方法を以下の例に示します。

AWS CLI

Amazon Pinpoint を使用するには、AWS CLI でコマンドを実行します。

例 Update Endpoint コマンド

ユーザーをエンドポイントに追加するには、update-endpoint コマンドを使用します。--endpoint-request パラメータでは、新しいエンドポイントを定義することができます。この定義でユーザーを含めることができます。または、変更する属性のみ指定して、既存のエンドポイントを更新します。ユーザー属性のみ指定して、既存のエンドポイントにユーザーを追加する方法を以下の例に示します。

$ aws pinpoint update-endpoint \ > --application-id application-id \ > --endpoint-id endpoint-id \ > --endpoint-request file://endpoint-request-file.json

実行する条件は以下のとおりです。

  • application-id は、エンドポイントを追加または更新する Amazon Pinpoint プロジェクトの ID です。

  • endpoint-id は、新しいエンドポイントに割り当てる ID、または更新するエンドポイントの ID です。

  • endpoint-request-file.json は、ローカル JSON ファイルへのファイルパスを表しており、--endpoint-request パラメータの入力を含みます。

例 エンドポイントリクエストファイル

例の update-endpoint コマンドでは、--endpoint-request パラメータの引数として、JSON ファイルを使用します。このファイルには、次のようなユーザー定義が含まれます。

{ "User":{ "UserId":"example_user", "UserAttributes":{ "FirstName":["Wang"], "LastName":["Xiulan"], "Gender":["Female"], "Age":["39"] } } }

ユーザーの定義に使用する属性については、Amazon Pinpoint API リファレンスの「EndpointRequest スキーマ」の「User オブジェクト」を参照してください。

AWS SDK for Java

AWS SDK for Java が提供するクライアントにより、Java アプリケーションで Amazon Pinpoint API を使用できます。

例 Code

エンドポイントにユーザーを追加するには、EndpointRequest オブジェクトを初期化し、AmazonPinpoint クライアントの updateEndpoint メソッドに渡します。このオブジェクトを使用して新しいエンドポイントを定義することができます。この定義でユーザーを含めることができます。または、変更するプロパティのみ更新して、既存のエンドポイントを更新します。次の例では、EndpointUser オブジェクトを EndpointRequest オブジェクトに追加して、ユーザーを既存のエンドポイントに追加します。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.pinpoint.PinpointClient; import software.amazon.awssdk.services.pinpoint.model.EndpointRequest; import software.amazon.awssdk.services.pinpoint.model.EndpointUser; import software.amazon.awssdk.services.pinpoint.model.ChannelType; import software.amazon.awssdk.services.pinpoint.model.UpdateEndpointRequest; import software.amazon.awssdk.services.pinpoint.model.UpdateEndpointResponse; import software.amazon.awssdk.services.pinpoint.model.PinpointException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
public static void updatePinpointEndpoint(PinpointClient pinpoint, String applicationId, String endPointId) { try { List<String> wangXiList = new ArrayList<>(); wangXiList.add("cooking"); wangXiList.add("running"); wangXiList.add("swimming"); Map myMapWang = new HashMap<>(); myMapWang.put("interests", wangXiList); List<String> myNameWang = new ArrayList<>(); myNameWang.add("Wang "); myNameWang.add("Xiulan"); Map wangName = new HashMap<>(); wangName.put("name", myNameWang); EndpointUser wangMajor = EndpointUser.builder() .userId("example_user_10") .userAttributes(wangName) .build(); // Create an EndpointBatchItem object for Mary Major. EndpointRequest wangXiulanEndpoint = EndpointRequest.builder() .channelType(ChannelType.EMAIL) .address("wang_xiulan@example.com") .attributes(myMapWang) .user(wangMajor) .build(); // Adds multiple endpoint definitions to a single request object. UpdateEndpointRequest endpointList = UpdateEndpointRequest.builder() .applicationId(applicationId) .endpointRequest(wangXiulanEndpoint) .endpointId(endPointId) .build(); UpdateEndpointResponse result = pinpoint.updateEndpoint(endpointList); System.out.format("Update endpoint result: %s\n", result.messageBody().message()); } catch (PinpointException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

SDK の完全な例については、「GitHub」の「AddExampleUser.java」を参照してください。

HTTP

HTTP リクエストを直接 REST API に送信して Amazon Pinpoint を使用することができます。

例 ユーザー定義を含む Put Endpoint リクエスト

エンドポイントにユーザーを送信するには、次の URI の Endpoint リソースに対して PUT リクエストを発行します。

/v1/apps/application-id/endpoints/endpoint-id

実行する条件は以下のとおりです。

  • application-id は、エンドポイントを追加または更新する Amazon Pinpoint プロジェクトの ID です。

  • endpoint-id は、新しいエンドポイントに割り当てる ID、または更新するエンドポイントの ID です。

リクエストに、必要なヘッダーを含め、EndpointRequest JSON を本文として指定します。リクエストボディで、新しいエンドポイントを定義することができます。この定義でユーザーを含めることができます。または、変更する属性のみ指定して、既存のエンドポイントを更新します。ユーザー属性のみ指定して、既存のエンドポイントにユーザーを追加する方法を以下の例に示します。

PUT /v1/apps/application_id/endpoints/example_endpoint HTTP/1.1 Host: pinpoint.us-east-1.amazonaws.com X-Amz-Date: 20180415T182538Z Content-Type: application/json Accept: application/json Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180501/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;content-length;content-type;host;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170 Cache-Control: no-cache { "User":{ "UserId":"example_user", "UserAttributes":{ "FirstName":"Wang", "LastName":"Xiulan", "Gender":"Female", "Age":"39" } } }

リクエストが成功すると、次のようなレスポンスが表示されます。

{ "RequestID": "67e572ed-41d5-11e8-9dc5-db288f3cbb72", "Message": "Accepted" }

Amazon Pinpoint API のエンドポイントリソースに関する詳細 (例: サポートされている HTTP メソッドやリクエストパラメータ) については、「Amazon Pinpoint API リファレンス」の「エンドポイント」を参照してください。

変数を使用したメッセージのパーソナライズの詳細については、『Amazon Pinpoint ユーザーガイド』の「Message variables」を参照してください。

ユーザー ID のリストをインポートしてセグメントを定義するには、『Amazon Pinpoint ユーザーガイド』の「Importing segments」を参照してください。

ダイレクトメッセージを最大 100 のユーザー ID に送信するには、「Amazon Pinpoint API リファレンス」の「ユーザーメッセージ」を参照してください。

エンドポイントに適用するクォータに関する情報 (割り当て可能なユーザー属性の数など) については、「エンドポイントクォータ」を参照してください。