Transferências do Campaign Manager

Com o serviço de transferência de dados do BigQuery para Campaign Manager, programe e gerencie automaticamente jobs de carregamento recorrentes de dados de relatório do Campaign Manager.

Relatórios compatíveis

O serviço de transferência de dados do BigQuery para Campaign Manager (anteriormente conhecido como DoubleClick Campaign Manager) é compatível atualmente com as seguintes opções de relatório:

Para ver informações sobre como os relatórios do Campaign Manager são transformados em tabelas e visualizações do BigQuery, consulte Transformações de relatório do Campaign Manager.

Opção de relatório Suporte
Versão compatível da API 26 de junho de 2017
Programação

A cada 8 horas, com base no tempo de criação.

Não configurável

Atualizar janela

Últimos 2 dias

Não configurável

Duração máxima do preenchimento

Últimos 60 dias

O Campaign Manager mantém os arquivos de transferência de dados por até 60 dias. Ele excluirá os arquivos que excederem esse período.

Antes de começar

Antes de criar uma transferência do Campaign Manager, siga estas recomendações:

  • Verifique se você realizou todas as ações necessárias para ativar o BigQuery Data Transfer Service.
  • Crie um conjunto de dados do BigQuery para armazenar os dados do Campaign Manager.
  • Certifique-se de que sua organização tenha acesso aos arquivos de transferência de dados v2 do Campaign Manager (DTv2 do Campaign Manager). Esses arquivos são entregues pela equipe do Campaign Manager a um intervalo do Cloud Storage. Para ter acesso aos arquivos DTv2 do Campaign Manager, a próxima etapa será diferente se você tiver um contrato direto com o Campaign Manager. Nos dois casos, é possível que haja a cobrança de taxas adicionais.

    Se você tiver um contrato com o Campaign Manager, entre em contato com o suporte do Campaign Manager para configurar os arquivos DTv2 do Campaign Manager.

    Se você não tiver um contrato com o Campaign Manager, sua agência ou o revendedor do Campaign Manager poderá ter acesso aos arquivos DTv2 do Campaign Manager. Entre em contato com a agência ou o revendedor para ter acesso a esses arquivos.

    Após concluir esta etapa, você receberá um intervalo do Cloud Storage semelhante a este:

    dcdt_-dcm_account123456

    A equipe do Google Cloud NÃO tem como gerar ou conceder acesso a arquivos DTv2 do Campaign Manager em seu nome. Entre em contato com o suporte do Campaign Manager, sua agência ou o revendedor do Campaign Manager para acessar os arquivos DTv2 do Campaign Manager.

  • Certifique-se de que a pessoa que está criando a transferência tenha as seguintes permissões necessárias:
    • Campaign Manager: acesso de leitura aos arquivos DTv2 do Campaign Manager armazenados no Cloud Storage. O acesso é gerenciado pela entidade em que você recebeu o intervalo do Cloud Storage.
    • BigQuery: permissões de bigquery.transfers.update para criar a transferência e de bigquery.datasets.update no conjunto de dados de destino. O papel do IAM bigquery.admin predefinido para envolvidos no projeto inclui permissões bigquery.transfers.update e bigquery.datasets.update. Para mais informações sobre os papéis do IAM no BigQuery, consulte Controle de acesso.
  • Se você quiser criar transferências usando a IU da Web clássica do BigQuery, permita os pop-ups de bigquery.cloud.google.com. Assim, será possível ver a janela de permissões. Para que a transferência seja bem-sucedida, o serviço de transferência de dados do BigQuery precisa ter permissão para gerenciar suas campanhas do Campaign Manager.
  • As notificações de execução de transferência estão na versão Alfa. Se quiser configurar as notificações de transferência, você precisará ter permissões pubsub.topics.setIamPolicy para o Cloud Pub/Sub. As permissões do Cloud Pub/Sub não serão necessárias caso você configure notificações por e-mail. Para mais informações, consulte Notificações de execução do serviço de transferência de dados do BigQuery.

Como configurar uma transferência do Campaign Manager

Veja o que é necessário para configurar uma transferência do Campaign Manager:

  • Intervalo do Cloud Storage: o URI do intervalo do Cloud Storage referente aos arquivos DTv2 do Campaign Manager, conforme descrito em Antes de começar. O nome do intervalo é semelhante a este:

      dcdt_-dcm_account123456
    
  • Código do Campaign Manager: código do Campaign Manager Network, Advertiser ou Floodlight. O código do Network é o pai na hierarquia.

Como encontrar o código do Campaign Manager

