Trasferimenti dei rapporti di Campaign Manager

BigQuery Data Transfer Service per Campaign Manager consente di eseguire pianificare e gestire i job di caricamento ricorrenti per i dati dei report di Campaign Manager.

Report supportati

BigQuery Data Transfer Service per Campaign Manager (precedentemente noto come DoubleClick) Campaign Manager) supporta attualmente le seguenti opzioni di generazione dei report:

Per informazioni su come i report di Campaign Manager vengono trasformati per le tabelle e le viste BigQuery, consulta Trasformazioni dei report di Campaign Manager.

Opzione di segnalazione Assistenza
Pianificazione

Ogni 8 ore, in base all'ora di creazione.

Non configurabile

Finestra di aggiornamento

Ultimi 2 giorni

Non configurabile

Durata massima del backfill

Ultimi 60 giorni

Campaign Manager conserva i file Data Transfer per un massimo di 60 giorni. I file più vecchi di 60 giorni vengono eliminati da Campaign Manager.

Importazione dati da trasferimenti di Campaign Manager

Quando trasferisci i dati da Campaign Manager a BigQuery, vengono caricati in tabelle BigQuery partizionate per data. La partizione della tabella in cui vengono caricati i dati corrisponde alla data da l'origine dati. Se pianifichi più trasferimenti per la stessa data, BigQuery Data Transfer Service sovrascrive la partizione per quella data specifica con i dati più recenti. Più trasferimenti nello stesso giorno o backfill in esecuzione non generano dati duplicati e le partizioni per altre date non sono interessate.

Prima di iniziare

Prima di creare un trasferimento Campaign Manager:

  • Verifica di aver completato tutte le azioni richieste per abilitare BigQuery Data Transfer Service.
  • Crea un set di dati BigQuery per archiviare i dati di Campaign Manager.
  • Verificare che la tua organizzazione abbia accesso a Data Transfer di Campaign Manager File v2 (Campaign Manager DTv2). Questi file vengono pubblicati dal team di Campaign Manager a un bucket Cloud Storage. Per ottenere l'accesso ai file DTv2 di Campaign Manager, il passaggio successivo dipende dalla disponibilità di una contratto con Campaign Manager. In entrambi i casi, potrebbero essere applicati costi aggiuntivi.

    • Se hai un contratto con Campaign Manager, contatta Assistenza di Campaign Manager per configurare i file DTv2 di Campaign Manager.
    • Se non hai un contratto con Campaign Manager, la tua agenzia o Il rivenditore Campaign Manager può avere accesso a Campaign Manager DTv2 . Contatta la tua agenzia o il tuo rivenditore per accedere a questi file.

    Dopo aver completato questo passaggio, riceverai un nome bucket simile al seguente:

    dcdt_-dcm_account123456

  • Se intendi configurare le notifiche di esecuzione del trasferimento per Pub/Sub, deve avere le autorizzazioni pubsub.topics.setIamPolicy. Per ulteriori informazioni, vedi Notifiche di esecuzione di BigQuery Data Transfer Service.

Autorizzazioni obbligatorie

  • BigQuery: assicurati che la persona che crea il trasferimento abbia le seguenti autorizzazioni in BigQuery:

    • bigquery.transfers.update autorizzazioni per creare il trasferimento
    • Autorizzazioni bigquery.datasets.get e bigquery.datasets.update attive il set di dati di destinazione

    Il ruolo IAM predefinito bigquery.admin include bigquery.transfers.update, bigquery.datasets.update e Autorizzazioni bigquery.datasets.get. Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

  • Campaign Manager: accesso in lettura ai file DTv2 di Campaign Manager in Cloud Storage. L'accesso è gestito dall'entità da cui hai ricevuto il bucket Cloud Storage.

Configurare un trasferimento di Campaign Manager

L'impostazione di un trasferimento a Campaign Manager richiede:

  • Bucket Cloud Storage: l'URI del bucket Cloud Storage per I file DTv2 di Campaign Manager come descritto in Prima di iniziare. Il nome del bucket dovrebbe essere simile al seguente:

    dcdt_-dcm_account123456

  • ID Campaign Manager: la tua rete Campaign Manager, l'inserzionista o ID Floodlight. L'ID rete è l'elemento padre nella gerarchia.

Individuare l'ID Campaign Manager

Per recuperare l'ID Campaign Manager, puoi utilizzare la Cloud Storage console per esaminare i file Archiviazione cloud Data Transfer di Campaign Manager di sincronizzare la directory di una VM con un bucket. L'ID Campaign Manager viene utilizzato per trovare corrispondenze tra i file nella nel bucket Cloud Storage. L'ID è incorporato nel nome del file, non nella Nome del bucket Cloud Storage.

