Em resumo: Execute consultas personalizadas do DCR em tempo real nos seus dados de atribuição no sistema da AppsFlyer, nas suas fontes personalizadas ou em uma combinação de ambos. Visualize os resultados das suas consultas ou baixe os resultados completos.
Escritórios
Por que usar o Dynamic Query?
O Dynamic Query permite executar consultas ad hoc e personalizadas nos seus dados do DCR em tempo real para responder às suas perguntas específicas de marketing com rapidez e eficiência.
- Incorporando o poder e a flexibilidade do SQL, ele permite realizar pesquisas avançadas e cálculos complexos que não podem ser feitos de nenhuma outra forma. Com o Dynamic Query, você pode aplicar sua lógica de negócios a dados que, de outra forma, seriam inacessíveis.
- Além disso, o Dynamic Query possibilita obter respostas eficientes para perguntas pontuais ou ocasionais sem a necessidade de configurar relatórios. (É claro que os relatórios tradicionais do DCR ainda são a solução certa para recuperação e ingestão contínuas de dados.)
O Dynamic Query está disponível para todos os clientes do DCR, permitindo que você execute consultas e visualize os resultados sem usar créditos do seu pacote de DCR. Os créditos só serão cobrados se você decidir fazer o download dos resultados completos. Dessa forma, você pode ter certeza de que configurou suas consultas corretamente e de que obterá as respostas de que precisa antes de gerar qualquer cobrança.
Linguagem e dialeto de consulta
O Dynamic Query usa SQL (dialeto Spark SQL) e oferece suporte a:
- Instruções SELECT
- Funções SQL padrão
- Funções definidas pelo usuário (UDFs), mediante solicitação do cliente
- Se você precisar de uma função SQL não padrão, entre em contato com seu CSM ou com hello@appsflyer.com e faremos todo o possível para adicioná-la.
Fontes disponíveis
O Dynamic Query permite executar consultas personalizadas nas seguintes fontes de dados:
- Seus dados de atribuição no sistema da AppsFlyer
- Saiba mais sobre as tabelas de dados de atribuição e como consultá-las
- Fontes personalizadas que você configurou no DCR
Você pode consultar essas fontes individualmente ou combinar 2 ou mais usando instruções JOIN ou UNION. Essa flexibilidade torna o Dynamic Query útil em vários cenários, por exemplo:
- Consultar apenas dados de atribuição para obter insights entre aplicativos, explorar a integridade dos dados ou calcular métricas de atribuição personalizadas
- Consultar suas fontes personalizadas em conjunto com dados de atribuição para enriquecer seus dados com insights de atribuição
Com base nos tipos de fontes usados em uma consulta, regras são aplicadas para garantir a preservação rigorosa da privacidade do usuário.
Atenção
No momento, o Dynamic Query não consulta dados de atribuição nem retorna resultados da Meta (Facebook, Instagram etc.) Para consultar esses dados, configure os relatórios DCR.
Preservação da privacidade
Para garantir que o Dynamic Query mantenha conformidade rigorosa com os padrões de privacidade do DCR, os seguintes requisitos se aplicam a todas as consultas:
- Qualquer consulta que use dados de atribuição deve incluir uma instrução GROUP BY para que os resultados sejam agregados.
- As instruções UNION não podem ser usadas para combinar fontes personalizadas com dados de atribuição.
- O agrupamento pelos campos a seguir não é permitido:
-
Campos de dados de atribuição:
- appsflyer_id
- idfa
- idfv
- advertising_id
- android_id
- customer_user_
id - ip
- Campos de fontes personalizadas associados a qualquer um dos campos de dados de atribuição acima.
-
Campos de dados de atribuição:
- As funções a seguir não são permitidas quando executadas em dados de atribuição não agregados. Elas são permitidas quando executadas em dados de atribuição agregados ou em dados de fontes personalizadas:
- collect_list
- collect_set
- last
- last_value
- fisrt
- first_value
- máx
- mín
Para saber mais sobre o que deve e o que não deve ser feito na criação de consultas, veja exemplos e explicações de consultas válidas e inválidas.
Acesso ao Dynamic Query
- Na AppsFlyer, no menu lateral, vá para Colaborar > Data Clean Room.
- No menu superior, selecione a guia Dynamic Query.
Referência
Referência de consultas
As guias a seguir fornecem informações adicionais sobre como criar consultas no ambiente do Dynamic Query.
Combinação de fontes: JOIN e UNION
As instruções JOIN combinam fontes ao corresponder um campo em comum:
- Pode ser usado para combinar quaisquer fontes: tabelas de dados de atribuição e/ou fontes personalizadas
- Pode ser usado para combinar um número ilimitado de fontes
- Normalmente usado para enriquecer dados de fontes personalizadas com dados de atribuição
As instruções UNION anexam tabelas com esquema correspondente (com as mesmas colunas e tipos de dados):
- Pode ser usado para combinar tabelas de dados de atribuição ou fontes personalizadas; não pode ser usado para combinar tabelas de dados de atribuição com fontes personalizadas
- Pode ser usado para combinar um número ilimitado de fontes
- Normalmente usado para executar consultas em múltiplas tabelas de dados de atribuição
Consulta de tabelas de dados de atribuição
Os dados de atribuição no sistema AppsFlyer existem em 8 tabelas diferentes:
- Cada tabela inclui diferentes tipos de eventos de atribuição.
- O período para o qual os dados da consulta estão disponíveis varia de acordo com a tabela.
- Ao construir sua consulta no console Dynamic Query, passe o cursor sobre o nome de uma tabela no painel de seleção para ver as datas exatas de disponibilidade dos dados dessa tabela.
- As tabelas em cada um dos grupos abaixo têm schema correspondente, o que significa que você pode usar instruções UNION para consultar facilmente várias tabelas de uma só vez.
Grupo 1: Instalações de aplicativos e eventos de retargeting
| Nome da tabela | A descrição | Datas de disponibilidade dos dados |
|---|---|---|
| installs | Um usuário faz download, instala e abre um app mobile | 180 dias anteriores (sem incluir o dia atual) |
| re_installs | Um usuário instala um aplicativo, depois o desinstala e reinstala durante a janela de reatribuição | 180 dias anteriores (sem incluir o dia atual) |
| re_engagements | Um usuário inativo de um aplicativo específico interage com uma campanha de retargeting para o aplicativo e, posteriormente, o abre | 180 dias anteriores (sem incluir o dia atual) |
| re_attribution | Um ex-usuário de um aplicativo específico (que o havia desinstalado) interage com uma campanha de retargeting para o aplicativo e, posteriormente, o reinstala | 180 dias anteriores (sem incluir o dia atual) |
| instalações_orgânicas | Instalação não atribuída a um canal de mídia específico | 180 dias anteriores (sem incluir o dia atual) |
Grupo 2: Eventos in-app
| Nome da tabela | A descrição | Datas de disponibilidade dos dados |
|---|---|---|
| in_app_events | Eventos pós-instalação configurados para mensuração no SDK do aplicativo | Dia anterior + dia atual |
| in_app_organic_installs | Eventos in-app após uma instalação orgânica | Dia anterior + dia atual |
Grupo 3: Impressões
| Nome da tabela | A descrição | Datas de disponibilidade dos dados |
|---|---|---|
| impressions | Um anúncio é visualizado por um usuário do aplicativo ou visitante do site
|
5 dias anteriores + dia atual |
Queries de amostra
Estas consultas demonstram apenas algumas das possibilidades do que você pode fazer com o Dynamic Query. Você pode usá-las simplesmente para estimular suas ideias ou como ponto de partida para suas próprias consultas.
Para usar as consultas de exemplo como base para suas consultas:
- Copiar e colar: copie os exemplos de SQL de sua escolha e cole-os em uma planilha na guia Dynamic Query.
- Substituir parâmetros: modifique o código SQL substituindo os parâmetros pelas fontes e campos específicos que você quer consultar.
- Executar: clique no botão Run para executar uma consulta e visualizar os resultados.
- Executar uma consulta e visualizar os resultados não consome créditos.
- Os créditos do seu pacote DCR são consumidos apenas se você fizer o download dos resultados completos.
Obter insights entre aplicativos
Esta consulta recupera informações sobre os 3 aplicativos com mais reinstalações no Snapchat nos últimos 3 dias.
SELECT app_id, COUNT(*) AS reinstall_count FROM re_installs WHERE media_source = 'snapchat_int' AND dt BETWEEN DATE_SUB(current_date(), 3) AND current_date() GROUP BY app_id ORDER BY reinstall_count DESC LIMIT 3;
Explore a integridade dos dados
Para ajudar você a avaliar a integridade de dados, esta consulta calcula a taxa de valores nulos de IDFA para os 10 canais de mídia com o maior número de instalações nos últimos 7 dias.
SELECT media_source, COUNT(*) AS total_installs, ROUND((SUM(CASE WHEN idfa IS NULL THEN 1 ELSE 0 END) / COUNT(*)) * 100, 2) AS null_idfa_rate FROM installs WHERE dt BETWEEN DATE_SUB(current_date(), 3) AND current_date() GROUP BY media_source ORDER BY total_installs DESC LIMIT 10;
Calcule métricas de atribuição personalizadas
Ao calcular a média geométrica da diferença de tempo (em segundos) entre o horário de instalação e o horário do toque atribuído para cada canal de mídia e campanha, os dados resultantes fornecem insights sobre a eficiência de vários canais de mídia no que diz respeito às conversões de usuários e aos cronogramas de atribuição.
SELECT media_source,campaign,geo_mean(GREATEST(1, unix_timestamp(install_time, "yyyy-MM-dd HH:mm:ss") - unix_timestamp(attributed_touch_time, "yyyy-MM-dd HH:mm:ss.SSS"))) FROM installs GROUP BY 1,2
Enriqueça seus dados personalizados com insights de atribuição
Esta consulta usa dados de atribuição para agrupar uma pontuação da fonte personalizada C (c.score) por canal de mídia, permitindo que você use sua métrica personalizada para avaliar a performance relativa de vários canais de mídia.
SELECT media_source, sum(c.score) FROM client_input c JOIN install i on i.appsflyer_id = c.appsflyer_id GROUP BY media_source;
Junção complexa de atribuição e dados first-party
Esta consulta usa um processo mais complexo de junção de dados, permitindo a geração de insights avançados. Primeiro, ela recupera e unifica dados de 2 tabelas distintas de atribuição ("install" e "installRetarget"). Em seguida, ela combina esses dados com 2 fontes personalizadas first-party para fornecer insights sobre vários tipos de conversão, incluindo uma métrica de performance personalizada agregada (score) e a idade máxima de cada tipo.
SELECT conversion_type, SUM(sum_score), MAX(max_age) FROM (SELECT media_source, conversion_type, SUM(score) as sum_score, MAX(age) as max_age FROM (SELECT * from install union all select * FROM installRetarget) af JOIN client_input c on c.appsflyer_id = af.appsflyer_id JOIN client_age ca on ca.appsflyer_id = c.appsflyer_id GROUP BY media_source, conversion_type) GROUP BY conversion_type
Consultas inválidas
Estas consultas ilustram algumas das regras que a Dynamic Query usa para garantir compliance com os requisitos de privacidade do usuário. Use-as para entender melhor o que deve e o que não deve ser feito ao construir consultas para o DCR.
Sem instrução GROUP BY
Cada uma das consultas a seguir é inválida porque usa dados de atribuição, mas não inclui uma instrução GROUP BY:
SELECT * FROM install;
-----------------------------------------------------
SELECT media_source, appId FROM client_input c JOIN install af on af.appsflyer_id = c.appsflyer_id;
Agrupada por campo de dados de atribuição não permitido
A consulta a seguir é inválida porque agrupa por um campo de dados de atribuição não permitido (appsflyer_id):
SELECT appsflyer_id, count(*) FROM install GROUP BY appsflyer_id
-----------------------------------------------------
A consulta a seguir é inválida porque agrupa por um campo de dados de atribuição não permitido (appsflyer_id). Isso não é permitido, mesmo quando o campo está dentro de uma função:
SELECT substr(appsflyer_id, 0, 5), count(*) FROM install GROUP BY substr(appsflyer_id, 0, 5)
-----------------------------------------------------
A consulta a seguir é inválida porque agrupa por um campo de dados de atribuição não permitido (appsflyer_id). Isso não é permitido, mesmo quando o campo está dentro de um índice:
SELECT appsflyer_id, count(*) FROM install GROUP BY 1
Agrupada por campo de fonte personalizada associado a campo de dados de atribuição não permitido
A consulta a seguir é inválida porque agrupa por um campo de fonte personalizada (my_id) vinculado a um campo de dados de atribuição não permitido (appsflyer_id); portanto, a mesma restrição de agrupamento se aplica a my_id.
SELECT my_id, count(*) FROM installs JOIN my_source on my_source.my_id = installs.appsflyer_id GROUP BY my_id
Função restrita
A consulta a seguir é inválida porque tenta executar a função collect_list em dados de atribuição não agregados:
SELECT App_id, collect_list(appsflyer_id) FROM install GROUP BY app_id
-----------------------------------------------------
Compare com a consulta válida a seguir, que executa a função collect_list em dados de atribuição agregados:
SELECT app_id, collect_list(campaign) FROM (select app_id, campaign FROM Install GROUP BY 1, 2) GROUP BY app_id
-----------------------------------------------------
Compare com a consulta válida a seguir, que executa a função collect_list em dados de origem personalizados:
SELECT app_id, collect_list(c.score) FROM client_input c GROUP BY app_id
This article was translated using AI and may contain errors. For the most accurate information, please refer to the English version using the language selector.