Visão geral: Use a API de eventos de servidor para servidor Web (Web-S2S) para relatar eventos e conversões para PBA que não são relatados pelo Web SDK.
API web de eventos de servidor para servidor para PBA
A API Web-S2S para atribuição baseada em pessoas complementa o Web SDK permitindo que os profissionais de marketing relatem eventos que ocorrem em seus sites, mas fora do escopo do Web SDK. Por exemplo, um visitante do site (um usuário da web), aciona um evento de pagamento online, processado por sistemas de backend. Após o processamento, o backend, usando a API S2S, relata o evento à AppsFlyer.
Eventos enviados pela API do S2S:
- são registrados de forma semelhante aos eventos relatados pelo Web SDK
- são incluídos nos painéis do PBA se definidos como eventos de conversão
- preenchem dados brutos de PBA com o campo event_source definido como ]web S2S
Instruções de uso da API
Crie sua chamada de API usando as seções a seguir.
Não. | Item | Observações |
---|---|---|
1 | Usuário único (EN: Unique user) |
|
2 | Carimbo de data/hora |
|
3 | Receita e moeda | Você deve preencher eventRevenueCurrency e eventRevenue mesmo que eles estejam contidos no eventValue. Faça isso porque os usamos em nossos painéis. |
Noções básicas da API
A implementação da API requer as seguintes credenciais disponíveis no painel:
- ID do agrupamento (também conhecida como ID do agrupamento da marca)
- Chave do desenvolvedor web
Para obter as credenciais:
- Na AppsFlyer, no menu superior, selecione Meus aplicativos > Exibir agrupamentos de marca.
A lista de agrupamentos é exibida. - Copie e registre:
- ID do agrupamento de marca
- Chave do desenvolvedor web
Noções básicas da API Web S2S
Caminho |
|
Método HTTP | POST |
Tipo de conteúdo aceito |
application/json |
Limitação de carga útil JSON |
Tamanho da carga útil JSON: máximo de 1KB |
Taxa de limitação |
Volume de limitação do POST: 60.000 POSTs por minuto. Para aumentar o limite, entre em contato com seu CSM. |
TLS |
|
método setCuId
Nome do método |
setCuId |
Caso de uso |
Ao associar um CUID a um visitante do seu site. Por exemplo, sempre que você fizer a correspondência da web |
Caminho do método |
|
Carga útil |
A carga JSON consiste nos parâmetros listados aqui. Todos os parâmetros são obrigatórios. |
Exemplo de Curl setCuId
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/setcuid' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999"}
Método do evento
Nome do método |
event |
Caso de uso | Enviar |
Caminho do método |
|
Informações detalhadas | Detalhes do método do evento deste artigo contém detalhes de carga útil, exemplo de Curl, exemplo de Python e sugestões de teste. |
Detalhes do método do evento
Parâmetros do payload
Os parâmetros de carga útil são divididos em identificadores de usuário e parâmetros de evento.
- ID do usuário: você deve enviar pelo menos um parâmetro de ID de usuário.
- Evento: envie os parâmetros obrigatórios e opcionais conforme necessário.
Parâmetros do identificador do usuário (enviar pelo menos um parâmetro)
Parâmetro de ID do usuário | Descrição |
---|---|
customerUserId |
O ID de usuário do cliente (CUID) é um identificador exclusivo definido por você.
|
afUserId |
O ID de usuário exclusivo atribuído pelo web SDK a cada usuário que visita seu site. Você precisará passar o valor do cookie para seus servidores de backend.
|
Parâmetros do evento
Nome do parâmetro | Obrigatoriedade | Descrição |
---|---|---|
webDevKey |
Sim |
Preencha usando a chave do desenvolvedor web disponível no painel.
|
eventType | Sim |
Identificador de atributo de evento para uso interno pela AppsFlyer. Sempre definido como EVENTO.
|
eventName | Sim |
|
timestamp | Não |
Tempo em que o evento ocorreu em milissegundos. Enviar como um carimbo de data/hora Unix com 13 dígitos.
|
Valor do evento | Não |
Mapa de parâmetros de eventos que descrevem o evento. Use este parâmetro para enviar eventos avançados in-app como SKU do produto, preço do item de linha.
|
eventRevenueCurrency | Não |
Código de moeda de um evento de receita, sendo um código de moeda ISO 4217 de três caracteres.
|
eventRevenue | Não |
Receita (valor monetário) atribuída a um evento. Atenção! Se a receita for relatada em eventValue, relate-a também em eventRevenue e preencha eventRevenueCurrency.
|
Não | Esse parâmetro foi preterido e será removido do sistema em uma data futura. Em vez disso, use eventValue. | |
Não |
Esse parâmetro foi preterido e será removido do sistema em uma data futura. Em vez disso, use eventValue. |
|
referrer | Não |
Referência HTTP
|
userAgent | Não |
Solicitação de agente do usuário enviada pelo navegador ao servidor.
|
ip | Não |
Endereço IP do usuário
|
Exemplo de Curl
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/event' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999",
"ip" : "192.0.2.1",
"eventType":"EVENT",
"timestamp" : 1234567890123,
"eventName":"my_web_event",
"eventRevenueCurrency" : "EUR",
"eventRevenue" : 1234.56,
"eventValue": {
"purchase":{
"shoes": "color",
"quantity" : "3",
"Revenue" : "1234.56",
"Currency" : "ZAR"
}
}
}'
Exemplo de Python
''' using the requests python package, install using pip install requests '''
import requests
url = "https://webs2s.appsflyer.com/v1/bundleId/event"
payload = {
"customerUserId": "1234567890abcdef",
"afUserId": "9999999-f848-4963-a091-568f0bf9a361",
"webDevKey": "99999999-9999-9999-9999-999999999999",
"ip": "192.0.2.1",
"eventType": "EVENT",
"timestamp": 1234567890123,
"eventName": "my_web_event",
"eventRevenenuCurrency": "EUR",
"eventRevenue": 1234.56,
"eventValue":
{
"purchase":
{
"shoes": "color",
"quantity": "3",
"Revenue": "1234.56",
"Currency": "ZAR"
}
}
}
headers = {
'Accept-Encoding': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text.encode('utf8'))
Testes
Para fins de teste, envie vários eventos da seguinte maneira:
- Envie um evento.
- Certifique-se de obter um código de retorno 200 OK. Caso contrário, execute uma ação corretiva usando os códigos de retorno e as mensagens de erro.
- Aguarde várias horas após a meia-noite UTC para ver o evento relatado nos dados brutos do PBA. Você deve aguardar porque os dados do PBA são processados uma vez por dia.
Informações adicionais
Obtendo a chave do desenvolvedor web
Extraindo o afUserID do Web SDK
- O
afUserId
é um identificador exclusivo definido pelo Web SDK quando um usuário visita seu site pela primeira vez. - Se você precisar
afUserId
use um dos métodos a seguir.
Obtenha afUserId do cabeçalho do cookie HTTP
- O
afUserId
é enviado pelo navegador de visitantes em chamadas para o seu site. - Extraia-o do cabeçalho do cookie HTTP, se necessário.
Visualizando afUserId no navegador do visitante
- Visualize o
afUserId
no navegador do visitante, para fins de solução de problemas e depuração. - Para que ele esteja disponível, o visitante precisa ter visitado primeiro uma página com o Web SDK pelo menos uma vez.
- O cookie que contém
afUserId
é um cookie primário em relação ao seu domínio. - O procedimento a seguir foi preparado usando o Chrome 81. Pode haver algumas diferenças entre vários navegadores e sistemas operacionais.
Para obter o afUserId do navegador do visitante:
- No seu navegador, acesse seu site.
-
Clique com o botão direito do mouse, selecione Inspecionar
A janela do elemento de inspeção do navegador é aberta. - Vá para a aba (A) Aplicativo.
- No menu lateral (B), expanda Cookies.
- Selecione seu site. Se ele não for exibido, atualize o navegador.
- No campo de filtro (C), insira
afUserId
O valor de afUserID é exibido.
Códigos de resposta
Código de resposta | Mensagem | O que fazer |
---|---|---|
200 | OK | |
404 | Não encontrado |
|
400 | Erro na solicitação |
|
Solução de problemas
- Sintoma: Os códigos de retorno HTTP não retornam
Solução: Incluir servidores da AppsFlyer na lista de permissões
Notas de versão
Data | Versão do endpoint* | Observações |
---|---|---|
2020-05-12 | 1 | Lançamento inicial |
2020-05-24 | 1 | |
* O número da versão refere-se ao número da versão do endpoint. https://webs2s.appsflyer.com/v1/method
|