Para recuperar seu código do Campaign Manager, use o console do Cloud Storage para examinar os arquivos no intervalo do Cloud Storage de transferência de dados do Google Ad Manager. O código do Campaign Manager é usado para corresponder arquivos no intervalo do Cloud Storage fornecido. O código fica incorporado no nome do arquivo, e não no nome do intervalo do Cloud Storage.

Exemplo:

  • Em um arquivo denominado dcm_account123456_activity_*, o código é 123456.
  • Em um arquivo denominado dcm_floodlight7890_activity_*, o código é 7890.
  • Em um arquivo denominado dcm_advertiser567_activity_*, o código é 567.

Como encontrar o prefixo do nome do arquivo (opcional)

Em casos raros, os arquivos no seu intervalo do Cloud Storage podem ter nomes personalizados, fora do padrão, que foram configurados para você pela equipe de serviços do Google Marketing Platform.

Exemplo:

  • Em um arquivo denominado dcm_account123456custom_activity_*, o prefixo é dcm_account123456custom, ou seja, tudo o que precede “_activity”.

Entre em contato com o suporte do Campaign Manager se precisar de ajuda.

Para criar uma transferência de dados do BigQuery para Campaign Manager:

IU clássica

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Transferências.

  3. Clique em Adicionar transferência.

  4. Na página Nova transferência:

    • Em Origem, selecione Campaign Manager (anteriormente conhecido como DCM).
    • Em Nome de exibição, digite um nome para a transferência, por exemplo, My Transfer. Esse nome pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la futuramente.
    • Em Conjunto de dados de destino, escolha o conjunto de dados apropriado.
    • Em Intervalo do Cloud Storage, insira o nome do intervalo do Cloud Storage que armazena os arquivos da Transferência de dados V2.0. Ao inserir esse nome, não inclua gs://.
    • Em Código da DoubleClick, digite o código adequado do Campaign Manager.
    • Opcional: se os arquivos tiverem nomes padrão como estes exemplos, deixe em branco o campo Prefixo do nome do arquivo. Preencha o campo Prefixo do nome do arquivo somente se os arquivos no intervalo do Cloud Storage tiverem nomes de arquivo personalizados como neste exemplo.

      Transferência de canal

    • Opcional: expanda a seção Avançado e configure as notificações de execução da transferência. As notificações de execução de transferência estão na versão Alfa.

      • Em Tópico do Cloud Pub/Sub, digite o nome do tópico, por exemplo, projects/myproject/topics/mytopic.
      • Marque Enviar notificações por e-mail para permitir notificações por e-mail sobre falhas na execução da transferência.
      • Não marque Desativada ao configurar uma transferência. Para desativar transferências, consulte esta página.

        Tópico do Cloud Pub/Sub

  5. Clique em Adicionar.

  6. Quando solicitado, clique em Permitir para conceder ao serviço de transferência de dados do BigQuery a permissão para acessar os dados de relatórios do Campaign Manager e gerenciá-los no BigQuery. É necessário permitir pop-ups do endereço bigquery.cloud.google.com para ver a janela de permissões.

    Permitir transferência

Linha de comando

Digite o comando bq mk e forneça a sinalização de criação da transferência --transfer_config. As sinalizações abaixo também são obrigatórias:

  • --data_source
  • --target_dataset
  • --display_name
  • --params

    bq mk --transfer_config --project_id=[PROJECT_ID] --target_dataset=[DATASET] --display_name=[NAME] --params='[PARAMETERS]' --data_source=[DATA_SOURCE]
    

Em que:

  • --project_id é o código do seu projeto;
  • --target_dataset é o conjunto de dados de destino para a configuração de transferência;
  • --display_name é o nome de exibição para a configuração de transferência. O nome da transferência é qualquer valor que facilite a identificação, caso seja necessário modificá-la posteriormente;
  • --params contém os parâmetros para a configuração da transferência criada no formato JSON. Por exemplo: --params='{"param":"param_value"}'. No Campaign Manager, é preciso fornecer os parâmetros bucket e network_id. bucket é o intervalo do Cloud Storage que contém os arquivos DTv2 do Campaign Manager. network_id é o código do Network, Floodlight ou Advertiser;
  • --data_source é a origem de dados: dcm_dt (Campaign Manager).

É possível também fornecer a sinalização --project_id para especificar um determinado projeto. Se --project_id não for especificado, o projeto padrão será usado.

Por exemplo, o comando a seguir cria uma transferência do Campaign Manager denominada My Transfer usando o código do Campaign Manager 123456, o intervalo do Cloud Storage dcdt_-dcm_account123456 e o conjunto de dados de destino mydataset. O parâmetro file_name_prefix é opcional, sendo usado apenas para nomes de arquivos personalizados e raros.

