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 (antigo DoubleClick Campaign Manager) é compatível atualmente com as seguintes opções de relatório:

Para 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 da API compatível 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 serviço de transferência de dados do BigQuery.
  • Se estiver criando a transferência na IU clássica da Web do BigQuery, ative os pop-ups de bigquery.cloud.google.com no navegador para visualizar a janela de permissões. É necessário conceder a permissão do serviço de transferência de dados do BigQuery para gerenciar a transferência.
  • 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 do Data Transfer v2 do Campaign Manager (DTv2 do Campaign Manager). Esses arquivos são entregues pela equipe do Campaign Manager a um bucket do Cloud Storage. Para ter acesso aos arquivos do DTv2 do Campaign Manager, a próxima etapa dependerá se você tiver ou não um contrato direto com o Campaign Manager. Em ambos os casos, cobranças adicionais podem ser aplicadas.

    • Se você tiver um contrato com o Campaign Manager, entre em contato com o suporte do Campaign Manager para configurar os arquivos do 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 do DTv2 do Campaign Manager. Entre em contato com a agência ou o revendedor para ter acesso a esses arquivos.

    Depois de concluir essa etapa, você receberá um nome de bucket do Cloud Storage semelhante ao seguinte:

    dcdt_-dcm_account123456

  • Se você pretende configurar notificações de execução de transferência para o Pub/Sub, precisa ter permissões pubsub.topics.setIamPolicy. Para mais informações, consulte Notificações de execução do serviço de transferência de dados do BigQuery.

Permissões exigidas

  • BigQuery: verifique se a pessoa que está criando a transferência tem as permissões a seguir no BigQuery:

    • Permissões bigquery.transfers.update para criar a transferência
    • Permissões bigquery.datasets.update no conjunto de dados de destino

    O papel predefinido bigquery.admin do Cloud IAM inclui as permissões bigquery.transfers.update e bigquery.datasets.update. Para mais informações sobre os papéis do Cloud IAM no serviço de transferência de dados do BigQuery, consulte a Referência do controle de acesso.

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

Como configurar uma transferência do Campaign Manager

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

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

    dcdt_-dcm_account123456

  • ID do Campaign Manager: ID da rede do Campaign Manager, do Advertiser ou do Floodlight. O ID da rede é o pai na hierarquia.

Como encontrar o código do Campaign Manager

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

Exemplo:

  • Em um arquivo chamado dcm_account123456_activity_*, o ID é 123456.
  • Em um arquivo chamado dcm_floodlight7890_activity_*, o ID é 7890.
  • Em um arquivo chamado dcm_advertiser567_activity_*, o ID é 567.

Como encontrar o prefixo do nome do arquivo (opcional)

Em casos raros, os arquivos no seu bucket 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 chamado dcm_account123456custom_activity_*, o prefixo é dcm_account123456custom, tudo antes de _activity.

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

Criar uma transferência de dados para o Campaign Manager

Console

  1. Acesse a IU da Web do BigQuery no Console do Cloud.

    Acessar o Console do Cloud

  2. Clique em Transferências.

  3. Clique em Criar transferência.

  4. Na página Criar transferência:

    • Na seção Tipo de origem, em Origem, escolha Campaign Manager.

      Fonte da transferência

    • No campo Nome da configuração de transferência da seção Nome de exibição, insira um nome para a transferência, como My Transfer. Esse nome pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la futuramente.

      Nome da transferência

    • Na seção Opções de programação, não altere o valor padrão de Programação (Começar agora). Se preferir, clique em Começar no horário definido.

      • Em Repetições, escolha uma opção para a frequência de execução da transferência.

        • Diário (padrão)
        • Semanal
        • Mensal
        • Personalizada
        • Sob demanda

        Se você escolher uma opção diferente de "Diário", outras opções estarão disponíveis. Por exemplo, se você escolher "Semanal", aparecerá uma opção para selecionar o dia da semana.

      • Para Data e hora de início, insira a data e a hora para iniciar a transferência. Se você escolher Iniciar agora, essa opção ficará desativada.

        Programação da transferência

    • Na seção Configurações de destino, em Conjunto de dados de destino, escolha o conjunto criado para armazenar seus dados.

      Transferir conjunto de dados

    • Na seção Detalhes da fonte de dados:

      • Em Bucket do Cloud Storage, insira ou procure o nome do bucket do Cloud Storage que armazena os arquivos do Data Transfer 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 bucket do Cloud Storage tiverem nomes de arquivo personalizados como neste exemplo.

        Detalhes da origem do Campaign Manager

    • Opcional: na seção Opções de notificação:

      • Clique no botão para ativar as notificações por e-mail. Quando você ativa essa opção, o administrador de transferência recebe uma notificação por e-mail quando uma execução de transferência falha.
      • Em Selecionar um tópico do Pub/Sub, escolha o nome do tópico ou clique em Criar um tópico. Essa opção configura notificações de execução do Pub/Sub para sua transferência.
  5. Clique em Save.

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, insira um nome para a transferência, como My Transfer. Ele pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la no futuro;
    • Em Destination dataset, escolha o conjunto apropriado.
    • Em Bucket do Cloud Storage, insira o nome do bucket do Cloud Storage que armazena os arquivos do Data Transfer 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 bucket do Cloud Storage tiverem nomes de arquivo personalizados como neste exemplo.

      Transferência do Campaign Manager

    • (Opcional) Expanda a seção Advanced e configure as notificações de execução para a transferência.

      • Em Tópico do Pub/Sub, insira o nome do seu 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. Consulte Como trabalhar com transferências para desativar as transferências atuais.

        Tópico do Pub/Sub

  5. Clique em Add.

  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