Ad esempio:

  • In un file denominato dcm_account123456_activity_*, l'ID è 123456.
  • In un file denominato dcm_floodlight7890_activity_*, l'ID è 7890.
  • In un file denominato dcm_advertiser567_activity_*, l'ID è 567.

Individuazione del prefisso del nome del file

In rari casi, i file nel bucket Cloud Storage potrebbero avere nomi di file non standard impostati da Google Marketing Platform Google Cloud.

Ad esempio:

  • In un file denominato dcm_account123456custom_activity_*, il prefisso è dcm_account123456custom: tutto prima _activity.

Contatta l'assistenza di Campaign Manager. se hai bisogno di aiuto.

Creare un trasferimento di dati per Campaign Manager

Console

  1. Vai alla pagina BigQuery nella console Google Cloud.

    Vai alla pagina di BigQuery

  2. Fai clic su Trasferimenti.

  3. Fai clic su Crea trasferimento.

  4. Nella pagina Crea trasferimento:

    • Nella sezione Tipo di origine, per Origine, scegli Campaign Manager.

      Origine trasferimento

    • Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome del trasferimento, ad esempio My Transfer. Il nome del trasferimento può essere qualsiasi valore che consenta di identificare facilmente il trasferimento se necessario per modificarlo in un secondo momento.

      Nome trasferimento

    • Nella sezione Opzioni di pianificazione, per Programmazione, lascia la valore predefinito (Inizia ora) oppure fai clic su Inizia a un orario prestabilito.

      • Per Si ripete, scegli un'opzione per la frequenza di esecuzione del trasferimento.

        • Ogni giorno (impostazione predefinita)
        • Ogni settimana
        • Ogni mese
        • Personalizzato
        • On demand

        Se scegli un'opzione diversa da Giornaliero, le opzioni aggiuntive saranno disponibili. Ad esempio, se scegli Settimanale, viene visualizzata un'opzione per selezionare il giorno della settimana.

      • In Data di inizio e ora di esecuzione, inserisci data e ora di inizio il trasferimento. Se scegli Inizia ora, l'opzione è disattivata.

        Pianificazione trasferimento

    • Nella sezione Impostazioni destinazione, per Set di dati di destinazione, scegli il set di dati creato per archiviare i tuoi dati.

      Trasferisci set di dati

    • Nella sezione Dettagli origine dati:

      • In Bucket Cloud Storage, inserisci o cerca il nome la console Cloud Storage in cui sono archiviati i file Data Transfer V2.0. Quando inserisci il parametro nome del bucket, non includere gs://.
      • In ID DoubleClick, inserisci l'ID Campaign Manager appropriato.
      • (Facoltativo) Se i file hanno nomi standard come questi esempi, lascia vuoto il campo Prefisso nome file. Completa Nome file solo se i file nel bucket Cloud Storage hanno nomi di file personalizzati come questo esempio.

        Dettagli sorgente Campaign Manager

    • (Facoltativo) Nella sezione Opzioni di notifica:

      • Fai clic sul pulsante di attivazione/disattivazione per abilitare le notifiche via email. Se attivi questa opzione, l'amministratore dei trasferimenti riceve una notifica via email quando un trasferimento non va a buon fine.
      • Per Seleziona un argomento Pub/Sub, scegli l'argomento o fai clic su Crea un argomento. Questa opzione configura l'esecuzione delle notifiche in Pub/Sub per il trasferimento.
  5. Fai clic su Salva.

bq

Inserisci il comando bq mk e fornisci il flag di creazione del trasferimento: --transfer_config. Sono necessari anche i seguenti flag:

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

Dove:

  • project_id è l'ID progetto.
  • dataset è il set di dati di destinazione per la configurazione del trasferimento.
  • name è il nome visualizzato della configurazione di trasferimento. La Transfer name può essere qualsiasi valore che consenta di identificare facilmente se devi modificarlo in un secondo momento.
  • parameters contiene i parametri per il trasferimento creato configurazione in formato JSON. Ad esempio: --params='{"param":"param_value"}'. Per Campaign Manager, devi fornire i parametri bucket e network_id. bucket è il Bucket Cloud Storage che contiene i file DTv2 di Campaign Manager. network_id è l'ID della tua rete, Floodlight o inserzionista.
  • data_source è l'origine dati - dcm_dt (Campagna responsabile).

Puoi anche fornire il flag --project_id per specificare una determinata progetto. Se --project_id non è specificato, viene utilizzato il progetto predefinito.

