Estatísticas de mensagens
Esses métodos retornam estatísticas das mensagens que você enviou. Use-os para listar as mensagens enviadas, obter métricas por hora de uma mensagem, ver em que ponto do funil de entrega uma mensagem perdeu audiência, ler os logs de mensagens por dispositivo e contar os cliques em links nos e-mails.
messages:list
Anchor link toExibe a lista de mensagens enviadas.
POST https://api.pushwoosh.com/api/v2/messages:list
Cabeçalhos
Anchor link to| Nome | Obrigatório | Descrição |
|---|---|---|
Authorization | Sim | Token da API do servidor. Deve ser fornecido no seguinte formato: Authorization: Api <Server Key>. |
Parâmetros do corpo da solicitação
Anchor link to| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
platforms | Não | Array | Plataformas de mensagens. Valores possíveis: "IOS", "ANDROID", "OSX", "WINDOWS", "AMAZON", "SAFARI", "CHROME", "FIREFOX", "IE", "EMAIL", "HUAWEI_ANDROID", "SMS". |
date_range | Não | Objeto | Período do relatório, filtrado pela data de criação da mensagem. date_from e date_to devem seguir o formato YYYY-MM-DD (por exemplo, "2000-01-01"); ambos os dias são incluídos por completo, então date_from e date_to definidos para a mesma data retornam aquele dia inteiro. As datas são interpretadas em UTC, não no fuso horário da sua conta. |
campaign | Não | String | Código da campanha |
filters | Sim | Objeto | Filtros de mensagem. |
source | Não | String | Origem da mensagem. Por exemplo: AB_TEST, API, AUTO_PUSH, CP, CSV, CUSTOMER_JOURNEY, EMAIL_API, EMAIL_CP, GEO_ZONE, PUSH_ON_EVENT, RSS. |
messages_codes | Não | Array | Códigos de mensagem obtidos das respostas da API /createMessage. |
messages_ids | Não | Array | IDs de mensagem obtidos do Histórico de Mensagens |
message_type | Não | String | Filtro de fluxo de mensagens. Valores possíveis: "TRANSACTIONAL", "BROADCAST", "ALL". O padrão é "ALL" quando omitido. |
params | Não | Objeto | Especifique se deseja mostrar detalhes e métricas da mensagem. Defina with_details: true para incluir o objeto "details" e with_metrics: true para incluir o objeto "metrics" na resposta. |
application | Sim | String | Código da aplicação Pushwoosh. |
per_page | Não | Integer | Número de resultados por página, de 1 a 499. Omita o parâmetro para obter o tamanho de página padrão de 500 resultados; passar 500 ou mais explicitamente é rejeitado com 400. |
page | Não | Integer | Número da página baseado em zero para paginação. Veja o limite de paginação profunda abaixo. |
message_type também limita até onde uma solicitação sem data retrocede.
Exemplo de solicitação
Anchor link to{ "filters": { "platforms": [], // IOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, HUAWEI_ANDROID, SMS "date_range": { "date_from": "string", // Formato obrigatório: 2000-01-01 "date_to": "string" // Formato obrigatório: 2000-01-01 }, "source": "API", // AB_TEST, API, AUTO_PUSH, CP, CSV, CUSTOMER_JOURNEY, EMAIL_API, EMAIL_CP, GEO_ZONE, PUSH_ON_EVENT, RSS "campaign": "string", // Código da campanha "messages_ids": [], // IDs de mensagem "messages_codes": [], // Códigos de mensagem "message_type": "ALL", // TRANSACTIONAL, BROADCAST, ALL (padrão) "application": "string" // Código da aplicação Pushwoosh }, "params": { "with_details": true, // Adiciona detalhes da mensagem à resposta (objeto "details") "with_metrics": true // Adiciona métricas da mensagem à resposta (objeto "metrics") }, "per_page": 20, // <= 499 "page": 0}Códigos de resposta e exemplos
{ "total": 0, "items": [{ "id": 0, "code": "string", "created_date": "string", "send_date": "string", "status": "string", "platforms": [], "source": "string", "push_info": { "details": { "title": "string", "filter_name": "string", "filter_code": "string", "content": { "key": "value" }, "platform_parameters": { "android_header": "string", "android_root_params": { "key": "value" }, "ios_title": "string", "ios_subtitle": "string", "ios_root_params": { "key": "value" }, "chrome_header": "string", "chrome_root_params": { "key": "value" }, "firefox_header": "string", "firefox_root_params": { "key": "value" }, "conditions": [ // condições de tag (veja /developer/api-reference/messages-api/#tag-conditions) TAG_CONDITION1, TAG_CONDITION2, ..., TAG_CONDITIONN ], "conditions_operator": "AND", // operador lógico para arrays de condições; valores possíveis: AND, OR "data": { "key": "value" } }, "follow_user_timezone": true }, "metrics": [{ "sends": 0, "opens": 0, "deliveries": 0, "inbox_opens": 0, "unshowable_sends": 0, "errors": 0, "platform": 0 }] }, "email_info": { "details": { "template": "string", "filter_name": "string", "filter_code": "string", "subject": { "key": "value" }, "from_name": "string", "from_email": "string", "reply_name": "string", "reply_email": "string", "follow_user_timezone": true, "conditions": [ // condições de tag (veja Messages-api - tag-conditions) TAG_CONDITION1, TAG_CONDITION2, ..., TAG_CONDITIONN ], "conditions_operator": "AND" // operador lógico para arrays de condições; valores possíveis: AND, OR }, "metrics": [{ "sends": 0, "opens": 0, "deliveries": 0, "hard_bounces": 0, "soft_bounces": 0, "rejects": 0, "confirmed_sends": 0, "unsubs": 0, "complaints": 0, "errors": 0 }] } }]}date_range abrange mais de 30 dias:
{ "error": "exceeded the maximum date interval. Max interval: 30 days"}page × per_page excede o limite de paginação profunda:
{ "error": "requested result window is too large, narrow the date range"}{ "error": "account not found"}totalsByIntervals
Anchor link toRetorna métricas e dados de conversão com base no código da mensagem, agregados por hora.
POST https://api.pushwoosh.com/api/v2/statistics/messages/totalsByIntervals
Autorização
Anchor link toA autorização é tratada através do Token de Acesso da API no cabeçalho da solicitação.
Parâmetros do corpo da solicitação
Anchor link to| Nome do Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
message_code | string | Código da mensagem obtido das respostas da API /createMessage. | Sim |
platforms | [int] | Plataformas | Não |
Exemplo de solicitação
Anchor link to{ "message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // obrigatório. Identificador único da mensagem "platforms": [1, 3, 7, 10, 11, 12] // opcional. Lista de códigos de plataforma}Campos da resposta
Anchor link to| Nome | Tipo | Descrição |
|---|---|---|
metrics | array | Contém um array de métricas de mensagem |
timestamp | string | A hora da métrica. |
platform | int | O código da plataforma (por exemplo, iOS, Android). |
sends | string | O número de mensagens enviadas. |
opens | string | O número de mensagens abertas. |
deliveries | string | O número de mensagens entregues. |
inbox_opens | string | O número de aberturas na caixa de entrada. |
unshowable_sends | string | O número de mensagens aceitas para dispositivos com notificações desativadas nas configurações do sistema operacional. Nenhum banner é exibido, mas a mensagem ainda chega ao aplicativo e aparece na Caixa de Entrada de Mensagens se o envio tiver a opção Salvar mensagem na Caixa de Entrada ativada. Contabilizado como envios bem-sucedidos, não como erros. |
errors | string | O número de erros. |
conversion | object | Contém dados de conversão |
sends | string | O número total de mensagens enviadas. |
opens | string | O número total de mensagens abertas. |
events | array | Um array de eventos com suas estatísticas |
name | string | O nome do evento (por exemplo, adição ao carrinho). |
hits | string | O número de hits. |
conversion | float | A taxa de conversão relativa a aberturas. |
revenue | float | A receita (apenas para eventos com atributos __amount e __currency). |
Exemplo de resposta
Anchor link to{ "metrics": [{ "timestamp": "2024-08-03 15:00:00", // Timestamp das métricas no formato "YYYY-MM-DD HH:MM:SS" "platform": 3, // Código da plataforma "sends": "55902", // Número de mensagens enviadas "opens": "382", // Número de mensagens abertas "deliveries": "22931", // Número de mensagens entregues "inbox_opens": "0", // Número de mensagens abertas na caixa de entrada "unshowable_sends": "2", // Enviado para dispositivos com notificações desativadas, sem banner exibido "errors": "0" // Número de erros encontrados }], "conversion": { "sends": "55902", // Número total de mensagens enviadas "opens": "772", // Número total de mensagens abertas "events": [{ "name": "cart_add", // Nome do evento "hits": "96", // Número de hits para o evento "conversion": 0.12, // Taxa de conversão relativa a aberturas "revenue": 0 // Receita gerada pelo evento (apenas para eventos com atributos de valor/moeda) }] }}Funil de entrega
Anchor link toUse o funil de entrega para ver em qual etapa uma mensagem ou campanha perdeu audiência (erros, sem entrega, sem abertura) e por quê. Diferente de totalsByIntervals, que retorna totais por hora, o funil divide a audiência por etapa e motivo de abandono, uma entrada por canal, com uma divisão por plataforma. A sequência de etapas difere por canal: veja stage em Campos de GetDeliveryFunnelResponse abaixo para saber quais etapas cada canal carrega. Ambos os métodos exigem um token de API de servidor.
Ambos os métodos retornam o mesmo formato de resposta, GetDeliveryFunnelResponse, descrito uma vez abaixo.
getDeliveryFunnel
Anchor link toRetorna o funil de uma mensagem.
POST https://api.pushwoosh.com/api/v2/statistics/messages/getDeliveryFunnel
Cabeçalhos
Anchor link to| Nome | Obrigatório | Descrição |
|---|---|---|
Authorization | Sim | Token de API de servidor. Deve ser fornecido no seguinte formato: Authorization: Api <Server Key>. |
Parâmetros do corpo da solicitação
Anchor link to| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
message_code | Sim | String | Código da mensagem obtido das respostas da API /createMessage. |
platforms | Não | Array de inteiros | Códigos de plataforma para filtrar o funil. Omita para retornar todas as plataformas para as quais a mensagem foi enviada. |
Exemplo de solicitação
Anchor link to{ "message_code": "A444-AAABBBCC-00112233", // Código da mensagem de /createMessage "platforms": [1, 14] // Opcional. iOS, Email}Campos de GetDeliveryFunnelResponse
Anchor link to| Nome | Tipo | Descrição |
|---|---|---|
channels | Array | Uma entrada para cada canal em que a mensagem foi enviada. |
window_from, window_to | String ou null | O período que o funil cobre, com base nos dados disponíveis. null quando funnel_state não é FUNNEL_STATE_READY. |
funnel_state | String | FUNNEL_STATE_READY: o funil abaixo está preenchido. FUNNEL_STATE_NO_EVENTS: ainda não aconteceu nada para esta mensagem. FUNNEL_STATE_EXPIRED: a mensagem foi enviada há tempo demais. Seus dados de funil não estão mais disponíveis. channels fica vazio em ambos os casos não-READY. Um message_code desconhecido, de outra conta, ou excluído não é nenhum desses estados; veja a resposta 404 abaixo. |
channels[]
| Nome | Tipo | Descrição |
|---|---|---|
channel | String | CHANNEL_MOBILE_PUSH (iOS, macOS, Android, Amazon, Huawei), CHANNEL_WEB_PUSH (Safari, Chrome, Firefox), CHANNEL_EMAIL, CHANNEL_OTHER (SMS, mensageiros, Wallet, Windows, Baidu, Xiaomi), CHANNEL_APP_INBOX. |
funnel | Array | Etapas do funil para este canal, veja funnel[] abaixo. |
deliveries_form | String | Qual divisão a etapa STAGE_DELIVERIES carrega: DELIVERIES_FORM_PER_DEVICE (quatro linhas disjuntas, divididas conforme o dispositivo mostraria um alerta e se confirmou) ou DELIVERIES_FORM_BASIC (duas linhas, sem divisão por estado de alerta). |
basic_form_reason | String | Significativo apenas quando deliveries_form é DELIVERIES_FORM_BASIC: BASIC_FORM_REASON_RETENTION (a mensagem é antiga demais para uma divisão por dispositivo), BASIC_FORM_REASON_UNAVAILABLE (uma divisão por dispositivo não está disponível para esta conta ou mensagem, por exemplo uma mensagem de sistema), BASIC_FORM_REASON_NO_DELIVERIES (nada aceito ainda), BASIC_FORM_REASON_NOT_APPLICABLE (o canal não tem estado de alerta algum, por exemplo email ou App Inbox). Caso contrário BASIC_FORM_REASON_UNSPECIFIED: ignore este campo a menos que deliveries_form seja DELIVERIES_FORM_BASIC. |
confirmed_deliveries | Objeto | count e uma divisão por platforms das entregas confirmadas. Não limitado à contagem de STAGE_DELIVERIES, portanto pode diferir dela. |
funnel[] (uma etapa)
| Nome | Tipo | Descrição |
|---|---|---|
stage | String | STAGE_AUDIENCE (todos os alvos da mensagem), STAGE_SENT (aceito pelo serviço de push ou provedor de email), STAGE_ERRORS (rejeitado antes de ser aceito), STAGE_DELIVERIES (aceito, dividido por confirmação), STAGE_OPENED (dispositivos únicos que abriram, ou para App Inbox as entradas que o usuário tocou para abrir), STAGE_INTERACTIONS (somente email: clique, cancelamento de inscrição, denúncia), STAGE_REACHED/STAGE_READ (somente App Inbox, substituem STAGE_DELIVERIES). |
count | String | Total da etapa, como string numérica. |
pieces | Array | Divisão própria da etapa. Vazio em STAGE_ERRORS, que usa errors em vez disso. Cada elemento tem kind (KIND_PASSED passou para a próxima etapa, KIND_REASON não passou, KIND_SUBSET se sobrepõe aos outros dois e nunca é somado), category (veja a lista de valores abaixo para cada etapa), count e uma divisão por platforms. |
errors | Array | Somente STAGE_ERRORS: category (veja a lista de valores abaixo), count, platforms, e codes: os códigos de erro brutos do provedor agrupados nessa categoria (platform, code, name, count). Para saber o que cada name significa e como corrigi-lo, consulte Erros de envio. |
platforms | Array | O total da etapa, dividido por plataforma. |
Valores de category
STAGE_AUDIENCE:
ELIGIBLE_AUDIENCE(passou): não excluído por nenhum dos motivos abaixo.FREQUENCY_CAPPING: ignorado por limitação de frequência.CONTROL_GROUP: retido como grupo de controle.UNSUBSCRIBED: o destinatário havia cancelado a inscrição.BOUNCED: o endereço do destinatário havia retornado anteriormente.COMPLAINT: o destinatário havia marcado anteriormente uma mensagem como spam.FILTERED_BY_CATEGORY: o destinatário havia se descadastrado dessa categoria de mensagem.
STAGE_ERRORS:
NO_TOKEN: o dispositivo não tinha token de push nem endereço para enviar.NO_DEVICE: nenhum dispositivo correspondente foi encontrado.PLATFORM_DISABLED: a plataforma está desativada para este aplicativo.INVALID_TOKEN: o provedor rejeitou o token do dispositivo ou o endereço como inválido.QUOTA_EXCEEDED: o provedor limitou a taxa de envio.INVALID_CONTENT: a mensagem não pôde ser enviada como composta. Na maioria das vezes, o próprio modelo falhou ao ser construído, por exemplo um bloco de Connected Content ou Liquid quebrado, em vez de ser rejeitado pelo provedor.INVALID_CONFIGURATION: a configuração própria do provedor da conta está quebrada, por exemplo credenciais incorretas, um projeto do Firebase excluído, ou um topic do APNs não permitido.PROVIDER_ERROR: o provedor retornou um erro fora das categorias acima.INTERNAL_ERROR: a Pushwoosh não conseguiu processar o envio.UNCLASSIFIED_ERROR: um abandono que não corresponde a nenhuma das categorias acima. Espera-se que seja raro.
STAGE_DELIVERIES, DELIVERIES_FORM_PER_DEVICE:
DISPLAYABLE_CONFIRMED(passou): o dispositivo exibiu um alerta e confirmou o recebimento.DISPLAYABLE_NO_CONFIRMATION: o dispositivo exibiria um alerta, mas ainda não confirmou o recebimento.NOT_DISPLAYABLE_CONFIRMED(passou): um push silencioso confirmou o recebimento.NOT_DISPLAYABLE_NO_CONFIRMATION: um push silencioso ainda não confirmou o recebimento.
STAGE_DELIVERIES, DELIVERIES_FORM_BASIC:
CONFIRMED_BY_DEVICE(passou): o dispositivo confirmou o recebimento.NO_CONFIRMATION: ainda não confirmado.
O email também adiciona, como um subconjunto que se sobrepõe a CONFIRMED_BY_DEVICE:
BOUNCED_HARD(subconjunto): o endereço é permanentemente não entregável.BOUNCED_SOFT(subconjunto): o endereço é temporariamente não entregável, por exemplo uma caixa de entrada cheia.
BOUNCED_HARD também pode se dividir nestas linhas de subconjunto:
BOUNCED_HARD_GENERAL: permanentemente não entregável, sem motivo mais específico disponível.BOUNCED_HARD_MAILBOX_FULL: a caixa de entrada do destinatário está cheia.BOUNCED_HARD_MAILBOX_INACTIVE: a caixa de entrada do destinatário não existe mais.BOUNCED_HARD_SUPPRESSED: o provedor colocou o endereço em uma lista de bloqueio.BOUNCED_HARD_UNDETERMINED: permanentemente não entregável, motivo não determinado.
BOUNCED_SOFT também pode se dividir nestas linhas de subconjunto:
BOUNCED_SOFT_GENERAL: temporariamente não entregável, sem motivo mais específico disponível.BOUNCED_SOFT_MAILBOX_FULL: a caixa de entrada do destinatário estava cheia no momento do envio.BOUNCED_SOFT_CONTENT_REJECTED: o servidor de email do destinatário rejeitou o conteúdo da mensagem.BOUNCED_SOFT_SPAM: o servidor de email do destinatário marcou a mensagem como spam.BOUNCED_SOFT_MESSAGE_TOO_LARGE: a mensagem era grande demais para a caixa de entrada do destinatário.BOUNCED_SOFT_ATTACHMENT_REJECTED: o servidor de email do destinatário rejeitou um anexo.BOUNCED_SOFT_CUSTOM_TIMEOUT_EXCEEDED: o servidor de email do destinatário demorou demais para responder.BOUNCED_SOFT_UNDETERMINED: temporariamente não entregável, motivo não determinado.BOUNCED_UNDETERMINED: o servidor do destinatário aceitou o email mas nunca confirmou a entrega; o resultado é desconhecido e o endereço não está suprimido. Conta como bounce leve.
BOUNCED_UNCLASSIFIED é um bounce, forte ou leve, que não corresponde a nenhum dos subtipos acima. Espera-se que seja raro, e não é um valor sobre o qual construir lógica.
STAGE_OPENED, somente email (outros canais relatam o count da etapa sem itens):
OPENED_BY_RECIPIENT(passou): aberto por uma pessoa.MACHINE_OPENS_ONLY: aberto apenas por um scanner automatizado.OPEN_TYPE_UNKNOWN: não pôde ser classificado como pessoa ou scanner.MACHINE_OPENS_AMPP(subconjunto): substitui as três linhas acima quando a divisão pessoa/scanner não está disponível para esta mensagem. Em vez disso, conta o próprio número de aberturas automáticas do Apple Mail Privacy Protection, e se sobrepõe ao total da etapa.
STAGE_INTERACTIONS, somente email:
CLICKED_ONLY(passou): clicou em um link, permaneceu inscrito.CLICKED_AND_UNSUBSCRIBED: clicou em um link e cancelou a inscrição.CLICKED_AND_COMPLAINED: clicou em um link e marcou a mensagem como spam.UNSUBSCRIBED_WITHOUT_CLICK: cancelou a inscrição sem clicar.COMPLAINED_WITHOUT_CLICK: marcou a mensagem como spam sem clicar.
STAGE_REACHED, somente App Inbox:
REACHED(passou): a entrada foi buscada pelo aplicativo pelo menos uma vez.NOT_FETCHED_YET: ainda não buscada.
STAGE_READ, somente App Inbox:
READ(passou): marcada como lida.DISMISSED_UNREAD: excluída pelo usuário sem ser lida.UNREAD: ainda não lida na caixa de entrada.EXPIRED_UNREAD: igual aUNREAD, mas a entrada expirou desde então e saiu da caixa de entrada.DISMISSED(subconjunto): toda entrada excluída, lida ou não. Se sobrepõe aREADeDISMISSED_UNREAD.
Códigos de resposta
{ "channels": [{ "channel": "CHANNEL_MOBILE_PUSH", "funnel": [ { "stage": "STAGE_AUDIENCE", "count": "10000", "pieces": [ { "kind": "KIND_PASSED", "category": "ELIGIBLE_AUDIENCE", "count": "10000", "platforms": [{ "platform": 1, "count": "10000" }] } ], "errors": [], "platforms": [{ "platform": 1, "count": "10000" }] }, { "stage": "STAGE_SENT", "count": "9820", "pieces": [], "errors": [], "platforms": [{ "platform": 1, "count": "9820" }] }, { "stage": "STAGE_ERRORS", "count": "180", "pieces": [], "errors": [ { "category": "INVALID_TOKEN", "count": "180", "platforms": [{ "platform": 1, "count": "180" }], "codes": [ { "platform": 1, "code": 1002, "name": "BadDeviceToken", "count": "180" } ] } ], "platforms": [{ "platform": 1, "count": "180" }] }, { "stage": "STAGE_DELIVERIES", "count": "9820", "pieces": [ { "kind": "KIND_PASSED", "category": "DISPLAYABLE_CONFIRMED", "count": "8000", "platforms": [{ "platform": 1, "count": "8000" }] }, { "kind": "KIND_REASON", "category": "DISPLAYABLE_NO_CONFIRMATION", "count": "820", "platforms": [{ "platform": 1, "count": "820" }] }, { "kind": "KIND_PASSED", "category": "NOT_DISPLAYABLE_CONFIRMED", "count": "900", "platforms": [{ "platform": 1, "count": "900" }] }, { "kind": "KIND_REASON", "category": "NOT_DISPLAYABLE_NO_CONFIRMATION", "count": "100", "platforms": [{ "platform": 1, "count": "100" }] } ], "errors": [], "platforms": [{ "platform": 1, "count": "9820" }] }, { "stage": "STAGE_OPENED", "count": "3120", "pieces": [], "errors": [], "platforms": [{ "platform": 1, "count": "3120" }] } ], "deliveries_form": "DELIVERIES_FORM_PER_DEVICE", "basic_form_reason": "BASIC_FORM_REASON_UNSPECIFIED", "confirmed_deliveries": { "count": "8900", "platforms": [{ "platform": 1, "count": "8900" }] } }], "window_from": "2026-09-01T00:00:00Z", "window_to": "2026-09-01T00:05:00Z", "funnel_state": "FUNNEL_STATE_READY"}Um array channels vazio com funnel_state: "FUNNEL_STATE_NO_EVENTS" significa que ainda não aconteceu nada para esta mensagem. Isso não é um erro. Um message_code enviado há tempo demais para que os dados do funil estejam disponíveis também retorna 200, com um array channels vazio e funnel_state: "FUNNEL_STATE_EXPIRED".
Um message_code desconhecido, que pertence a outra conta, ou que já foi excluído:
{ "error": "message not found"}{ "error": "invalid auth token"}getCampaignDeliveryFunnel
Anchor link toSoma getDeliveryFunnel sobre as mensagens de uma campanha. Contagens únicas são calculadas por mensagem: um assinante alcançado por várias mensagens da campanha é contado uma vez para cada mensagem.
POST https://api.pushwoosh.com/api/v2/statistics/messages/getCampaignDeliveryFunnel
Cabeçalhos
Anchor link to| Nome | Obrigatório | Descrição |
|---|---|---|
Authorization | Sim | Token de API de servidor. Deve ser fornecido no seguinte formato: Authorization: Api <Server Key>. |
Parâmetros do corpo da solicitação
Anchor link to| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
campaign_code | Sim | String | Código da campanha. |
platforms | Não | Array de inteiros | Códigos de plataforma para filtrar o funil. Omita para retornar todas as plataformas para as quais a campanha foi enviada. |
Exemplo de solicitação
Anchor link to{ "campaign_code": "AAAAA-XXXXX", // Código da campanha "platforms": [1, 14] // Opcional. iOS, Email}Resposta
Anchor link toMesmo formato de GetDeliveryFunnelResponse acima.
Códigos de resposta
Uma audiência vazia para o campaign_code e platforms fornecidos também retorna 200 com um array channels vazio e funnel_state: "FUNNEL_STATE_NO_EVENTS". Uma campanha enviada há tempo demais para que os dados do funil estejam disponíveis também retorna 200, com um array channels vazio e funnel_state: "FUNNEL_STATE_EXPIRED". Nenhum dos dois é um erro.
Um campaign_code desconhecido, que pertence a outra conta, ou cujas mensagens foram todas excluídas. Uma campanha com apenas algumas mensagens excluídas não é afetada: as excluídas ainda contam para o seu funil.
{ "error": "campaign not found"}{ "error": "invalid auth token"}getMessageLog
Anchor link toExibe informações detalhadas sobre as mensagens enviadas.
POST https://api.pushwoosh.com/api/v2/statistics/getMessageLog
Cabeçalhos
Anchor link to| Nome | Obrigatório | Descrição |
|---|---|---|
Authorization | Obrigatório | Token de acesso da API do Painel de Controle Pushwoosh. |
Parâmetros do corpo da solicitação
Anchor link to| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
message_id | Não | Integer | Seleciona eventos de mensagens por ID de Mensagem obtido do histórico de mensagens. Exemplo: 12345678900. |
message_code | Não | String | Seleciona eventos de mensagens por Código da Mensagem obtido das respostas da API /createMessage. Exemplo: "A444-AAABBBCC-00112233". |
campaign_code | Não | String | Seleciona eventos de mensagens por Código da Campanha especificado no payload da sua mensagem. Exemplo: "AAAAA-XXXXX". |
hwid | Não | String ou Array | Seleciona eventos de mensagens por HWID (Hardware ID) ou um array de HWIDs. |
date_from | Obrigatório se message_id, message_code, ou campaign_code não for fornecido | Datetime | Data de início para filtrar mensagens. Formato: "YYYY-MM-DD HH:MM:SS". Exemplo: "2000-01-25 00:00:00". |
date_to | Obrigatório se message_id, message_code, ou campaign_code não for fornecido | Datetime | Data de fim para filtrar mensagens. Formato: "YYYY-MM-DD HH:MM:SS". Exemplo: "2000-01-26 00:00:00". |
limit | Não | Integer | Número máximo de eventos de mensagem retornados em uma única resposta. Valor máximo: 100000. |
pagination_token | Não | String | Token de paginação obtido de uma resposta /getMessageLog anterior. Use-o para recuperar resultados adicionais. |
user_id | Não | String | Seleciona eventos de mensagens por um ID de Usuário personalizado. Veja /registerUser para mais detalhes. |
application_code | Sim | String | Seleciona eventos de mensagens por código da aplicação Pushwoosh |
actions | Não | Array | Filtra resultados por ações de mensagem específicas. Valores possíveis: "sent", "delivered", "opened", "reject", "create", "inbox_delivered", "inbox_read", "inbox_opened", "inbox_deleted". Eventos "create" são excluídos da resposta por padrão. Inclua "create" neste array para vê-los. Eventos "delivered" adicionalmente requerem que as estatísticas de entrega estejam ativadas na conta. |
platforms | Não | Array | Array de plataformas de destino para filtrar resultados. Valores possíveis: "unknown", "ios", "blackberry", "android", "windows phone", "osx", "windows", "amazon", "safari", "chrome", "firefox", "ie", "email", "fb messenger", "baidu android", "huawei android", "sms", "xiaomi", "web", "whatsapp", "line", "kakao", "telegram", "apple wallet", "google wallet", "viber". |
message_type | Não | String | Filtra resultados por fluxo de mensagem. "all" (padrão se omitido) retorna tudo, "broadcast" retorna apenas mensagens em massa (message_id != 0), "transactional" retorna apenas mensagens com message_id = 0, incluindo aquelas enviadas do Customer Journey. |
Exemplo de solicitação
Anchor link tocurl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/getMessageLog' \--header 'Authorization: Key API_ACCESS_TOKEN' \--header 'Content-Type: application/json' \--data-raw '{ "pagination_token": "PAGINATION_TOKEN_FROM_PREVIOUS_RESPONSE", // opcional, token para paginação "limit": 1000, // opcional, o número máximo de entradas para uma única resposta "application_code": "XXXXX-XXXXX", // Código do aplicativo Pushwoosh "message_code": "A444-AAABBBCC-00112233", // opcional, código da mensagem obtido da solicitação /createMessage "message_id": 1234567890, // opcional, ID da mensagem obtido do Painel de Controle Pushwoosh "campaign_code": "AAAAA-XXXXX", // opcional, código de uma campanha para obter o log "hwid": "aaazzzqqqqxxx", // opcional, ID de hardware de um dispositivo específico alvo de uma mensagem "user_id": "user_123", // opcional, ID de um usuário alvo da mensagem "date_from": "2000-01-25 00:00:00", // opcional, início do período das estatísticas "date_to": "2000-02-10 23:59:59", // opcional, fim do período das estatísticas "actions": ["opened", "inbox_opened"], // opcional, usado para filtragem de resultados. Valores possíveis: "sent", "delivered", "opened", "reject", "create", "inbox_delivered", "inbox_read", "inbox_opened", "inbox_deleted". A resposta incluirá todas as mensagens com a(s) ação(ões) especificada(s). "platforms": ["ios", "chrome"], // opcional, usado para filtragem de resultados, apenas minúsculas. Valores possíveis: "unknown", "ios", "blackberry", "android", "windows phone", "osx", "windows", "amazon", "safari", "chrome", "firefox", "ie", "email", "fb messenger", "baidu android", "huawei android", "sms", "xiaomi", "web", "whatsapp", "line", "kakao", "telegram", "apple wallet", "google wallet", "viber" "message_type": "broadcast" // opcional, "all" (padrão), "broadcast" (message_id != 0), ou "transactional" (message_id = 0, inclui envios do Customer Journey)}'Códigos de resposta e exemplos
{ "pagination_token": "PAGINATION_TOKEN_FOR_NEXT_REQUEST", "data": [{ "timestamp": "2000-01-25T11:18:47Z", "application_code": "XXXXX-XXXXX", "message_id": 12345678900, "message_code": "A444-AAABBBCC-00112233", "campaign_code": "AAAAA-XXXXX", "hwid": "aaazzzqqqqxxx", "user_id": "user_123", "platform": "android", "action": "sent", "status": "success", "push_alerts_enabled": "true" }, { "timestamp": "2000-01-25T11:18:49Z", "application_code": "XXXXX-XXXXX", "message_id": 12345678900, "message_code": "A444-AAABBBCC-00112233", "campaign_code": "AAAAA-XXXXX", "hwid": "aaazzzqqqqxxx", "user_id": "user_123", "platform": "android", "action": "delivered", "push_alerts_enabled": "true" }, { "timestamp": "2000-01-25T11:19:23Z", "application_code": "XXXXX-XXXXX", "message_id": 12345678900, "message_code": "A444-AAABBBCC-00112233", "campaign_code": "AAAAA-XXXXX", "hwid": "aaazzzqqqqxxx", "user_id": "user_123", "platform": "android", "action": "opened", "push_alerts_enabled": "true" }, { "timestamp": "2000-01-25T11:19:30Z", "application_code": "XXXXX-XXXXX", "message_id": 12345678900, "message_code": "A444-AAABBBCC-00112233", "campaign_code": "AAAAA-XXXXX", "hwid": "aaazzzqqqqxxx", "user_id": "user_123", "platform": "android", "action": "reject", "status": "failed", "error_reason": "invalid device token", "payload": "SOME_PAYLOAD_STRING" }]}{ "error": "exceeded the maximum date interval. Max interval: 30 days"}{ "error": "account not found"}Cada entrada em data também carrega error_reason (string, preenchida com o motivo da falha quando status é "failed") e um payload opcional (string).
Uma página de resposta pode retornar menor que o limit solicitado. Isso por si só não significa que a exportação está concluída.
Estatísticas de e-mail
Anchor link tolinksInteractions
Anchor link toExibe estatísticas sobre cliques em links em e-mails
POST https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractions
Cabeçalhos
Anchor link to| Nome | Obrigatório | Descrição |
|---|---|---|
Authorization | Sim | Token de acesso da API do Painel de Controle Pushwoosh. |
Parâmetros do corpo da solicitação
Anchor link to| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
date_range | Não | Objeto | Define o período do relatório. Contém date_from e date_to. |
filters | Sim | Objeto | Filtros de e-mail. |
application | Sim | String | Código da aplicação Pushwoosh (alternativamente, especifique campaign, messages_ids, ou message_codes). |
messages_codes | Sim | Array | Códigos de mensagem (alternativamente, especifique application, campaign, ou messages_ids). |
campaign | Sim | String | Código da campanha (alternativamente, especifique application, messages_ids, ou message_codes). |
messages_ids | Sim | Array | IDs de mensagem (alternativamente, especifique application, campaign, ou message_codes). |
link_template | Obrigatório se application ou campaign for especificado. | String | Filtra as interações de links de e-mail por palavra-chave. Apenas links que incluem o texto especificado em sua URL serão retornados na resposta da API. Por exemplo, se seu e-mail contém links como https://example.com/news e https://example.com/shop, definir “link_template”: “shop” retornará interações apenas para https://example.com/shop. |
email_content_code | Não | String | Identificador único para o conteúdo do e-mail. |
params | Não | Objeto | Define opções de resposta adicionais. Inclui with_full_links, que adiciona uma lista de links completos com estatísticas. |
Exemplo de solicitação
Anchor link tocurl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractions' \--header 'Authorization: Api API_ACCESS_TOKEN' \--header 'Content-Type: application/json' \--data-raw '{ "filters": { "date_range": { "date_from": "string", // Formato obrigatório: 2000-01-01 "date_to": "string" // Formato obrigatório: 2000-01-01 }, "campaign": "string", // Código da campanha (você pode especificar application, messages_ids, ou message_codes em vez disso) "application": "string", // Código da aplicação (você pode especificar campaign, messages_ids, ou message_codes em vez disso) "messages_ids": [], // IDs de mensagem (você pode especificar application, campaign, ou message_codes em vez disso) "messages_codes": [], // Códigos de mensagem (você pode especificar application, campaign, ou message_ids em vez disso) "link_template": "string", // Modelo de link (obrigatório se application ou campaign for especificado) "email_content_code": "string" // Identificador único para o conteúdo do e-mail. }, "params": { "with_full_links": true // Especifique se deseja mostrar estatísticas detalhadas. Uma lista de links completos com estatísticas será passada no array full_links. }}'Códigos de resposta e exemplos
Anchor link to{ "items": [{ "template": "string", "link": "string", "title": "string", "clicks": 0, "full_links": [{ "full_link": "string", "clicks": 0 }] }]}{ "error": "exceeded the maximum date interval. Max interval: 30 days"}{ "error": "account not found"}linksInteractionsDevices
Anchor link toMostra os usuários que clicaram em links em e-mails
POST https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractionsDevices
Cabeçalhos
Anchor link to| Nome | Obrigatório | Descrição |
|---|---|---|
Authorization | Sim | Token de acesso da API do Painel de Controle Pushwoosh. |
Parâmetros do corpo da solicitação
Anchor link to| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
date_range | Não | Objeto | Define o período do relatório. Contém date_from e date_to. |
filters | Sim | Objeto | Filtros de e-mail. |
application | Sim | String | Código da aplicação Pushwoosh (alternativamente, especifique campaign, messages_ids, ou message_codes). |
messages_codes | Sim | Array | Códigos de mensagem (alternativamente, especifique application, campaign, ou messages_ids). |
campaign | Sim | String | Código da campanha (alternativamente, especifique application, messages_ids, ou message_codes). |
messages_ids | Sim | Array | IDs de mensagem (alternativamente, especifique application, campaign, ou message_codes). |
link_template | Obrigatório se application ou campaign for especificado. | String | Filtra as interações de links de e-mail por palavra-chave. Apenas links que incluem o texto especificado em sua URL serão retornados na resposta da API. Por exemplo, se seu e-mail contém links como https://example.com/news e https://example.com/shop, definir “link_template”: “shop” retornará interações apenas para https://example.com/shop. |
email_content_code | Não | String | Identificador único para o conteúdo do e-mail. |
page | Não | Integer | Número da página para paginação. |
per_page | Não | Integer | Número de resultados por página (≤ 1000). |
Exemplo de solicitação
Anchor link tocurl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractionsDevices' \--header 'Authorization: Api API_ACCESS_TOKEN' \--header 'Content-Type: application/json' \--data-raw '{ "filters": { "date_range": { "date_from": "string", // Formato obrigatório: 2000-01-01 "date_to": "string" // Formato obrigatório: 2000-01-01 }, "campaign": "string", // Código da campanha (você pode especificar application, messages_ids, ou message_codes em vez disso) "application": "string", // Código da aplicação (você pode especificar campaign, messages_ids, ou message_codes em vez disso) "messages_ids": [], // IDs de mensagem (você pode especificar application, campaign, ou message_codes em vez disso) "messages_codes": [], // Códigos de mensagem (você pode especificar application, campaign, ou message_ids em vez disso) "link_template": "string", // Modelo de link (obrigatório se application ou campaign for especificado) "email_content_code": "string" // Identificador único para o conteúdo do e-mail. }, "per_page": 100, "page": 0}'Códigos de resposta e exemplos
Anchor link to{ "total": 0, "items": [{ "timestamp": "string", "link": "string", "hwid": "string" }]}{ "error": "exceeded the maximum date interval. Max interval: 30 days"}{ "error": "account not found"}bouncedEmails
Anchor link toPOST https://api.pushwoosh.com/api/v2/statistics/emails/bouncedEmails
Fornece dados sobre reclamações de e-mail, soft bounces e hard bounces, incluindo a data, endereço de e-mail e o motivo de cada bounce.
Autorização
Anchor link toA autorização é tratada através do Token de Acesso da API no cabeçalho da solicitação.
Parâmetros do corpo da solicitação
Anchor link to| Nome do Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
application | string | Código da aplicação Pushwoosh | Sim |
message_code | string | Código da mensagem. | Obrigatório se date range ou campaign não for fornecido |
campaign | string | Código da campanha. | Obrigatório se message_code ou date range não for fornecido |
date_from | string | A data de início para os dados no formato YYYY-MM-DDTHH:MM:SS.000Z (padrão ISO 8601). | Obrigatório se message_code ou campaign não for fornecido |
date_to | string | A data de fim para os dados no formato YYYY-MM-DDTHH:MM:SS.000Z (padrão ISO 8601). | Obrigatório se message_code ou campaign não for fornecido |
per_page | int | O número de linhas por página, máximo 5000. | Sim |
page | int | O número da página, começando do zero. | Sim |
type | string | O tipo de bounce: Complaint, Softbounce, Hardbounce. | Não |
Exemplo de solicitação
Anchor link to{ "application": "XXXXX-XXXXX", // obrigatório. Código do aplicativo Pushwoosh "message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // obrigatório se campanha ou intervalo de datas não for fornecido. // Identificador único da mensagem "campaign": "XXXXX-XXXXX", // obrigatório se message_code ou intervalo de datas não for fornecido. // Código da campanha "date_from": "2024-07-20T00:00:00.000Z", // obrigatório se message_code ou campanha não for fornecido. // Data de início no formato ISO 8601 "YYYY-MM-DDTHH:MM:SS.SSSZ" "date_to": "2024-07-20T00:00:00.000Z", // obrigatório se message_code ou campanha não for fornecido. // Data de fim no formato ISO 8601 "YYYY-MM-DDTHH:MM:SS.SSSZ" "per_page": 1000, // obrigatório. Número de resultados por página, máximo 5000 "page": 5, // opcional. Número da página, começando do zero "type": "Softbounce" // opcional. O tipo de bounce: Complaint, Softbounce, Hardbounce}Campos da resposta
Anchor link to| Nome do Campo | Tipo | Descrição |
|---|---|---|
total | int | A contagem total de linhas. |
bounced_emails | array | Um array de detalhes de e-mails que retornaram. |
├── email | string | O endereço de e-mail que retornou. |
├── date | string | A data do bounce (formato: YYYY-MM-DDTHH:MM:SS.000Z). |
├── reason | string | O motivo do bounce. |
└── type | string | O tipo de bounce: Complaint, Softbounce, Hardbounce. |
Exemplo de resposta
Anchor link to{ "total": 25, // Contagem total de linhas. "bounced_emails": [{ "email": "example@example.com", // Endereço de e-mail que retornou "date": "2024-07-20T00:00:00.000Z", // Data do bounce no formato ISO 8601 "reason": "Invalid recipient address", // Motivo do bounce "type": "Hardbounce" // Tipo de bounce: Complaint, Softbounce, Hardbounce }]}