Server-to-Server Events API

Introdução

A finalidade dessa API é permitir que você envie eventos que ocorrem fora do aplicativo móvel, diretamente para o servidor do AppsFlyer.  Por exemplo, se você tiver uma interface móvel e na web, você pode gravar todos os eventos de ambos os meios no AppsFlyer. 

 Observação

O tipo de conteúdo deve ser definido como aplicativo/json.

URL: https://api2.appsflyer.com/inappevent/{app_id}  

Exemplo Android: https://api2.appsflyer.com/inappevent/com.appsflyer.myapp

Exemplo iOShttps://api2.appsflyer.com/inappevent/id123456789

É importante prestar atenção extra para que a ID do aplicativo no iOS contenha a "id" principal antes da ID, caso contrário, a solicitação termina com HTTPS 200 OK, mas o evento não é registrado.

 Important!

The JSON payload must be passed as a string and the event value must be stringified.

Make sure that the JSON payload includes the parameter "af_events_api" :"true"
This parameter ensures that the event is structured as a rich event to enable automatic mapping of the event values to various partners.

Confira exemplos abaixo.

Método: POST

Cabeçalho – "autenticação"= {dev-key}

A chave do desenvolvedor é encontrada no Painel >> Configurações do aplicativo >> Chave do desenvolvedor

iOS Android
{
    "appsflyer_id": {This is a mandatory field, AppsFlyer Device ID must be used },  // e.g. 1415211453000-6513894
    "idfa":{idfa},
    "customer_user_id": {customer_user_id}, // Customer User ID optional parameter
    "bundle_id":{bundle_id},
    "eventName": {The event name}, // e.g. "af_purchase"
    "eventValue": {A JSON containing a rich in-app event value - must be stringfied},
    "{

        \"af_revenue\":\"6\",
        \"af_content_type\":\"wallets\",
        \"af_content_id\":\"15854\"

    }",
    "eventCurrency": {Event currency}, // e.g "USD"
    "ip": {device IP},
    "eventTime": {Event timestamp in UTC}, // e.g  "2014-05-15 12:17:00.000"
    "af_events_api" :"true"
}

 Observação

Todos os caracteres reservados (https://tools.ietf.org/html/rfc3986#section-2.1) devem ser codificados por porcentagem antes que a URI seja formada.

Parameters

  1. Parâmetros obrigatóriosappsflyer_id (AppsFlyer Device id), eventName, eventValueaf_events_api
  2. Highly recommended parameters: idfa for iOS and advertising_id for Android.
    If you wish to map your in-app events from organic users with external partners, these parameters are MANDATORY. 
  3. Optional - eventValue can be with an empty value, i.e., "eventValue":"", (no space is needed)
  4. Optional - IP address (ip) should be the IP of the mobile device (during the event occurrence)
  5. Optional - The customer user ID field (customer_user_id) is a user identifier parameter, mapped to the Customer User ID field in the Raw Reports. The Customer User ID SDK API attaches this value automatically to all SDK originated in-app events. Make sure to include this field will ALL your S2S events to enjoy the same functionality.

Cronometrar os eventos

Os eventos de servidor para servidor podem ser enviados em tempo real ou no modo em lotes

 Observação

Se usar S2S, você não pode enviar eventos diretamente de um JavaScript. Você deve criar um servidor local para enviar a solicitação ao AppsFlyer.

Você pode usar o parâmetro opcional eventTime para especificar a hora da ocorrência do evento (no fuso horário UTC). Se o parâmetro não for incluído na mensagem, o AppsFlyer usa o carimbo de data e hora da mensagem HTTPS recebida.

O formato de eventTime é: "aaaa-MM-dd HH:mm:ss.SSS" (por exemplo, "2014-05-15 12:17:00.000")  

No modo em lotes, para que os eventos sejam registrados com seus carimbos em tempo real, todos eles devem ser enviados ao AppsFlyer até as 2h00 (UTC) do dia seguinte.  

 Observação

O número máximo de solicitações S2S é de 60K por minuto ou 1K por segundo. Entre em contato com seu Gestor de sucesso do cliente se seus requisitos forem diferentes.


Eventos com carimbos de tempo passado, que não foram enviados até as 2h00, são registrados no momento em que forem enviados.

Exemplo 1

Evento acionado: 2 de maio às 22h00

Evento enviado aos servidores do AppsFlyer: 3 de maio à 1h00

O evento é registrado na plataforma do AppsFlyer sob o tempo real em que o evento ocorreu (2 de maio às 22h00).

Exemplo 2
Evento acionado: 2 de maio às 22h00

Evento enviado aos servidores do AppsFlyer: 4 de maio às 9h00

O evento é registrado na plataforma do AppsFlyer no momento em que foi enviado ao servidor AppsFlyer e não no momento em que o evento ocorreu (4 de maio às 9h00).

Códigos de retorno de serviço

200
OK when the request has been processed by the AppsFlyer system.
401
não autorizado quando a chave fornecida no cabeçalho de autenticação não é a chave de desenvolvedor para esse aplicativo.
400
Solicitação incorreta quando a solicitação falhou em pelo menos um dos critérios de validação
500
Erro interno do servidor indica um erro no servidor

Se seus servidores forem protegidos por um firewall, você precisará fazer uma lista de respostas seguras recebidas dos intervalos de endereço IP da AWS para receber as mensagens de retorno.

Exemplo de corpo de solicitação

{
    "appsflyer_id": "1415211453000-6513894",
	"advertising_id": "38412345-8cf0-aa78-b23e-10b96e40000d",
	"eventName": "af_purchase",
	"eventValue": 
	"{
		\"af_revenue\": \"6\",
		\"af_content_type\": \"wallets\",
		\"af_content_id\": \"15854\",
		\"af_quantity\" :\"1\"
     }",
	"eventCurrency": "USD",
	"ip": "1.2.3.4",
	"eventTime": "2014-05-15 12:17:00.000",
	"af_events_api" :"true"
}


Neste caso, o AppsFlyer recebe um evento no aplicativo S2S que representa um evento de compra com receita, bem como propriedades adicionais, tais como tipo de conteúdo, etc.

Em seguida, o AppsFlyer é capaz, de acordo com a configuração do anunciante, de enviar esses eventos avançados no aplicativo para fontes de mídia para fins de direcionamento avançado, otimização e criação de público.

Buscar a ID do dispositivo AppsFlyer

appsflyer_id é um parâmetro obrigatório em mensagens de evento de servidor para servidor. O AppsFlyer usa esse parâmetro para atribuir o evento ao dispositivo original e à fonte de mídia atribuída.

Existem várias maneiras de obter essa ID.

1. A partir do dispositivo móvel usando a API do SDK do AppsFlyer (Android / iOS)

2. Por meio das APIs Pull ou Push (clique no link para obter mais informações sobre a API Push ou a API Pull)

3. Exportar o relatório deinstalação de dados brutos

 Dica

Ao testar mensagens S2S, se você estiver usando dados brutos ou APIs push ou pull, procure o registro com fonte de mídia "s2s_test". Esse é o seu dispositivo de teste e essa ID de dispositivo AppsFlyer é a ID que você precisa.

Esse artigo foi útil?
Usuários que acharam isso útil: 4 de 10