Cost ETL - custo granular da campanha em um bucket

Premium

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.

5896_CostETL_graphic__2_.png

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 amostraObservaçã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.

Exemplo de estrutura de diretórios

cost_etl_structure_4.jpg

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:

  • geo
  • channel
file_name
  • summary
  • all-cost
Número do arquivo Parquet
  • Numerados a partir de 00000
  • Exemplo: part-

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:

  • Android
  • Windows Phone
  • iOS

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

  • Conta de anúncios da qual foram extraídos os dados de custos
  • Relevante para redes em que a conexão é efetuada através de oAuth (login com as suas credenciais), por exemplo, no Google Ads ou Meta Ads

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

  • Fuso horário dos dados tal como estão armazenados na AppsFlyer
  • Por vezes, as redes comunicam dados num fuso horário diferente do que está definido na AppsFlyer. Este ponto de dados ajuda a explicar as discrepâncias de custo entre a AppsFlyer e as redes

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

  • Contado pela AppsFlyer.
  • Inclui UA e retargeting.

Sim.

Se não estiver disponível nenhum valor para uma determinada métrica, esta é preenchida com 0.

Inteiro

clicks

  • Contado pela AppsFlyer.
  • Inclui UA e retargeting.

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

  • Diferença entre os contados pela ad network e pela AppsFlyer
  • Desconsiderar esta métrica se:
    • Não existe uma correspondência entre o custo e a atribuição.
    • A ad network não é compatível impressões reportadas.
Inteiro

-

clicks_discrepancy

  • Diferença entre os contados pela ad network e pela AppsFlyer
  • Desconsiderar esta métrica se:
    • Não existe uma correspondência entre o custo e a atribuição.
    • A ad network não é compatível com cliques reportados.
Inteiro

-

installs_discrepancy

  • Diferença entre os contados pela ad network e pela AppsFlyer
  • Desconsiderar esta métrica se:
    • Não existe uma correspondência entre o custo e a atribuição.
    • A ad network não é compatível com conversões reportadas.
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

  • Taxa de cliques Contado pela AppsFlyer
  • Fórmula: Cliques / impressões

 

 

 

 

Não

Inteiro

-

CVR

  • Taxa de conversão Contado pela AppsFlyer
  • Fórmula: Instalação / cliques
Inteiro

-

ecpm

  • Contado pela AppsFlyer
  • Fórmula: (Custo / impressões) * 1000 
Inteiro

cpi

  • Contado pela AppsFlyer
  • Fórmula: Custo/Instalações
Inteiro

ccvr

  • Custo por conversão
  • Fórmula: Custo / (instalações + reatribuições + reengajamentos)

Inteiro

cvvr

  • Taxa de visualização de vídeo concluída Contado pela AppsFlyer
  • Fórmula: Conclusões/impressões de vídeo
Inteiro

-

reported_cvr

  • Taxa de conversão reportada
  • Fórmula: Conversões reportadas / cliques reportados
Inteiro

ecpc

  • Contado pela AppsFlyer
  • Fórmula: Custo / cliques
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.

AppsFlyerAdmin_us-en.png Para configurar seu bucket AWS e Cost ETL:

  1. Faça login no console da AWS.
  2. Vá para o serviço S3.
  3. Crie o bucket:
    1. Clique em Criar bucket.
    2. 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.
    3. Clique em Criar bucket.
  4. Na AppsFlyer, no menu lateral, selecione Exportar > Cost ETL.
  5. Ative o Cost ETL.
  6. 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.
  7. Vá para Configurações do Amazon S3.

  8. 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. 
  9. Insira o nome do bucket do Amazon S3
  10. Clique em Próximo.
    A trecho do código da política do bucket aparece.

  11. Copie o snippet de código da política de bucket e cole-o nas configurações do AWS.
    1. No AWS, selecione o bucket que você criou para o Cost ETL. 
    2. Acesse a aba Permissões.
    3. Na seção Política de bucket, clique em Editar.
    4. A janela Política de bucket é aberta.
    5. Cole o snippet da política de bucket na janela.
  12. Nas configurações de Cost ETL da AppsFlyer, clique em Seguinte.
    A etapa Validar bucket é exibida. 
  13. Clique em Validar.
    Verificar se Validação bem sucedida aparece. 
  14. Clique em Próximo.
  15. Selecione uma ou mais apps ou todos os apps. Selecione todos para incluir automaticamente as aplicações que adicionar no futuro.
  16. Clique em Aplicar.
  17. Selecione pelo menos uma Dimensão garantida: Canal e/ou Geo.
  18. Selecione pelo menos uma dimensão adicional.

  19. Selecione pelo menos uma métrica a ser incluída nos relatórios. 

  20. 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. 

AppsFlyerAdmin_us-en.png Para configurar seu bucket GCS e Cost ETL:

  1. Faça login no console GCS.
  2. 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.
  3. Na AppsFlyer, no menu lateral, selecione Exportar > Cost ETL.
  4. Ative o Cost ETL
  5. 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.
  6. Vá para Destino dos dados e selecione .
  7. Insira o nome do bucket do GCS.
  8. Clique em Próximo.
    A conta de serviço da AppsFlyer aparece, para ser usada para definir as permissões do GCS.
  9. No seu console do GCS, defina as permissões de IAM para o bucket:
    1. Adicione a conta de serviço da AppsFlyer como principal ao repositório de ETL de custo.

    2. Atribua a função Administrador de objetos de armazenamento.
  10. Nas configurações de Cost ETL da AppsFlyer, clique em Seguinte.
    A etapa Validar bucket é exibida. 
  11. Clique em Validar.
    Verificar se Validação bem sucedida aparece. 
  12. Clique em Próximo.
  13. Selecione uma ou mais apps ou todos os apps. Selecione todos para incluir automaticamente as aplicações que adicionar no futuro.
  14. Clique em Aplicar.
  15. Selecione pelo menos uma Dimensão garantida: Canal e/ou Geo.
  16. Selecione pelo menos uma dimensão adicional.

  17. Selecione pelo menos uma métrica a ser incluída nos relatórios. 

  18. 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:

  1. Inscreva-se no AWS Management Console e abra a console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na lista Buckets, escolha o nome do bucket para o qual você deseja habilitar a Propriedade de Objeto S3.

  3. Acesse a aba de permissões.

  4. Em Propriedade do objeto, clique em Editar

  5. Selecione Propietário do bucket preferido.

  6. 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.