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 開発者ガイド』の「Amazon Cognito ユーザープールを使用して Amazon Pinpoint 分析を使用する」を参照してください。

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

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

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

AWS CLIAWS SDK for JavaHTTP
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": { "name": [ "Wang", "Xiulan" ], "gender": [ "female" ], "age": [ "39" ] } } }

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

AWS SDK for Java

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

例 コード

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

import com.amazonaws.regions.Regions; import com.amazonaws.services.pinpoint.AmazonPinpoint; import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder; import com.amazonaws.services.pinpoint.model.EndpointRequest; import com.amazonaws.services.pinpoint.model.EndpointUser; import com.amazonaws.services.pinpoint.model.UpdateEndpointRequest; import com.amazonaws.services.pinpoint.model.UpdateEndpointResult; import java.util.Arrays; import java.util.Collections; public class AddExampleUser { public static void main(String[] args) { final String USAGE = "\n" + "AddExampleUser - Adds a user definition to the specified Amazon Pinpoint endpoint." + "Usage: AddExampleUser <endpointId> <applicationId>" + "Where:\n" + " endpointId - The ID of the endpoint to add the user to." + " applicationId - The ID of the Amazon Pinpoint application that contains the endpoint."; if (args.length < 1) { System.out.println(USAGE); System.exit(1); } String endpointId = args[0]; String applicationId = args[1]; // Creates a new user definition. EndpointUser wangXiulan = new EndpointUser().withUserId("example_user"); // Assigns custom user attributes. wangXiulan.addUserAttributesEntry("name", Arrays.asList("Wang", "Xiulan")); wangXiulan.addUserAttributesEntry("gender", Collections.singletonList("female")); wangXiulan.addUserAttributesEntry("age", Collections.singletonList("39")); // Adds the user definition to the EndpointRequest that is passed to the Amazon Pinpoint client. EndpointRequest wangXiulansIphone = new EndpointRequest() .withUser(wangXiulan); // Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build(); // Updates the specified endpoint with Amazon Pinpoint. UpdateEndpointResult result = pinpointClient.updateEndpoint(new UpdateEndpointRequest() .withEndpointRequest(wangXiulansIphone) .withApplicationId(applicationId) .withEndpointId(endpointId)); System.out.format("Update endpoint result: %s\n", result.getMessageBody().getMessage()); } }
HTTP

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

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

エンドポイントにユーザーを送信するには、次の URI のエンドポイントリソースに対して 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": { "name": [ "Wang", "Xiulan" ], "gender": [ "female" ], "age": [ "39" ] } } }

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

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

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

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

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

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

エンドポイントに適用される制限 (例: 割り当て可能なユーザー属性の数) については、「エンドポイント制限」を参照してください。

このページの内容: