Adicionar endpoints ao Amazon Pinpoint
Um endpoint representa um destino para o qual é possível enviar mensagens, como um dispositivo móvel, um número de telefone ou um endereço de e-mail. Para poder enviar mensagens a um membro de seu público-alvo, você deve definir um ou mais endpoints para esse indivíduo.
Conforme você adiciona endpoints ao Amazon Pinpoint, ele cresce como um repositório de dados do público-alvo. Esses dados consistem em:
Ao definir um endpoint, você especifica o canal e o endereço. O canal é o tipo de plataforma que você usa para enviar mensagens para o endpoint. Os exemplos de canais incluem um serviço de notificação por push, SMS ou e-mail. O endereço especifica para onde enviar mensagem ao endpoint, como um token de dispositivo, um número de telefone ou um endereço de e-mail.
Para adicionar mais detalhes sobre o seu público-alvo, você pode enriquecer seus endpoints com atributos padrão e personalizados. Esses atributos incluem dados sobre seus usuários, as preferências e os dispositivos deles, as versões do cliente que eles usam ou seus locais. Quando adiciona esse tipo de dados a seus endpoints, você pode:
-
Visualizar gráficos sobre seu público-alvo no console do Amazon Pinpoint.
-
Segmentar seu público-alvo com base em atributos de endpoint para que possa enviar suas mensagens ao público-alvo correto.
-
Personalizar suas mensagens incorporando variáveis na mensagem que são substituídas pelos valores dos atributos do endpoint.
Um aplicativo cliente móvel ou JavaScript registra endpoints automaticamente se você integrar o Amazon Pinpoint usando os SDKs do AWS Mobile ou a biblioteca Amplify JavaScript da AWS. O cliente registra um endpoint para cada novo usuário e atualiza endpoints para usuários que retornam. Para registrar endpoints de um cliente móvel ou JavaScript, consulte Registrar endpoints do Amazon Pinpoint no seu aplicativo.
Exemplos
Os exemplos a seguir mostram como adicionar um endpoint a um projeto do Amazon Pinpoint. O endpoint representa um membro do público-alvo que vive em Seattle e usa um iPhone. Essa pessoa pode receber mensagens por meio do Apple Push Notification service (APNs). O endereço do endpoint é o token do dispositivo que é fornecido pelo APNs.
- AWS CLI
-
Você pode usar o Amazon Pinpoint executando comandos com a AWS CLI.
exemplo Comando Update endpoint
Para adicionar ou atualizar um endpoint, use o comando update-endpoint:
$
aws pinpoint update-endpoint \
>
--application-id application-id
\
>
--endpoint-id endpoint-id
\
>
--endpoint-request file://endpoint-request-file.json
Em que:
-
application-id é o ID do projeto do Amazon Pinpoint no qual você está adicionando ou atualizando um endpoint.
-
example-endpoint é o ID que você está atribuindo a um novo endpoint ou o ID de um endpoint existente que você está atualizando.
-
endpoint-request-file.json é o caminho para um arquivo JSON local que contém a entrada para o parâmetro --endpoint-request
.
exemplo Arquivo de solicitação de endpoint
O comando update-endpoint
de exemplo usa um arquivo JSON como o argumento para o parâmetro --endpoint-request
. Esse arquivo contém uma definição de endpoint, como a seguinte:
{
"ChannelType": "APNS",
"Address": "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f",
"Attributes": {
"Interests": [
"Technology",
"Music",
"Travel"
]
},
"Metrics": {
"technology_interest_level": 9.0,
"music_interest_level": 6.0,
"travel_interest_level": 4.0
},
"Demographic": {
"AppVersion": "1.0",
"Make": "apple",
"Model": "iPhone",
"ModelVersion": "8",
"Platform": "ios",
"PlatformVersion": "11.3.1",
"Timezone": "America/Los_Angeles"
},
"Location": {
"Country": "US",
"City": "Seattle",
"PostalCode": "98121",
"Latitude": 47.61,
"Longitude": -122.33
}
}
Para os atributos que você pode usar para definir um endpoint, consulte o esquema EndpointRequest na Referência da API do Amazon Pinpoint.
- AWS SDK for Java
-
Você pode usar a API do Amazon Pinpoint em seus aplicativos Java usando o cliente fornecido pelo AWS SDK for Java.
exemplo Código
Para adicionar um endpoint, inicialize um objeto EndpointRequest
e passe-o para o método updateEndpoint
do cliente do AmazonPinpoint
:
import com.amazonaws.regions.Regions;
import com.amazonaws.services.pinpoint.AmazonPinpoint;
import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;
import com.amazonaws.services.pinpoint.model.*;
import java.util.Arrays;
public class AddExampleEndpoint {
public static void main(String[] args) {
final String USAGE = "\n" +
"AddExampleEndpoint - Adds an example endpoint to an Amazon Pinpoint application." +
"Usage: AddExampleEndpoint <applicationId>" +
"Where:\n" +
" applicationId - The ID of the Amazon Pinpoint application to add the example " +
"endpoint to.";
if (args.length < 1) {
System.out.println(USAGE);
System.exit(1);
}
String applicationId = args[0];
// The device token assigned to the user's device by Apple Push Notification
// service (APNs).
String deviceToken = "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f";
// Initializes an endpoint definition with channel type and address.
EndpointRequest wangXiulansIphoneEndpoint = new EndpointRequest()
.withChannelType(ChannelType.APNS)
.withAddress(deviceToken);
// Adds custom attributes to the endpoint.
wangXiulansIphoneEndpoint.addAttributesEntry("interests", Arrays.asList(
"technology",
"music",
"travel"));
// Adds custom metrics to the endpoint.
wangXiulansIphoneEndpoint.addMetricsEntry("technology_interest_level", 9.0);
wangXiulansIphoneEndpoint.addMetricsEntry("music_interest_level", 6.0);
wangXiulansIphoneEndpoint.addMetricsEntry("travel_interest_level", 4.0);
// Adds standard demographic attributes.
wangXiulansIphoneEndpoint.setDemographic(new EndpointDemographic()
.withAppVersion("1.0")
.withMake("apple")
.withModel("iPhone")
.withModelVersion("8")
.withPlatform("ios")
.withPlatformVersion("11.3.1")
.withTimezone("America/Los_Angeles"));
// Adds standard location attributes.
wangXiulansIphoneEndpoint.setLocation(new EndpointLocation()
.withCountry("US")
.withCity("Seattle")
.withPostalCode("98121")
.withLatitude(47.61)
.withLongitude(-122.33));
// Initializes the Amazon Pinpoint client.
AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard()
.withRegion(Regions.US_EAST_1).build();
// Updates or creates the endpoint with Amazon Pinpoint.
UpdateEndpointResult result = pinpointClient.updateEndpoint(new UpdateEndpointRequest()
.withApplicationId(applicationId)
.withEndpointId("example_endpoint")
.withEndpointRequest(wangXiulansIphoneEndpoint));
System.out.format("Update endpoint result: %s\n", result.getMessageBody().getMessage());
}
}
- HTTP
-
Você pode usar o Amazon Pinpoint fazendo solicitações HTTP diretamente para a API REST.
exemplo Solicitação PUT endpoint
Para adicionar um endpoint, envie uma solicitação PUT
para o recurso Endpoint no seguinte URI:
/v1/apps/application-id
/endpoints/endpoint-id
Em que:
-
application-id é o ID do projeto do Amazon Pinpoint no qual você está adicionando ou atualizando um endpoint.
-
endpoint-id é o ID que você está atribuindo a um novo endpoint ou o ID de um endpoint existente que você está atualizando.
Em sua solicitação, inclua os cabeçalhos necessários e forneça o JSON EndpointRequest como o corpo:
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
X-Amz-Date: 20180428T004705Z
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180428/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;content-length;content-type;host;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170
Cache-Control: no-cache
{
"ChannelType": "APNS",
"Address": "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f",
"Attributes": {
"Interests": [
"Technology",
"Music",
"Travel"
]
},
"Metrics": {
"technology_interest_level": 9.0,
"music_interest_level": 6.0,
"travel_interest_level": 4.0
},
"Demographic": {
"AppVersion": "1.0",
"Make": "apple",
"Model": "iPhone",
"ModelVersion": "8",
"Platform": "ios",
"PlatformVersion": "11.3.1",
"Timezone": "America/Los_Angeles"
},
"Location": {
"Country": "US",
"City": "Seattle",
"PostalCode": "98121",
"Latitude": 47.61,
"Longitude": -122.33
}
}
Se sua solicitação for bem-sucedida, você receberá uma resposta como a seguinte:
{
"RequestID": "67e572ed-41d5-11e8-9dc5-db288f3cbb72",
"Message": "Accepted"
}
Para obter mais informações sobre o recurso Endpoint na API do Amazon Pinpoint, incluindo os métodos HTTP e os parâmetros de solicitação compatíveis, consulte Endpoint na Referência da API do Amazon Pinpoint.
Para obter mais informações sobre como personalizar mensagens com variáveis, consulte Variáveis de mensagens no Guia do usuário do Amazon Pinpoint.
Para obter informações sobre as cotas que se aplicam a endpoints, como o número de atributos que você pode atribuir, consulte Cotas de endpoint.