CLI

Insira 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 ID do projeto;
  • dataset é o conjunto de dados de destino na configuração da transferência;
  • name é o nome de exibição da configuração da transferência. Ele pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la no futuro;
  • parameters contém os parâmetros para a configuração da transferência criada no formato JSON. Por exemplo, --params='{"param":"param_value"}'. Para o Campaign Manager, você deve fornecer os parâmetros bucket e network_id. bucket é o bucket do Cloud Storage que contém os arquivos do DTv2 do Campaign Manager; network_id é o ID da rede, do Floodlight ou do anunciante;
  • data_source é a fonte de dados: dcm_dt (Campaign Manager).

Também é possível 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 chamada My Transfer usando o ID do Campaign Manager 123456, o bucket do Cloud Storage dcdt_-dcm_account123456 e o conjunto de dados de destino mydataset. O parâmetro file_name_prefix é opcional e usado apenas para nomes de arquivos raros e personalizados.

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.

Solução de 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 direto as tabelas, em vez de usar visualizações geradas automaticamente. Para mais informações, veja 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. Também é possível usar as consultas em uma ferramenta de visualização, como o 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.

Em cada uma das consultas a seguir, substitua as variáveis, como dataset, pelos seus valores.

Campanhas mais recentes

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

Console

    SELECT
      Campaign,
      Campaign_ID
    FROM
      `dataset.match_table_campaigns_campaign_manager_id`
    WHERE
      _DATA_DATE = _LATEST_DATE
    

CLI

    bq query --use_legacy_sql=false \
    'SELECT
       Campaign,
       Campaign_ID
     FROM
       `dataset.match_table_campaigns_campaign_manager_id`
     WHERE
       _DATA_DATE = _LATEST_DATE'
    

Impressões e usuários distintos por campanha

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

Console

    # 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.impressioncampaign_manager_id`
      WHERE
        _DATA_DATE BETWEEN start_date
        AND end_date
      GROUP BY
        Campaign_ID,
        Date
    

CLI

    # 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.impressioncampaign_manager_id`
    WHERE
      _DATA_DATE BETWEEN start_date
      AND end_date
    GROUP BY
      Campaign_ID,
      Date'
    

Campanhas mais recentes ordenadas por campanha e data

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

Console

    # 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_campaign_manager_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
    

CLI

    # 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_campaign_manager_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

A consulta de amostra a seguir analisa o número de impressões e usuários distintos por campanha entre start_date e end_date.

Console

    # 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_campaign_manager_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.impressioncampaign_manager_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
    

CLI

    # 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_campaign_manager_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.impressioncampaign_manager_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

A consulta de amostra a seguir analisa o número de impressões, cliques, atividades e usuários distintos por campanha nos últimos 30 dias. Nessa consulta, substitua as variáveis como campaign_list pelos seus valores. Por exemplo, substitua campaign_list por uma lista separada por vírgulas de todas as campanhas relevantes do Campaign Manager dentro do escopo da consulta.

Console

    # 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_campaign_manager_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.impressioncampaign_manager_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.clickcampaign_manager_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.activitycampaign_manager_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
    

CLI

    # 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_campaign_manager_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.impressioncampaign_manager_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.clickcampaign_manager_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.activitycampaign_manager_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 as variáveis como campaign_list pelos seus valores. Por exemplo, substitua campaign_list por uma lista separada por vírgulas de todas as campanhas relevantes do Campaign Manager dentro do escopo da consulta.

Console

    # 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_campaign_manager_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_catscampaign_manager_id` AS mt_ac
        JOIN (
          SELECT
            Activity_Group,
            Activity_Group_ID
          FROM
            `dataset.match_table_activity_types_campaign_manager_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_campaign_manager_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
    

CLI

    # 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_campaign_manager_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_catscampaign_manager_id` AS mt_ac
        JOIN (
          SELECT
            Activity_Group,
            Activity_Group_ID
          FROM
            `dataset.match_table_activity_types_campaign_manager_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_campaign_manager_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'