Passar para o conteúdo principal
Atribuição de API - Affise MMP sem integração de SDK
Daria Mamchenkova avatar
Escrito por Daria Mamchenkova
Atualizado há mais de 7 meses

Se não for possível fazer a integração com o SDK, você poderá usar a API Attribution. Nesse caso, você deve fazer o seguinte:

  1. Na página Aplicativo, adicione um aplicativo e indique a chave secreta do SDK e o ID do aplicativo.

  2. Defina a solicitação de acordo com o guia deste artigo.

  3. Integrar a biblioteca de referência do Google Play.

Configurações

Postback mínimo para instalar a métrica não orgânica

curl --request POST \

--data '[

{

"uuid": "1a7adcca-f786-4c62-a770-5b3e687d0ee3",

"created_time": 1668605535000,

"affise_app_id": "3",

"affise_pkg_app_name": "com.test.app",

"affise_app_token": "ee8ebe706e0359e3ac5c45666a681f4c228d97f20012dac186ae3902eb479955",

"affise_device_id": "bf62b34b-5750-4e95-a132-4185cedbee00",

"random_user_id": "92f254db-d70d-47ce-8597-baccab852300",

"first_open_time": 1685452724264,

"referrer": "gclid=CjwKCAjwvdajBhBEEiwAeMh1UwCsBajGUaMGwuqg6-nhQQe54jA4hR3l5wUQK5OB_GH_OxlAizBIQRoCRGAQAvD_BwE"

}

]'

Se o parâmetro referrer estiver vazio ou for inválido, a instalação será orgânica se outra definição não for usada.

Postback para sessões e/ou verificação de usuário ativo

curl --request POST \

--data '[

{

"uuid": "1a7adcca-f786-4c62-a770-5b3e687d0ee3",

"created_time": 1668605535000,

"affise_app_id": "3",

"affise_pkg_app_name": "com.test.app",

"affise_app_token": "ee8ebe706e0359e3ac5c45666a681f4c228d97f20012dac186ae3902eb479955",

"affise_device_id": "bf62b34b-5750-4e95-a132-4185cedbee00",

"random_user_id": "92f254db-d70d-47ce-8597-baccab852300",

"first_open_time": 1685452724264,

"last_session_time": 1685452756000,

"last_time_session": 1685452756000,

"time_session": 56783,

"affise_session_count": 5,

"lifetime_session_count": 4556891

}

]'

where:

Nome

Nome

Obrigatório

Informações

uuid

uuidv4 (string)

Todos os

Identificador de postback, um valor exclusivo para cada postback.

created_time

carimbo de data/hora (int)

Cada

Tempo de envio do postback em milissegundos.

affise_app_id

string

Todo

ID do aplicativo no Affise.

affise_pkg_app_name

cadeia de caracteres

Todos os

Nome do pacote na loja.

affise_app_token

string

Todos os

Assinatura de postback.

affise_device_id

uuidv1 (string)

Todos os

Identificador de dispositivo exclusivo do usuário.

random_user_id

uuidv4 (string)

Todos os

Identificador de dispositivo exclusivo do usuário.

first_open_time

carimbo de data/hora (int)

Primeiro postback

Hora da primeira inicialização do aplicativo em milissegundos.

Exclusivo para o dispositivo.

Deve ser enviado pelo menos uma vez.

Pode não estar presente nos postbacks seguintes.

Referenciador

string

Não ou primeiro postback, para verificação não orgânica

Informações do referenciador de uma loja.

Se outro mecanismo for usado para verificação não orgânica, o campo será opcional.

last_session_time

carimbo de data/hora (int)

Para sessões

Hora atual em milissegundos se a sessão estiver ativa; caso contrário, 0.

last_time_session

carimbo de data/hora (int)

Para sessões,

se last_session_time = 0

Hora atual em milissegundos se a sessão estiver ativa; caso contrário, 0

Última hora em milissegundos quando a sessão estava ativa; caso contrário

first_open_time.

time_session

int

Para sessões de duração de cálculo

Duração da última sessão em milissegundos.

affise_session_count

int

Para sessões

Número de sessões sem fraude no dispositivo.

A Affise recomenda aumentar esse contador 30 segundos após o início da sessão.

O valor não deve diminuir.

lifetime_session_count

int

Para sessões de durações de cálculo

Soma das durações das atividades do aplicativo em milissegundos.

Veja o exemplo completo de postback:

