Aprenda a usar a API para saber mais sobre campanhas, dispositivos e perfis de usuário
Existem vários métodos disponíveis para você extrair dados relacionados a campanhas e usuários para quem você enviou campanhas. Alguns casos de uso comuns estão descritos abaixo.
Verifique se uma campanha está ativa
O método mais simples relacionado às campanhas é o método de informações de campanha . Isso é comumente usado para verificar se os templates de campanha estão ativos e para validar o conteúdo antes de executá-los:
curl --request POST \
--url https://external-api.xtremepush.com/api/external/info/campaign \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"apptoken": "APP_TOKEN",
"id": "CAMPAIGN_ID"
}'Você pode usá-lo com opções de seleção se só precisar verificar certos parâmetros:
curl --request POST \
--url https://external-api.xtremepush.com/api/external/info/campaign \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"apptoken": "APP_TOKEN",
"id": "CAMPAIGN_ID",
"select": ["active", "messages", "push_text"]
}'Esta é uma resposta de exemplo para um template de campanha ativa com conteúdo push para iOS e Android:
{
"success": true,
"code": 200,
"model": {
"active": 0,
"messages": {
"1": {
"push_text": "Hi {{first_name}}, {{amount}} has been debited from your account. Tap here if you did not approve this."
},
"2": {
"push_text": "Hi {{first_name}}, {{amount}} has been debited from your account. Tap here if you did not approve this."
},
"3": {
"push_text": null
},
"6": {
"push_text": null
},
"4": [],
"7": [],
"8": [],
"9": [],
"10": [],
"11": []
}
}
}Verifique por erros ou informações para uma campanha específica
Se você quiser verificar periodicamente a entrega de uma campanha para usuários individuais, pode usar o método push para a lista de dispositivos.
O exemplo abaixo retornará quaisquer mensagens de erro para notificações que não foram entregues referenciadas pelo ID do dispositivo Xtremepush:
curl --request POST \
--url https://external-api.xtremepush.com/api/external/list/push-devices \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"apptoken": "APP_TOKEN",
"condition": [
["campaign_id", "=", "CAMPAIGN_ID"],
["error", "=" , 1]
],
"select": ["campaign_id", "action_id", "message", "create_time", "device_id", "error_message"],
"order": ["id DESC", "create_time"],
"limit": 50,
"offset": 0
}'A resposta mostrará se uma mensagem não foi entregue e pode ajudar você a entender o motivo, como o aplicativo ter sido desinstalado no dispositivo do usuário, que é um dos motivos mais comuns para um esforço individual falhar. Exemplo de resposta com um erro de desinstalação de aplicativo abaixo:
{
"code": 200,
"success": true,
"data": [{
"action_id": 759147,
"campaign_id": 245624,
"create_time": 1464355910,
"device_id": 459923,
"error_message": "Application is Uninstalled"
}],
}No caso de canais baseados em perfil (como e-mail ou SMS), você pode usar o pedido a seguir para revisar erros individuais. Isso não usa o ID do dispositivo.
curl --request POST \
--url https://external-api.xtremepush.com/api/external/list/push-devices \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"apptoken": "APP_TOKEN",
"condition": [
["campaign_id", "=", "CAMPAIGN_ID"],
["error", "=" , 1]
],
"select": ["campaign_id", "action_id", "message_type_name", "message_params", "create_time", "error", "error_message"],
"order": ["id DESC", "create_time"],
"limit": 50,
"offset": 0
}'Esta resposta de exemplo mostra um modelo de campanha ativa com conteúdo de e-mail, onde alguns e-mails não puderam ser enviados devido à ausência de parâmetros exigidos:
{
"success": true,
"code": 200,
"data": [{
"action_id": 313049676,
"campaign_id": 9661067,
"create_time": 1561385901,
"error": 1,
"error_message": "Required values are not set",
"message_params": {"first_name": "Sam", "ref_number": "1234", "user.email": "[[email protected]](mailto:[email protected])"},
"message_type_name": "email"
}, {
"action_id": 311506802,
"campaign_id": 9661067,
"create_time": 1561314578,
"error": 1,
"error_message": "Required values are not set",
"message_params": {"user.email": "[[email protected]](mailto:[email protected])"},
"message_type_name": "email"
}]
}Você só pode obter informações sobre mensagens entregues mudando a condição de erro para ["error", "=" , 0]. Remover o select parâmetro daria todas as informações das mensagens recentes bem-sucedidas. Se você quiser dados sobre mensagens abertas, pode usar uma ["open", "=" , 1] condição para filtrar dados em mensagens abertas. Por exemplo:
curl --request POST \
--url https://external-api.xtremepush.com/api/external/list/push-devices \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"apptoken": "o7Sea-OzAGHtJeJHuD53Obyl8sbMuFTk",
"condition": [
["campaign_id", "=", "53573097"],
["open", "=" , 1]
],
"select": ["campaign_id", "message", "create_time", "open_time", "device_id"],
"order": ["id DESC", "create_time"],
"limit": 50,
"offset": 0
}'Exemplo de resposta abaixo:
{
"success": true,
"code": 200,
"data": [{
"campaign_id": 53573097,
"device_id": 1914404819,
"open_time": 1620187760,
"create_time": 1619887871
}, {
"campaign_id": 53573097,
"device_id": 1914404819,
"open_time": 1619801909,
"create_time": 1619801469
}]
}O ID do dispositivo nos exemplos acima é o ID do dispositivo Xtremepush, mas você também pode incluir o ID do usuário na sua solicitação ("user_id").
Obtenha informações sobre dispositivos
Você pode consultar as informações do dispositivo ou listar métodos para obter informações sobre dispositivos, por exemplo, para verificar se os dispositivos ainda são endereçáveis para notificações push. Para verificar um ID específico de dispositivo Xtremepush, você pode usar o endpoint de informações do dispositivo com uma solicitação como a seguinte:
curl --request POST \
--url https://external-api.xtremepush.com/api/external/info/device \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"apptoken": "APP_TOKEN",
"id": 626393090
}'Isso permitirá que você obtenha informações úteis sobre o dispositivo, como: se ele está atualmente endereçável para notificações push (ativo e endereçável == 1), quando o app foi aberto pela última vez nesse dispositivo (open_time), outros IDs disponíveis como IDFA ou ID de anúncio Android, informações do dispositivo etc.
Exemplo de resposta abaixo:
{
"success": true,
"code": 200,
"model": {
"id": 626393090,
"project_id": PROJECT_ID,
"application_id": 4069,
"profile_id": "11e9c59d08df7bd3b7090a22275e6966",
"create_time": 1566561386,
"deactivate_time": null,
"open_time": 1566577961,
"token": "60549f4dc442ce5eb101158da3240d1990a1f5fbbd96ce1d957f20e69421f8ed",
"push_sender_id": null,
"push_keys": null,
"active": 1,
"addressable": 1,
"subscription": 1,
"type": "ios",
"environment": "production",
"email": null,
"email_addressable": 0,
"email_subscription": 1,
"device_id": "73F81292-7A1F-4EBF-B01E-1783B3D46C21",
"device_idfv": "73F81292-7A1F-4EBF-B01E-1783B3D46C21",
"device_idfa": "4BD39DFC-198A-484C-A372-B5CA588FF9F2",
"device_adid": null,
"device_type": "iPhone",
"device_model": "iPhone10,5",
"device_model_name": "iPhone 8 Plus",
"device_os": "12.4",
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
"name": "Maria’s iPhone",
"timezone": "Europe/Dublin",
"country": "IE",
"language": "en",
"language_app": "",
"browser": null,
"browser_type": null,
"browser_version": null,
"browser_opt_version": null,
"browser_os_version": null,
"browser_os_opt_version": null,
"carrier_name": "vodafone IE",
"app_version": "1.0",
"lib_version": "i-23082019-aib",
"sw_version": null,
"external_id": "AN_ID_FROM_YOUR_SYSTEM",
"ga_id": null,
"key": "TLhYyU-2Qk6sSo3qfSnVsF02ecoGYely",
"geo": 0,
"import": 0
}
}Se você quiser verificar periodicamente todos os dispositivos para manter os dados dos usuários endereçáveis, então pode usar o endpoint de dispositivos com paginação e os campos necessários:
curl --request POST \
--url https://external-api.xtremepush.com/api/external/list/device \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"apptoken": "APP_TOKEN",
"select": ["active", "addressable", "external_id", "id", "open_time", "type"],
"order": ["id DESC", "create_time"],
"limit": 50,
"offset": 0
}'Exemplo de resposta abaixo:
{
"success": true,
"code": 200,
"data": [{
"id": 2453832008,
"open_time": 1623233688,
"active": 1,
"addressable": 1,
"type": "android",
"external_id": null
}, {
"id": 2452826033,
"open_time": 1623134275,
"active": 1,
"addressable": 0,
"type": "web",
"external_id": null
}]
}Obtenha informações sobre os perfis dos usuários
Se você quiser verificar periodicamente todos os perfis para manter dados sobre usuários endereçáveis/inscritos, pode usar o método de perfil de lista com paginação e os campos que precisa. Por exemplo, a seguinte chamada verificará se há usuários que podem ser endereçáveis por e-mail, mas não estão inscritos para e-mail:
curl --request POST \
--url https://external-api.xtremepush.com/api/external/list/profile \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"apptoken": "APP_TOKEN",
"select": ["email", "email_addressable", "email_subscription", "user_id"],
"condition": [
["email_subscription", "=", 0],
["email_addressable", "=", 1]],
"order": ["id ASC", "id"],
"limit": 50,
"offset": 0
}'Exemplo de resposta abaixo:
{
"success": true,
"code": 200,
"data": [{
"user_id": "1235",
"email": "[email protected]",
"email_addressable": 1,
"email_subscription": 0
}]
}