Visão geral: O Cost ETL, parte do ROI360 da AppsFlyer, fornece aos anunciantes dados de custo de campanha com a melhor granularidade disponível por fonte de mídia. Dados, atualizados 4 vezes ao dia, são entregues para seu bucket AWS S3 ou GCS, prontos para serem enviados nos sistemas de BI do anunciante.
Princípios ETL de custos
Os dados de custo da campanha são registrados:
- No seu bucket para visualização, transferência e carregamento dos dados de custos nos seus sistemas.
- No bucket quatro vezes por dia (atualização dos dados: intradiária).
- Para o dia atual e nos 6 dias anteriores (referidos como 7 dias neste artigo), bem como os dias 14, 29 e 88. Os dados retroativos permitem atualizações e correções ao reportar os dados relativos aos custos.
- Para custos que correspondem a atribuição, clique ou impressão.
Observação:- Os dados relativos aos últimos 7 dias são extraídos de novo do canal de mídia. Os dados relativos aos dias 14, 29 e 88 são processados novamente.
- Apenas os dados de custos são atualizados retroativamente; não os dados de atribuição.
Os dados são fornecidos com dimensões primárias garantidas:
- Geolocalização: divisão por país
- Canal: canal da fonte de mídia, por exemplo, no caso do Google-YouTube
Você pode personalizar outras dimensões e as métricas incluídas nos relatórios de acordo com as suas necessidades.
Ver arquivo de amostra. Observação: A amostra fornecida é um arquivo Excel com a divisão dos dados por canal; os arquivos ETL de custos são enviados para o seu bucket como arquivos parquet.
Implementação
Dimensões do relatório
- Os relatórios são para todas os apps incluídos no Cost ETL, por dia, por lote.
- Cada vez que os dados são registrados no bucket, ou seja, 4 vezes por dia, todos os dados disponíveis são registrados, incluindo o histórico, as atualizações e as correções dos 6 dias anteriores e dos dias 14, 29 e 88. Tenha isto em consideração no seu processo de carregamento de dados.
- As estruturas dos relatórios são detalhadas natabela de campos do arquivo . As estruturas são:
- Relatório de síntese: É menos granular (detalhado) para permitir um consumo mais fácil e rápido.
- Relatórios de dimensão: Ter uma dimensão primária garantida. Isto significa que a dimensão está disponível para todos os canais de mídia contidas nesse relatório. Em contrapartida, se um canal de mídia não fornecer os dados da dimensão primária, esses dados não são incluídos no relatório da dimensão específica. As dimensões secundárias são incluídas quando disponíveis. Não são garantidos.
- As dimensões primárias (garantidas) disponíveis são:
- Geolocalização: Dados agrupados por país
- Canal Canal do canal de mídia, por exemplo, YouTube no caso do Google e Instagram no caso do Meta Ads.
- Você deve usar as dimensões e métricas que melhor se adaptam às suas necessidades comerciais. Isto pode variar de acordo com o canal de mídia.
- [Closed beta] Relatório de todos os custos: Com base na dimensão de geolocalização. Inclui dados de custo para todas as atividades de marketing em todas as plataformas, incluindo para apps/plataformas não adicionadas na AppsFlyer (nestes casos, o ID do app é marcado como desconhecido).
Estrutura de diretórios e nomes de arquivo
- Os dados registrados no bucket têm o diretório e a estrutura de arquivos descritos. Ver arquivo de amostra. Observação: A amostra fornecida é um arquivo Excel com a divisão dos dados por canal; os arquivos ETL de custos são enviados para o seu bucket como arquivos parquet.
- Quando o Cost ETL termina o registro em um diretório, é definido um sinalizador através da criação de um arquivo de sucesso. Este é sempre o carimbo de data/hora mais recente no diretório.
- Cada vez que os dados são registrados, eles incluem dados para o dia atual e os 6 dias anteriores (referidos como 7 dias neste artigo), bem como os dias 14, 29 e 88.
- O número de pastas/arquivos é o seguinte:
- Resumo: 4 pastas de lotes por dia.
- Cada pasta de lote contém arquivos parquet com 7 dias de dados.
- Dimensões: Cada dimensão garantida contém 4 pastas de lotes por dia.
- Cada pasta de lote contém arquivos parquet que contêm dados com numeração a partir de 1.
- [Closed beta] Todos os custos: Com base na dimensão de geolocalização, contém 4 pastas de lotes por dia.
- Resumo: 4 pastas de lotes por dia.
Exemplo de estrutura de diretórios
Estrutura do diretório
/<advertiser bucket name>/cost_etl/version/dt=<yyyy-mm-dd>/b=<n>/
<dimension>/<file name>
Estrutura do diretório
Variável |
Conteúdo |
---|---|
advertiser_bucket_name |
Tal como definido na configuração do Cost ETL: af-xpend-cost-etl-<af-account-id>-[sufixo do nome do seu bucket] |
cost_etl | Sempre cost_etl |
version | Versão do Cost ETL |
date |
Data do custo Formato: aaaa-mm-dd |
batch | Número 1-4, |
dimension |
Dimensão dos dados:
|
file_name |
|
Número do arquivo Parquet |
|
Estrutura do nome do arquivo
part-<number>
Exemplo
Para a primeira extração de dados de 23 de junho de 2020, a estrutura do nome do diretório e do arquivo é a seguinte
/bucket-name/cost_etl/v1/dt=2020-06-23/b=1/geo/part-00001
Campos de arquivo
Campos/Dimensões
Campo |
Observações |
Sempre preenchido |
Formato |
Incluído no arquivo de resumo |
---|---|---|---|---|
date |
Data em que o custo incorrido foi reportado pelo canal de mídia |
Sim |
String aaaa-mm-dd |
✓ |
app_id |
ID do aplicativo na plataforma da AppsFlyer |
Sim |
String |
✓ |
media_source |
Canal de mídia responsável pela apresentação do anúncio |
Sim |
String |
✓ |
os |
Sistema operativo do dispositivo. Valores possíveis:
|
Sim |
String |
- |
agency |
Agência responsável pela colocação do anúncio |
Não |
String |
- |
campanha |
Componente da hierarquia publicitária |
Não |
String |
- |
campaign_id |
Componente da hierarquia publicitária |
Não |
String |
- |
adset |
Componente da hierarquia publicitária |
Não |
String |
- |
adset_id |
Componente da hierarquia publicitária |
Não |
String |
- |
anúncio |
Componente da hierarquia publicitária |
Não |
String |
- |
ad_id |
Componente da hierarquia publicitária |
Não |
String |
- |
ad_account |
|
Não |
String |
- |
currency |
Moeda do gasto do anunciante conforme definido para o app na AppsFlyer |
Sim |
String de 3 caracteres em conformidade com a norma ISO-4217 |
✓ |
original_currency |
Moeda do custo tal como reportada pela rede antes de quaisquer conversões |
Sim |
String de 3 caracteres em conformidade com a norma ISO-4217 |
- |
timezone |
|
Sim |
String |
- |
geo |
Dimensão na hierarquia da publicidade |
Não |
Cadeia de 2 caracteres em conformidade com a norma ISO 3166 |
✓ |
channel |
Dimensão na hierarquia da publicidade |
Não |
String |
- |
keyword_term |
Palavra(s) utilizada(s) pelo usuário para pesquisa online |
Sim |
String |
- |
keyword_id |
ID dos termos da palavra-chave ASA |
Sim |
String |
- |
site_id |
Publisher ID |
Não |
String |
- |
campaign_objective |
Componente das propriedades da campanha. Saiba mais |
Não |
String |
- |
cost_model |
Componente das propriedades da campanha. Saiba mais |
Não |
String |
- |
af_cost_model |
Modelo de custo mapeado e normalizado pela AppsFlyer. Componente das propriedades da campanha. Saiba mais |
Não |
String |
- |
bid_strategy |
Componente das propriedades da campanha. Saiba mais |
Não |
String |
- |
af_bid_strategy |
Estratégia de lances mapeada e normalizada pela AppsFlyer. Componente das propriedades da campanha. Saiba mais |
Não |
String |
- |
bid_amount |
Componente das propriedades da campanha. Saiba mais |
Não |
Inteiro |
- |
original_bid_amount |
Componente das propriedades da campanha. Saiba mais |
Não |
Inteiro |
- |
Métricas
Campo |
Observações |
Sempre preenchido |
Formato |
Incluído no arquivo de resumo |
---|---|---|---|---|
impressões |
|
Sim. Se não estiver disponível nenhum valor para uma determinada métrica, esta é preenchida com 0. |
Inteiro |
✓ |
clicks |
|
Inteiro |
✓ |
|
reported_impressions |
Contado pelo canal de mídia |
Inteiro |
✓ |
|
reported_clicks |
Contado pelo canal de mídia |
Inteiro |
✓ |
|
installs |
Contado pela AppsFlyer |
Inteiro |
✓ |
|
reported_conversions |
Contado pelo canal de mídia |
Inteiro |
|
|
re_engagements |
Contado pela AppsFlyer |
Inteiro |
✓ |
|
re_attributions |
Contado pela AppsFlyer |
Inteiro |
✓ |
|
custo |
Valor das despesas (incluindo taxas de agências, se relevante) |
Valor |
✓ |
|
original_cost |
Custo conforme informado pela rede, na moeda informada pela rede antes de qualquer conversão de moeda (com taxas de agência calculadas pela AppsFlyer adicionadas quando relevante) |
Valor |
- |
|
impressions_discrepancy |
|
Inteiro |
- |
|
clicks_discrepancy |
|
Inteiro |
- |
|
installs_discrepancy |
|
Inteiro |
- |
|
taxas |
Taxas que uma agência cobra para além do custo normal do anúncio. Contado pela AppsFlyer |
Sim |
Inteiro |
- |
cost_without_fees |
Custo menos a taxa de agência. Contado pela AppsFlyer |
Sim |
Inteiro |
- |
original_cost_without_fees |
Custo original, conforme reportado pela ad network, sem taxas de agência |
Sim |
Inteiro |
- |
CTR |
|
Não |
Inteiro |
- |
CVR |
|
Inteiro |
- |
|
ecpm |
|
Inteiro |
- |
|
cpi |
|
Inteiro |
- |
|
ccvr |
|
Inteiro |
- |
|
cvvr |
|
Inteiro |
- |
|
reported_cvr |
|
Inteiro |
- |
|
ecpc |
|
Inteiro |
- |
|
video_25p_views |
Vídeo reproduzido 25%% Reportado pela ad network |
Inteiro |
- |
|
video_50p_views |
Vídeo reproduzido 50%% Reportado pela ad network |
Inteiro |
- |
|
video_75p_views |
Vídeo reproduzido 75%% Reportado pela ad network |
Inteiro |
- |
|
video_completions |
Reportado pela ad network |
Inteiro |
- |
Configurar Custo ETL para AWS S3
Este procedimento de configuração deve ser efetuado por um usuário administrador.
Antes de começar:
- A configuração do Cost ETL consiste em configurar seu bucket AWS (e dar permissão à AppsFlyer para registrar dados nele) e configurar o Cost ETL na AppsFlyer.
- Você precisará de privilégios de administrador da AWS e acesso à interface do usuário da AppsFlyer para concluir a configuração do Cost ETL.
- Mantenha as abas do AWS e da AppsFlyer abertas durante a configuração.
- Observação: A compatibilidade com criptografia de bucket KMS está atualmente em Beta.
Para configurar seu bucket AWS e Cost ETL:
- Faça login no console da AWS.
- Vá para o serviço S3.
- Crie o bucket:
- Clique em Criar bucket.
- Preencha o Nome do bucket da seguinte forma: Comece com o prefixo obrigatório
af-xpend-cost-etl-acc-
e depois adicione um sufixo como texto livre.- - O seu
af-account-id
pode ser encontrado na interface do usuário da AppsFlyer, conforme indicado nas etapas 7-9 seguintes. - Consulte os requisitos de nomenclatura de buckets do Amazon S3.
- O seu
- Clique em Criar bucket.
- Na AppsFlyer, no menu lateral, selecione Exportar > Cost ETL.
- Ative o Cost ETL.
- Em Calendário de relatórios, selecione quando você deseja receber o primeiro relatório. Os relatórios subsequentes chegam em intervalos de aproximadamente 6 horas.
- Vá para Configurações do Amazon S3.
- Selecione a região do seu bucket S3 a partir do dropdown.
Se a sua região não for apresentada, entre em contato com o seu CSM. - Insira o nome do bucket do Amazon S3
- Clique em Próximo.
A trecho do código da política do bucket aparece.
- Copie o snippet de código da política de bucket e cole-o nas configurações do AWS.
- No AWS, selecione o bucket que você criou para o Cost ETL.
- Acesse a aba Permissões.
- Na seção Política de bucket, clique em Editar.
- A janela Política de bucket é aberta.
- Cole o snippet da política de bucket na janela.
- Nas configurações de Cost ETL da AppsFlyer, clique em Seguinte.
A etapa Validar bucket é exibida. - Clique em Validar.
Verificar se Validação bem sucedida aparece. - Clique em Próximo.
- Selecione uma ou mais apps ou todos os apps. Selecione todos para incluir automaticamente as aplicações que adicionar no futuro.
- Clique em Aplicar.
- Selecione pelo menos uma Dimensão garantida: Canal e/ou Geo.
- Selecione pelo menos uma dimensão adicional.
- Selecione pelo menos uma métrica a ser incluída nos relatórios.
- Clique em Aplicar.
Configurar ETL de custo para GCS
Este procedimento de configuração deve ser efetuado por um usuário administrador.
Antes de começar:
- A configuração do Cost ETL consiste em configurar seu bucket GCS (e dar permissão à AppsFlyer para registrar dados nele) e configurar o Cost ETL na AppsFlyer.
- Você necessitará de privilégios de administrador do GCS e de acesso à interface do utilizador da AppsFlyer para concluir a configuração do Cost ETL.
- Mantenha as abas do GCS e da AppsFlyer abertos durante a configuração.
Para configurar seu bucket GCS e Cost ETL:
- Faça login no console GCS.
- Crie um bucket.
Dê ao bucket o nome que se segue:- Comece com o prefixo obrigatório
af-xpend-cost-etl-acc-
e depois adicione um sufixo como texto livre.- - O seu
af-account-id
pode ser encontrado na interface do usuário da AppsFlyer, conforme indicado nas etapas 6-8 seguintes. - Consulte os requisitos de nomenclatura de buckets do GCS.
- Comece com o prefixo obrigatório
- Na AppsFlyer, no menu lateral, selecione Exportar > Cost ETL.
- Ative o Cost ETL.
- Em Calendário de relatórios, selecione quando você deseja receber o primeiro relatório. Os relatórios subsequentes chegam em intervalos de aproximadamente 6 horas.
- Vá para Destino dos dados e selecione .
- Insira o nome do bucket do GCS.
- Clique em Próximo.
A conta de serviço da AppsFlyer aparece, para ser usada para definir as permissões do GCS. - No seu console do GCS, defina as permissões de IAM para o bucket:
-
Adicione a conta de serviço da AppsFlyer como principal ao repositório de ETL de custo.
- Atribua a função Administrador de objetos de armazenamento.
-
- Nas configurações de Cost ETL da AppsFlyer, clique em Seguinte.
A etapa Validar bucket é exibida. - Clique em Validar.
Verificar se Validação bem sucedida aparece. - Clique em Próximo.
- Selecione uma ou mais apps ou todos os apps. Selecione todos para incluir automaticamente as aplicações que adicionar no futuro.
- Clique em Aplicar.
- Selecione pelo menos uma Dimensão garantida: Canal e/ou Geo.
- Selecione pelo menos uma dimensão adicional.
- Selecione pelo menos uma métrica a ser incluída nos relatórios.
- Clique em Aplicar.
Propriedade de objetos AWS
No AWS, por padrão, quando a AppsFlyer registra objetos no seu bucket, o proprietário do objeto é a AppsFlyer. Dependendo do seu processo de carregamento de dados, poderá ter de alterar a propriedade predefinida para você - o proprietário do bucket.
Para alterar a propriedade dos objetos no seu bucket:
-
Inscreva-se no AWS Management Console e abra a console do Amazon S3 em https://console.aws.amazon.com/s3/.
-
Na lista Buckets, escolha o nome do bucket para o qual você deseja habilitar a Propriedade de Objeto S3.
-
Acesse a aba de permissões.
-
Em Propriedade do objeto, clique em Editar.
-
Selecione Propietário do bucket preferido.
-
Clique em Salvar.
Melhores práticas
Substituir dados
Ao extrair e analisar os seus dados, recomendamos extrair dados para uma data e um lote específicos, ou que substitua todos os dados anteriores para os dias que o lote atual fornece. Caso contrário, você poderá ver os mesmos dados repetidos.
Por exemplo, o lote 1 em 20 de fevereiro contém dados de 14 a 20 de fevereiro. Mas os lotes registrados em 19 de fevereiro também continham dados de 14 a 19 de fevereiro. Substitua os dados dos dias anteriores recebidos em 19 de fevereiro pelos dados recebidos no lote mais recente de 20 de fevereiro.
Geo versus canal
Nem todas as redes fornecem dados para todas as dimensões em conjunto. Os dados de geo e de canal no Meta ads são os exemplos mais comuns. É por isso que são fornecidos dois conjuntos de dados separados. É garantido que o conjunto de dados geográficos tenha dados geográficos e que o conjunto de dados de canais tenha dados de canais.
Em muitos casos e para muitos canais de mídia, os dados nos conjuntos geo e de canais serão idênticos. Como tal, consuma um dos conjuntos de dados (geo ou canal), de acordo com o que melhor se adequa às suas necessidades.
Se o acordo de integração com um determinado canal de mídia não incluir o canal, pelo que esse canal está em branco, tratamos esses dados como se contivessem o canal.
Dados agregados
O Cost ETL fornece dados flexíveis e granulares tão profundos quanto podem ser extraídos da ad network. Para extrair informações úteis de quantidades potencialmente tão grandes de dados, recomenda-se a agregação dos dados da forma que melhor se adapte às necessidades da sua empresa. Por exemplo, se você precisar compreender os dados de custos ao nível da campanha e do país, use essas dimensões.
Padronização nas redes
Nem todas as redes fornecem dados com a mesma granularidade. Por exemplo, o Meta Ads não fornece dados de custo de ID do site, enquanto o X Ads não fornece dados de custo geográfico. Preste atenção nestes casos ao agregar dados ETL de custos e certifique-se de que analisa dados semelhantes ao comparar redes.
Comparar dados
O Cost ETL fornece informações sobre todos os seus dados de custos. Algumas campanhas fornecidas no Cost ETL não aparecem em alguns painéis da AppsFlyer, por exemplo, dados de campanhas inativas, ou seja, campanhas sem nenhuma instalação registrada. Para comparar os dados, procure um ID de campanha específico no painel de visão geral e compare-o com os seus dados de custo no Cost ETL. Saiba mais sobre a disponibilidade dos dados de custos
Informações adicionais
Características e limitações
Característica | Observações |
---|---|
Fuso horário |
Se o fuso horário for alterado, os dados de custos são duplicados no dia e no dia seguinte à alteração. Saiba mais |
Atualização dos dados |
Intradiário. Durante a configuração do Cost ETL, você define a programação de relatórios, ou seja, quando você deseja que os relatórios cheguem. Observação: Quando os dados de custos chegam ao seu bucket, a transferência de dados para os seus sistemas de BI pode variar muito, dependendo do tamanho do relatório e do arquivo parquet, que pode ir de alguns KBs a muitos GBs. |