[

{

"affise_app_id": "3",

"affise_pkg_app_name": "com.test.app",

"app_version": "1.0",

"app_version_raw": "2",

"store": "Apk",

"installed_time": 1685445035570,

"first_open_time": 1685445103532,

"installed_hour": 1685444400000,

"first_open_hour": 1685444400000,

"install_first_event": true,

"install_begin_time": 0,

"install_finish_time": 1685445103532,

"referrer_install_version": "",

"referral_time": 0,

"referrer_click_time": 0,

"referrer_click_time_server": 0,

"referrer_google_play_instant": falso,

"created_time": 1685445103000,

"created_time_milli": 1685445103908,

"created_time_hour": 1685444400000,

"last_session_time": 1685445103908,

"connection_type": "WIFI",

"cpu_type": "arm64-v8a, armeabi-v7a, armeabi",

"hardware_name": "coral",

"network_type": "WIFI",

"device_manufacturer" (fabricante do dispositivo): "Google",

"proxy_ip_address": "",

"deeplink_click": falso,

"device_atlas_id": "",

"affise_device_id": "6c5b4fbb-0188-1000-a2a8-a425dfc3a5d1",

"affise_alt_device_id": "6c5b4fd6-0188-1000-8d42-38592460a3c0",

"adid": "",

"android_id": "50da7b69cab425a1",

"android_id_md5": "f2e24f12834014cf69623fd9a7c77f12",

"mac_sha1": "",

"mac_md5": "",

"gaid_adid": "",

"gaid_adid_md5": "",

"oaid": "",

"oaid_md5": "",

"altstr_adid": "",

"fireos_adid": "",

"coloros_adid": "",

"reftoken": "6c5b51...ac5631",

"reftokens": "6c5b5...59c94f0a",

"referrer": "referrer=018…a43e29&clickid=6475e…e37f55&pid=9",

"user_agent": "Dalvik/2.1.0 (Linux; U; Android 13; Pixel 4 XL Build/TP1A.221005.002.B2)",

"mccode": "272",

"mncode": "2",

"isp": "3",

"region": "IE",

"country" (país): "IE",

"language" (idioma): "en-IE",

"nome_do_dispositivo": "Pixel 4 XL",

"device_type": "smartphone",

"os_name": "",

"platform" (plataforma): "android",

"sdk_platform": "android",

"api_level_os": "33",

"affise_sdk_version": "-",

"os_version": "13",

"random_user_id": "6c5b4fea-0188-1000-90fb-29759c0aadba",

"affise_sdk_pos": "Production" (Produção),

"timezone_dev": "UTC+0100",

"affise_event_token": "",

"affise_event_name": "",

"last_time_session": 1685445104000,

"time_session": 295,

"affise_session_count": 1,

"lifetime_session_count": 295,

"affise_deeplink": "",

"affise_part_param_name": "",

"affise_part_param_name_token": "",

"affise_app_token": "9d1af455f1…66611d7e72e9",

"label" (rótulo): "",

"uuid": "6c5b5181-0188-1000-ab71-0cbd7e8a63e2",

"pushtoken": "",

"affise_events_count": 2,

"events": [

{

"affise_event_id": "4fc7d613-af35-4298-92a8-04838e03a40c",

"affise_event_name": "CustomId01",

"affise_event_category": "native",

"affise_event_timestamp": 1685449930539,

"affise_event_first_for_user": falso,

"affise_event_user_data": "",

"affise_event_data": {

"affise_event_custom_id_01": "AiChatClickEvent",

"affise_event_custom_id_{01}_timestamp": 1685449930539

},

"affise_parameters": {}

},

{

"affise_event_id": "b1e1aa62-652e-48d5-a9b0-4f9a0b9448e0",

"affise_event_name": "CustomId10",

"affise_event_category": "native",

"affise_event_timestamp": 1685449935544,

"affise_event_first_for_user": falso,

"affise_event_user_data": "about:blank",

"affise_event_data": {

"affise_event_custom_id_10": "PageFinishedLoading",

"affise_event_custom_id_{10}_timestamp": 1685449935544

},

"affise_parameters": {}

}

],

"affise_internal_events_count": 0,

"internal_events": [],

"affise_sdk_events_count": 0,

"sdk_events": [],

"affise_metrics_events_count": 0,

"metrics_events": []

}

]

Provedor affise_app_token

affise_app_token = SHA256(affiseAppId + createdTime + secretId)

onde:

  • affiseAppId - ID do aplicativo Affise.

  • createdTime - hora da solicitação.

  • secretId - chave secreta do SDK.

fun sha256(value: String) : String {

retorna MessageDigest.getInstance("SHA-256")

.digest(value.toByteArray())

.joinToString("") {

"%02x".format(it)

}

}

Exemplo:

affiseAppId

AffiseDemoApp

createdTime

1685463568000

secretId

be07d122-3f3c-11ec-9bbc-0242ac130002

SHA256

00c1c31859fcfecc7be3a4505d27bc189e6deebd544025ddd1017b770407974e

Integração da biblioteca de referência do Google Play

Para obter uma indicação corretamente, é necessário fazer a integração com a biblioteca do Google. Leia como fazer isso aqui.


Entre em contato com a equipe de Suporte ao Cliente da Affise sobre todas as questões levantadas por meio do e-mail: [email protected].

Respondeu à sua pergunta?