Em resumo: Envie dados de pedidos no nível do item para a AppsFlyer
com o parâmetro af_order_info. Tem suporte a dois formatos consistentes\n para compras de um ou vários itens. A AppsFlyer o mapeia automaticamente
para a estrutura exigida por cada ad network.
Por que os dados no nível do item são importantes
af_order_info é um parâmetro de evento que reporta os itens individuais de um pedido, independentemente de o pedido ter um item ou vários. Ele substitui os campos mais antigos af_content e af_content_list por um único formato mais completo para a mesma finalidade. Tem suporte a dois formatos de array consistentes para pedidos de um item e de vários itens e funciona em cinco networks (Google Ads, DV360, Meta, TikTok, Snapchat e Pinterest), em vez de exigir uma estrutura separada para cada uma.
Enviar esse nível de detalhamento é importante porque essas networks agora otimizam campanhas usando mais do que apenas o valor total de um pedido. Meta, Google, TikTok, Snapchat e Pinterest oferecem suporte a algoritmos de otimização que funcionam no nível do produto, usando detalhes como ID do item, preço, quantidade, categoria e marca para melhorar a segmentação e os lances. Quanto mais completa for a discriminação dos itens que você enviar, mais essas networks poderão usar para ajustar essas campanhas.
Estrutura dos parâmetros
Cada item de um pedido pode ser descrito usando até 7 campos. A AppsFlyer tem suporte a duas formas de estruturar esses campos em af_order_info, descritas abaixo.
Ele é enviado como parte do event_value (ou custom_data) do seu evento e funciona da mesma forma, independentemente de o pedido ter um item ou vários, para que você possa padronizá-lo em vez de manter vários formatos de dados de pedido.
Os sete campos são:
| Campo | A descrição | Suportado por |
|---|---|---|
sku |
ID do item ou unidade de manutenção de estoque (SKU) | Google, DV360, Meta, Snapchat, Pinterest, TikTok |
revenue |
Preço do item | Google, DV360, Meta, Snapchat, Pinterest, TikTok |
qtd |
Quantidade comprada | Google, DV360, Meta, Snapchat, Pinterest, TikTok |
content_name |
Nome do item ou do produto | Tiktok |
content_type |
Tipo de item. Os únicos valores compatíveis são product (quando o SKU é um SKU específico) e product_group (quando o SKU é um item_group_id) |
Tiktok |
content_category |
Categoria do item | TikTok, Snapchat |
Marca |
Marca do item | TikTok, Snapchat |
Você não precisa preencher todos os sete campos para cada item. Envie o que for relevante para sua empresa e para as networks em que você executa campanhas. Os campos que você deixar de fora simplesmente não serão incluídos no postback para as networks que, de outra forma, os receberiam. Os campos mais importantes e comuns para enviar são sku, receita e qty.
A AppsFlyer tem suporte a duas formas de estruturar af_order_info, ambas aninhadas em event_value:
-
Um campo para todos os itens (recomendado): cada campo, como
sku,revenueeqty, é enviado uma vez, como um array que abrange todos os itens do pedido. Isso mantém o payload mais curto. - Um objeto por item: cada item do pedido é enviado como seu próprio objeto, com todos os campos relevantes aninhados dentro dele.
O exemplo a seguir mostra o formato recomendado, com um campo para todos os itens:
{
"af_order_info": {
"sku": ["SKU-001", "SKU-002", "SKU-003"],
"revenue": [50.00, 75.00, 25.00],
"qty": [1, 1, 2],
"content_name": ["Wireless Mouse", "Bluetooth Headphones", "USB-C Cable"],
"content_type": ["product", "product", "product"],
"content_category": ["accessories", "audio", "cables"],
"brand": ["Logitech", "Sony", "Anker"]
}
}O exemplo a seguir mostra o formato alternativo, com um objeto por item:
{
"af_order_info": [
{
"sku": "SKU-001",
"revenue": 50.00,
"qty": 1,
"content_name": "Wireless Mouse",
"content_type": "product",
"content_category": "accessories",
"brand": "Logitech"
},
{
"sku": "SKU-002",
"revenue": 75.00,
"qty": 1,
"content_name": "Bluetooth Headphones",
"content_type": "product",
"content_category": "audio",
"brand": "Sony"
},
{
"sku": "SKU-003",
"revenue": 25.00,
"qty": 2,
"content_name": "USB-C Cable",
"content_type": "product",
"content_category": "cables",
"brand": "Anker"
}
]
}Mapeamento por network
A AppsFlyer lê a matriz af_order_info e a reestrutura automaticamente no formato esperado pela API de cada network. O suporte a campos varia de acordo com a network, por isso nem todos os campos que você envia chegam a todas as networks. A tabela a seguir mostra os campos que cada network aceita no momento:
| Rede | Campos compatíveis |
|---|---|
| Google Ads / DV360 |
sku, qty, revenue
|
| Meta (Facebook) |
sku, qty, receita
|
| Tiktok |
sku, qty, receita, content_name, content_type, content_category, marca (todos os sete campos) |
| Snapchat |
sku, receita, marca, content_category. O AppsFlyer envia a quantidade apenas como uma contagem total de itens, não por item |
sku, receita, qty
|
Google Ads e DV360
O AppsFlyer mapeia os campos para o array items em app_event_data:
"app_event_data": {
"items": [
{"item_id": "SKU-001", "quantity": "1", "price": "50.0"},
{"item_id": "SKU-002", "quantity": "1", "price": "75.0"},
{"item_id": "SKU-003", "quantity": "2", "price": "25.0"}
]
}
Meta (Facebook)
A AppsFlyer mapeia os campos para fb_content:
"fb_content": [
{"id": "SKU-001", "quantity": 1, "item_price": 50.00},
{"id": "SKU-002", "quantity": 1, "item_price": 75.00},
{"id": "SKU-003", "quantity": 2, "item_price": 25.00}
]
Tiktok
A AppsFlyer mapeia os campos para properties.contents. O TikTok é a única network, entre as cinco, que aceita todos os sete campos:
"properties": {
"contents": [
{
"content_type": "product",
"content_category": "accessories",
"content_name": "Wireless Mouse",
"quantity": 1,
"brand": "Logitech",
"content_id": "SKU-001",
"price": 50.00
}
],
"currency": "USD",
"value": 175.00
}
Snapchat
A AppsFlyer mapeia os campos para parâmetros de consulta de URL. O Snapchat não recebe a quantidade por item. Em vez disso, number_items reflete a quantidade total de todos os itens do pedido:
&item_ids=SKU-001,SKU-002,SKU-003&number_items=5&price=50.00,75.00,25.00&brands=Logitech,Sony,Anker&category=accessories,audio,cables
A AppsFlyer mapeia os campos para contents:
"contents": [
{"id": "SKU-001", "item_price": "50.00", "quantity": 1},
{"id": "SKU-002", "item_price": "75.00", "quantity": 1},
{"id": "SKU-003", "item_price": "25.00", "quantity": 2}
]
Compatibilidade retroativa
Os formatos existentes também continuam a funcionar, incluindo os campos baseados em array af_content_id, af_quantity e af_price, além dos campos af_content e af_content_list. Não é necessário migrar as implementações existentes. af_order_info estará disponível daqui para frente em um único formato mais completo. Isso é particularmente útil se você quiser transmitir detalhes mais avançados sobre os itens, como nome, categoria e marca, do que os formatos antigos permitem.
Importante!
Como af_order_info é compatível apenas com as networks listadas neste artigo, continue enviando essas informações nos campos existentes, como af_content_id, af_content_list, af_content_type e af_quantity, se você executar campanhas com outras networks que precisem disso.
Se você já enviou essas informações no formato esperado pela Meta (em af_content, que a AppsFlyer mapeou para fb_content), agora pode remover esse campo do payload. A nova solução também oferece suporte à Meta em fb_content nativamente.
Especificações e limitações
| Caraterística | Visão geral |
|---|---|
| Redes Suportadas | A AppsFlyer oferece suporte a af_order_info somente para as network listadas neste artigo. Outras networks ainda podem oferecer suporte ao formato antigo. |
| Plataformas compatíveis | No momento, esta solução oferece suporte apenas a compras in-app em aplicativos mobile. A AppsFlyer planeja adicionar suporte a outras plataformas, como websites, em uma fase posterior. |
| Comprimento do valor do evento | O comprimento total do campo event_value, incluindo af_order_info, não pode exceder 3.000 caracteres. |