Ad esempio, il seguente comando crea un account Campaign Manager trasferimento denominato My Transfer utilizzando l'ID Campaign Manager 123456, Bucket Cloud Storage dcdt_-dcm_account123456 e set di dati di destinazione mydataset. Il parametro file_name_prefix è facoltativo e viene utilizzato per casi rari, personalizzati.

Il trasferimento viene creato nel progetto predefinito:

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

Dopo aver eseguito il comando, viene visualizzato un messaggio simile al seguente:

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

Segui le istruzioni e incolla il codice di autenticazione nel comando dalla riga di comando.

API

Utilizza la projects.locations.transferConfigs.create e fornisce un'istanza TransferConfig risorsa.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create campaign manager transfer config
public class CreateCampaignmanagerTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    String bucket = "gs://cloud-sample-data";
    // the network_id only allows digits
    String networkId = "7878";
    String fileNamePrefix = "test_";
    Map<String, Value> params = new HashMap<>();
    params.put("bucket", Value.newBuilder().setStringValue(bucket).build());
    params.put("network_id", Value.newBuilder().setStringValue(networkId).build());
    params.put("file_name_prefix", Value.newBuilder().setStringValue(fileNamePrefix).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Campaignmanager Config Name")
            .setDataSourceId("dcm_dt")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .build();
    createCampaignmanagerTransfer(projectId, transferConfig);
  }

  public static void createCampaignmanagerTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("Campaignmanager transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Campaignmanager transfer was not created." + ex.toString());
    }
  }
}

Risolvere i problemi di configurazione del trasferimento di Campaign Manager

Se riscontri problemi durante la configurazione del trasferimento, vedi Problemi di trasferimento di Campaign Manager in Risoluzione dei problemi relativi alle configurazioni di trasferimento.

Eseguire query sui dati

Quando vengono trasferiti in BigQuery, i dati vengono vengono scritte in tabelle partizionate in fase di importazione. Per ulteriori informazioni, vedi Introduzione alle tabelle partizionate.

Se esegui una query direttamente sulle tabelle anziché utilizzare le viste generate automaticamente, deve utilizzare la pseudocolonna _PARTITIONTIME nella query. Per ulteriori informazioni, consulta Esecuzione di query su tabelle partizionate.

Query di esempio in Campaign Manager

Puoi utilizzare le query di esempio di Campaign Manager riportate di seguito per analizzare i dati trasferiti. Puoi anche utilizzare le query in una visualizzazione come Looker Studio. Queste query vengono fornite per aiutarti a iniziare a interrogare i tuoi Dati di Campaign Manager con BigQuery. Per ulteriori domande su che cosa puoi fare con questi report, contatta il tuo account manager Campaign Manager come rappresentante tecnico.

In ciascuna delle seguenti query, sostituisci le variabili come dataset con i tuoi valori.

Campagne più recenti

La seguente query di esempio SQL recupera le campagne più recenti.

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

Impressioni e utenti distinti per campagna

La seguente query SQL di esempio analizza il numero di impressioni e gli utenti distinti per campagna negli ultimi 30 giorni.

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

Campagne più recenti ordinate per campagna e data

La seguente query SQL di esempio analizza le campagne più recenti negli ultimi 30 giorni, ordinati per campagna e data.

# 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.utility_us.date_greg`
  WHERE
    Date BETWEEN start_date
    AND end_date )
ORDER BY
  Campaign_ID,
  Date

Impressioni e utenti distinti per campagna in un intervallo di date

La seguente query SQL di esempio analizza il numero di impressioni e i dati utenti per campagna tra il giorno start_date e il giorno end_date.

# 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.utility_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_campaign_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

Impressioni, clic, attività e utenti distinti per campagna

La seguente query SQL di esempio analizza il numero di impressioni, clic attività e utenti distinti per campagna negli ultimi 30 giorni. Nella query, sostituisci le variabili come campaign_list con e i relativi valori. Ad esempio, sostituisci campaign_list con una virgola separata di tutte le campagne Campaign Manager di interesse che rientrano nell'ambito del query.

# 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.utility_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_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,
    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_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,
    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_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,
    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

Attività della campagna

La seguente query SQL di esempio analizza l'attività della campagna negli ultimi 30 giorni. In questa query, sostituisci le variabili come campaign_list con il tuo e i relativi valori. Ad esempio, sostituisci campaign_list con una virgola separata di tutte le campagne Campaign Manager di interesse che rientrano nell'ambito del query.

# 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_cats_campaign_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.utility_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