A transferência é criada no projeto padrão:

bq mk --transfer_config --target_dataset=mydataset --display_name='My Transfer' --params='{"bucket": "dcdt_-dcm_account123456","network_id": "123456","file_name_prefix":"YYY"}' --data_source=dcm_dt

Após executar o comando, você recebe uma mensagem semelhante a esta:

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

Siga as instruções e cole o código de autenticação na linha de comando.

API

Use o método projects.locations.transferConfigs.create e forneça uma instância do recurso TransferConfig.

Como solucionar problemas da configuração da transferência do Campaign Manager

Se você estiver com problemas para configurar a transferência, consulte Problemas de transferência do Campaign Manager em Como solucionar problemas de configuração do serviço de transferência de dados do BigQuery.

Como consultar dados

Quando os dados são transferidos para o BigQuery, eles são gravados em tabelas particionadas por tempo de processamento. Para mais informações, consulte Introdução às tabelas particionadas.

Use a pseudocoluna _PARTITIONTIME para consultar suas tabelas diretamente em vez de usar visualizações geradas automaticamente. Para mais informações, consulte Como consultar tabelas particionadas.

Consultas de amostra do Campaign Manager

Use as consultas de amostra do Campaign Manager a seguir para analisar os dados transferidos. Use-as também em uma ferramenta de visualização como Cloud Datalab ou Google Data Studio. Essas consultas são fornecidas para você começar a consultar seus dados do Campaign Manager com o BigQuery. Para solucionar outras dúvidas sobre o que fazer com esses relatórios, entre em contato com seu representante técnico do Campaign Manager.

Essas amostras usam a compatibilidade do BigQuery com o SQL padrão. Use a tag #standardSQL para informar ao BigQuery que você quer usar o SQL padrão. Para mais informações sobre o prefixo #standardSQL, consulte Como configurar o prefixo de uma consulta.

Nas consultas abaixo, substitua [DATASET] pelo nome do conjunto de dados. Substitua [DOUBLECLICK_ID] pelo código do Campaign Manager.

Campanhas mais recentes

O exemplo de consulta a seguir recupera as campanhas mais recentes.

IU clássica

#standardSQL
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
WHERE _DATA_DATE = _LATEST_DATE

Linha de comando

bq query --use_legacy_sql=false '
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
WHERE _DATA_DATE = _LATEST_DATE'

Impressões e usuários distintos por campanha

O exemplo de consulta a seguir analisa o número de impressões e usuários distintos por campanha nos últimos 30 dias.

IU clássica

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT Campaign_ID, DATA_DATE AS Date, count(*) AS count, count(distinct User_ID) AS du
FROM `[DATASET].impression[DOUBLECLICK_ID]` WHERE
  _DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
GROUP BY Campaign_ID, Date

Linha de comando

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT Campaign_ID, _DATA_DATE AS Date, count(*) AS count, count(distinct User_ID) AS du
FROM `[DATASET].impression_[DOUBLECLICK_ID]` WHERE
  _DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
GROUP BY Campaign_ID, Date'

Campanhas mais recentes ordenadas por campanha e data

O exemplo de consulta a seguir analisa as campanhas mais recentes nos últimos 30 dias ordenadas por campanha e data.

IU clássica

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT Campaign, Campaign_ID, Date FROM (
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
  WHERE _DATA_DATE = _LATEST_DATE
), (
SELECT date AS Date
  FROM `bigquery-public-data.common_us.date_greg`
  WHERE Date BETWEEN [START_DATE] AND [END_DATE]
)
ORDER BY
  Campaign_ID, Date

Linha de comando

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT Campaign, Campaign_ID, Date FROM (
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
  WHERE _DATA_DATE = _LATEST_DATE
), (
SELECT date AS Date
  FROM `bigquery-public-data.common_us.date_greg`
  WHERE Date BETWEEN [START_DATE] AND [END_DATE]
)
ORDER BY
  Campaign_ID, Date'

Impressões e usuários distintos por campanha dentro de um período

O exemplo de consulta a seguir analisa o número de impressões e usuários distintos por campanha entre [START_DATE] e [END_DATE].

IU clássica

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = \_LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN [START_DATE]
      AND [END_DATE] ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].impression[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN [START_DATE]
    AND [END_DATE]
  GROUP BY
    Campaign_ID,
    Date ) AS imp
ON
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
WHERE
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
ORDER BY
  base.Campaign_ID,
  base.Date

Linha de comando

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN [START_DATE]
      AND [END_DATE] ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].impression[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN [START_DATE]
    AND [END_DATE]
  GROUP BY
    Campaign_ID,
    Date ) AS imp
ON
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
WHERE
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
ORDER BY
  base.Campaign_ID,
  base.Date'

Impressões, cliques, atividades e usuários distintos por campanha

O exemplo de consulta a seguir analisa o número de impressões, cliques, atividades e usuários distintos por campanha nos últimos 30 dias.

IU clássica

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du,
  click.count AS click_count,
  click.du AS click_du,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
      AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].impression[DOUBLECLICK_ID]`
  WHERE
    DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS imp
ON
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
LEFT JOIN (
  SELECT
    Campaign_ID,
    DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].click[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS click
ON
  base.Campaign_ID = click.Campaign_ID
  AND base.Date = click.Date
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].activity[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS activity
ON
  base.Campaign_ID = activity.Campaign_ID
  AND base.Date = activity.Date
WHERE
  base.Campaign_ID IN [CAMPAIGN_LIST]
  AND (base.Date = imp.Date
    OR base.Date = click.Date
    OR base.Date = activity.Date)
ORDER BY
  base.Campaign_ID,
  base.Date

Linha de comando

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du,
  click.count AS click_count,
  click.du AS click_du,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
      AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].impression[DOUBLECLICK_ID]`
  WHERE
    DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS imp
ON
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
LEFT JOIN (
  SELECT
    Campaign_ID,
    DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].click[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS click
ON
  base.Campaign_ID = click.Campaign_ID
  AND base.Date = click.Date
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].activity[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS activity
ON
  base.Campaign_ID = activity.Campaign_ID
  AND base.Date = activity.Date
WHERE
  base.Campaign_ID IN [CAMPAIGN_LIST]
  AND (base.Date = imp.Date
    OR base.Date = click.Date
    OR base.Date = activity.Date)
ORDER BY
  base.Campaign_ID,
  base.Date'

Atividade da campanha

A consulta de amostra a seguir analisa a atividade da campanha nos últimos 30 dias. Nessa consulta, substitua [CAMPAIGN_LIST] por uma lista separada por vírgulas de todas as campanhas do Campaign Manager de interesse no escopo da consulta.

IU clássica

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT
  base.*,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      mt_at.Activity_Group,
      mt_ac.Activity,
      mt_ac.Activity_Type,
      mt_ac.Activity_Sub_Type,
      mt_ac.Activity_ID,
      mt_ac.Activity_Group_ID
    FROM
      `[DATASET].match_table_activity_cats[DOUBLECLICK_ID]` AS mt_ac
    JOIN (
      SELECT
        Activity_Group,
        Activity_Group_ID
      FROM
        `[DATASET].match_table_activity_types_[DOUBLECLICK_ID]`
      WHERE
        _DATA_DATE = _LATEST_DATE ) AS mt_at
    ON
      mt_at.Activity_Group_ID = mt_ac.Activity_Group_ID
    WHERE
      _DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN [START_DATE]
      AND [END_DATE] ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    Activity_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].activity_[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Activity_ID,
    Date ) AS activity
ON
  base.Campaign_ID = activity.Campaign_ID
  AND base.Activity_ID = activity.Activity_ID
  AND base.Date = activity.Date
WHERE
  base.Campaign_ID IN [CAMPAIGN_LIST]
  AND base.Activity_ID = activity.Activity_ID
ORDER BY
  base.Campaign_ID,
  base.Activity_Group_ID,
  base.Activity_ID,
  base.Date

Linha de comando

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT
  base.*,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      mt_at.Activity_Group,
      mt_ac.Activity,
      mt_ac.Activity_Type,
      mt_ac.Activity_Sub_Type,
      mt_ac.Activity_ID,
      mt_ac.Activity_Group_ID
    FROM
      `[DATASET].match_table_activity_cats[DOUBLECLICK_ID]` AS mt_ac
    JOIN (
      SELECT
        Activity_Group,
        Activity_Group_ID
      FROM
        `[DATASET].match_table_activity_types_[DOUBLECLICK_ID]`
      WHERE
        _DATA_DATE = _LATEST_DATE ) AS mt_at
    ON
      mt_at.Activity_Group_ID = mt_ac.Activity_Group_ID
    WHERE
      _DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN [START_DATE]
      AND [END_DATE] ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    Activity_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].activity_[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Activity_ID,
    Date ) AS activity
ON
  base.Campaign_ID = activity.Campaign_ID
  AND base.Activity_ID = activity.Activity_ID
  AND base.Date = activity.Date
WHERE
  base.Campaign_ID IN [CAMPAIGN_LIST]
  AND base.Activity_ID = activity.Activity_ID
ORDER BY
  base.Campaign_ID,
  base.Activity_Group_ID,
  base.Activity_ID,
  base.Date'
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.