Crea una pipeline ELT per i dati di analisi di marketing

Questo tutorial mostra come configurare un workflow ELT che estrae, carica e trasforma i dati di analisi di marketing in BigQuery.

Un tipico flusso di lavoro ELT estrae periodicamente nuovi dati dei clienti dall'origine dati e li carica in BigQuery. I dati non strutturati vengono quindi elaborati in metriche significative. In questo tutorial, crei un flusso di lavoro ELT configurando un trasferimento di dati di analisi di marketing utilizzando BigQuery Data Transfer Service. Poi, pianifichi l'esecuzione periodica di Dataform per trasformare i dati.

In questo tutorial, utilizzi Google Ads come origine dati, ma puoi utilizzare una qualsiasi delle origini dati supportate da BigQuery Data Transfer Service.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Ruoli obbligatori

    Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

    Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

    Pianificare trasferimenti di dati ricorrenti

    Per mantenere BigQuery aggiornato con i dati di marketing più recenti della tua origine dati, configura trasferimenti di dati ricorrenti utilizzando BigQuery Data Transfer Service per estrarre e caricare i dati in base a una pianificazione.

    In questo tutorial utilizzerai Google Ads come origine dati di esempio. Per un elenco completo delle origini dati supportate da BigQuery Data Transfer Service, consulta Origini dati supportate.

    1. Vai alla pagina Trasferimenti di dati nella console Google Cloud .

      Vai a Trasferimenti dati

    2. Fai clic su Crea trasferimento.

    3. Nella sezione Tipo di origine, scegli Google Ads per Origine.

    4. Nella sezione Dettagli origine dati:

      1. In ID cliente, inserisci il tuo ID cliente Google Ads.
      2. In Tipo di report, seleziona Standard. Il report standard include il set standard di report e campi descritto in Trasformazione dei report di Google Ads.
        • In Finestra di aggiornamento, inserisci 5.
    5. Nella sezione Impostazioni destinazione, per Set di dati, seleziona il set di dati che hai creato per archiviare i dati.

    6. Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci Marketing tutorial.

    7. Nella sezione Opzioni di pianificazione:

      • Per Frequenza di ripetizione, seleziona Giorni.
      • In At, inserisci 08:00.
    8. Fai clic su Salva.

    Dopo aver salvato la configurazione, BigQuery Data Transfer Service inizia il trasferimento dei dati. In base alle impostazioni nella configurazione del trasferimento, il trasferimento di dati viene eseguito una volta al giorno alle 08:00 UTC ed estrae i dati da Google Ads degli ultimi cinque giorni.

    Puoi monitorare i job di trasferimento in corso per controllare lo stato di ogni trasferimento di dati.

    Esegui query sui dati della tabella

    Quando vengono trasferiti a BigQuery, i tuoi dati vengono scritti in tabelle partizionate per data di importazione. Per ulteriori informazioni, consulta Introduzione alle tabelle partizionate.

    Se esegui query direttamente sulle tabelle anziché utilizzare le viste generate automaticamente, devi utilizzare la pseudocolonna _PARTITIONTIME nella query. Per maggiori informazioni, consulta la pagina Esecuzione di query sulle tabelle partizionate.

    Le sezioni seguenti mostrano query di esempio che puoi utilizzare per esaminare i dati trasferiti.

    Rendimento della campagna

    La seguente query di esempio analizza il rendimento della campagna Google Ads negli ultimi 30 giorni.

    Console

    SELECT
      c.customer_id,
      c.campaign_name,
      c.campaign_status,
      SUM(cs.metrics_impressions) AS Impressions,
      SUM(cs.metrics_interactions) AS Interactions,
      (SUM(cs.metrics_cost_micros) / 1000000) AS Cost
    FROM
      `DATASET.ads_Campaign_CUSTOMER_ID` c
    LEFT JOIN
      `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs
    ON
      (c.campaign_id = cs.campaign_id
      AND cs._DATA_DATE BETWEEN
      DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY))
    WHERE
      c._DATA_DATE = c._LATEST_DATE
    GROUP BY
      1, 2, 3
    ORDER BY
      Impressions DESC

    bq

      bq query --use_legacy_sql=false '
      SELECT
        c.customer_id,
        c.campaign_name,
        c.campaign_status,
        SUM(cs.metrics_impressions) AS Impressions,
        SUM(cs.metrics_interactions) AS Interactions,
        (SUM(cs.metrics_cost_micros) / 1000000) AS Cost
      FROM
        `DATASET.ads_Campaign_CUSTOMER_ID` c
      LEFT JOIN
        `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs
      ON
        (c.campaign_id = cs.campaign_id
        AND cs._DATA_DATE BETWEEN
        DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY))
      WHERE
        c._DATA_DATE = c._LATEST_DATE
      GROUP BY
        1, 2, 3
      ORDER BY
        Impressions DESC'

    Sostituisci quanto segue:

    • DATASET: il nome del set di dati che hai creato per archiviare la tabella trasferita
    • CUSTOMER_ID: il tuo ID cliente Google Ads.

    Conteggio delle parole chiave

    La seguente query di esempio analizza le parole chiave in base a campagna, gruppo di annunci e stato della parola chiave. Questa query utilizza la funzione KeywordMatchType. I tipi di corrispondenza delle parole chiave consentono di controllare le ricerche che attivano la pubblicazione dell'annuncio. Per saperne di più sulle opzioni di corrispondenza delle parole chiave, consulta l'articolo Informazioni sulle opzioni di corrispondenza delle parole chiave.

    Console

      SELECT
        c.campaign_status AS CampaignStatus,
        a.ad_group_status AS AdGroupStatus,
        k.ad_group_criterion_status AS KeywordStatus,
        k.ad_group_criterion_keyword_match_type AS KeywordMatchType,
        COUNT(*) AS count
      FROM
        `DATASET.ads_Keyword_CUSTOMER_ID` k
        JOIN
        `DATASET.ads_Campaign_CUSTOMER_ID` c
      ON
        (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE)
      JOIN
        `DATASET.ads_AdGroup_CUSTOMER_ID` a
      ON
        (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE)
      WHERE
        k._DATA_DATE = k._LATEST_DATE
      GROUP BY
        1, 2, 3, 4

    bq

      bq query --use_legacy_sql=false '
      SELECT
        c.campaign_status AS CampaignStatus,
        a.ad_group_status AS AdGroupStatus,
        k.ad_group_criterion_status AS KeywordStatus,
        k.ad_group_criterion_keyword_match_type AS KeywordMatchType,
        COUNT(*) AS count
      FROM
        `DATASET.ads_Keyword_CUSTOMER_ID` k
      JOIN
        `DATASET.ads_Campaign_CUSTOMER_ID` c
      ON
        (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE)
      JOIN
        `DATASET.ads_AdGroup_CUSTOMER_ID` a
      ON
        (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE)
      WHERE
        k._DATA_DATE = k._LATEST_DATE
      GROUP BY
        1, 2, 3, 4'

    Sostituisci quanto segue:

    • DATASET: il nome del set di dati che hai creato per archiviare la tabella trasferita
    • CUSTOMER_ID: il tuo ID cliente Google Ads.

    Crea un repository Dataform

    Dopo aver creato la configurazione del trasferimento dei dati per trasferire i dati più recenti da Google Ads, configura Dataform per trasformare regolarmente i dati di analisi del marketing. Dataform ti consente di pianificare trasformazioni regolari dei dati e di definirle con SQL, collaborando con altri analisti di dati.

    Crea un repository Dataform per archiviare le query SQLX che compongono il codice di trasformazione.

    1. Nella console Google Cloud , vai alla pagina Dataform.

      Vai a Dataform

    2. Fai clic su Crea repository.

    3. Nella pagina Crea repository:

      1. Nel campo ID repository, inserisci marketing-tutorial-repository.
      2. Nell'elenco Regione, seleziona una regione.
      3. Fai clic su Crea.

    Il repository marketing-tutorial-repository viene ora visualizzato nell'elenco dei repository Dataform.

    Per saperne di più sui repository Dataform, vedi Informazioni sui repository Dataform.

    Crea e inizializza un'area di lavoro di sviluppo Dataform

    Crea un workspace di sviluppo Dataform in modo da poter lavorare sul codice di trasformazione all'interno del repository prima di eseguire il commit e il push delle modifiche nel repository.

    1. Nella console Google Cloud , vai alla pagina Dataform.

      Vai a Dataform

    2. Fai clic su marketing-tutorial-repository.

    3. Fai clic su Crea area di lavoro di sviluppo.

    4. Nella finestra Crea area di lavoro di sviluppo:

      1. Nel campo ID area di lavoro, inserisci marketing-tutorial-workspace.
      2. Fai clic su Crea.

      Viene visualizzata la pagina del workspace di sviluppo.

    5. Fai clic su Inizializza area di lavoro.

    L'area di lavoro di sviluppo marketing-tutorial-workspace viene ora visualizzata nel repository marketing-tutorial-repository nella scheda Workspace di sviluppo, insieme a due file di esempio nella directory definitions denominati *first_view.sqlx e *second_view.sqlx.

    Per saperne di più sui workspace di sviluppo Dataform, consulta la panoramica dei workspace di sviluppo.

    Dichiarare la tabella Google Ads come origine della tabella

    Collega la tabella Google Ads appena trasferita a Dataform dichiarandola come origine dati seguendo questi passaggi:

    Crea un file SQLX per la dichiarazione dell'origine dati

    In Dataform, dichiari una destinazione dell'origine dati creando un file SQLX nella directory definitions/:

    1. Nella console Google Cloud , vai alla pagina Dataform.

      Vai alla pagina Dataform

    2. Seleziona marketing-tutorial-repository.

    3. Seleziona marketing-tutorial-workspace.

    4. Nel riquadro File, accanto a definitions/, fai clic sul menu Altro.

    5. Fai clic su Crea file.

    6. Nel riquadro Crea nuovo file:

      1. Nel campo Aggiungi un percorso del file, dopo definitions/, inserisci il nome definitions/googleads-declaration.sqlx.
      2. Fai clic su Crea file.

    Dichiarare un'origine dati

    Modifica definitions/googleads-declaration.sqlx per dichiarare una tabella Google Ads trasferita come origine dati. Questo esempio dichiara la tabella ads_Campaign come origine dati:

    1. Nell'area di lavoro di sviluppo, nel riquadro File, fai clic sul file SQLX per la dichiarazione dell'origine dati.
    2. Nel file, inserisci il seguente snippet di codice:

          config {
              type: "declaration",
              database: "PROJECT_ID",
              schema: "DATASET",
              name: "ads_Campaign_CUSTOMER_ID",
          }

    Definisci la trasformazione

    Definisci le trasformazioni dei dati creando un file SQLX nella directory definitions/. In questo tutorial, creerai una trasformazione giornaliera che aggrega metriche come clic, impressioni, costi e conversioni utilizzando un file denominato daily_performance.sqlx.

    Crea il file SQLX di trasformazione

    1. Nel riquadro File, accanto a definitions/, fai clic sul menu Altro e poi seleziona Crea file.
    2. Nel campo Aggiungi un percorso del file, inserisci definitions/daily_performance.sqlx.
    3. Fai clic su Crea file.

    Definisci il file SQLX di trasformazione

    1. Nel riquadro File, espandi la directory definitions/.
    2. Seleziona daily_performance.sqlx, quindi inserisci la seguente query:

          config {
              type: "table",
              schema: "reporting",
              tags: ["daily", "google_ads"]
          }
          SELECT
              date,
              campaign_id,
              campaign_name,
          SUM(clicks) AS total_clicks
          FROM
              `ads_Campaign_CUSTOMER_ID`
          GROUP BY
              date,
              campaign_id,
              campaign_name
              ORDER BY
              date DESC

    Esegui il commit e il push delle modifiche

    Dopo aver apportato le modifiche nello spazio di lavoro di sviluppo, puoi eseguirne il commit e il push nel repository seguendo questi passaggi:

    1. Nello spazio di lavoro marketing-tutorial-workspace, fai clic su Esegui commit di 1 modifica.
    2. Nel riquadro Nuovo commit, inserisci una descrizione del commit nel campo Aggiungi un messaggio di commit.
    3. Fai clic su Commit all changes (Esegui il commit di tutte le modifiche).
    4. Nello spazio di lavoro marketing-tutorial-workspace, fai clic su Push to default branch (Push al ramo predefinito).

    Una volta eseguito il push delle modifiche al repository, viene visualizzato il messaggio Workspace è aggiornato.

    Pianificare la trasformazione dei dati

    Dopo aver definito il file di trasformazione dei dati, pianifica le trasformazioni dei dati.

    Crea una release di produzione

    Una release di produzione in Dataform garantisce che il tuo ambiente venga aggiornato in modo coerente con i risultati delle trasformazioni dei dati. I seguenti passaggi mostrano come specificare il ramo main del repository marketing-tutorial-repository in cui archiviare le trasformazioni dei dati:

    1. Nella console Google Cloud , vai alla pagina Dataform.

      Vai alla pagina Dataform

    2. Seleziona marketing-tutorial-repository.

    3. Fai clic sulla scheda Release e pianificazione.

    4. Fai clic su Crea release di produzione.

    5. Nel riquadro Crea configurazione della release, configura le seguenti impostazioni:

      1. Nel campo ID release, inserisci transformations.
      2. Nel campo Git commitish, lascia il valore predefinito main .
      3. Nella sezione Frequenza di pianificazione, seleziona On demand.
    6. Fai clic su Crea.

    Crea una configurazione di flusso di lavoro

    Dopo aver creato una release di produzione, puoi creare una configurazione del workflow che esegue le trasformazioni dei dati in base a una pianificazione specificata nel repository. I seguenti passaggi mostrano come pianificare le trasformazioni giornaliere dal file transformations:

    1. Nella console Google Cloud , vai alla pagina Dataform.

      Vai alla pagina Dataform

    2. Seleziona marketing-tutorial-repository.

    3. Fai clic sulla scheda Release e pianificazione.

    4. Nella sezione Configurazioni dei flussi di lavoro, fai clic su Crea.

    5. Nel riquadro Crea configurazione del flusso di lavoro, inserisci transformations nel campo ID configurazione.

    6. Nel menu Configurazione della release, seleziona transformations.

    7. In Autenticazione, seleziona Esegui con le credenziali utente.

    8. Nella sezione Frequenza di pianificazione, segui questi passaggi:

      1. Select **Repeat**.
      1. For **Repeats**, select `Daily`.
      1. For **At time**, enter `10:00 AM`.
      1. For **Timezone**, select `Coordinated Universal Time (UTC)`.
      
    9. Fai clic su Selezione di tag.

    10. Nel campo Seleziona i tag da eseguire, seleziona Giornaliero.

    11. Fai clic su Crea.

    La configurazione del workflow che hai creato esegue l'intero risultato della compilazione più recente creato dalla configurazione della release transformations.

    Esegui la pulizia

    Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

    Elimina il set di dati creato in BigQuery

    Per evitare che ti vengano addebitati costi per gli asset BigQuery, elimina il set di dati denominato dataform.

    1. Nella console Google Cloud , vai alla pagina BigQuery.

      Vai a BigQuery

    2. Nel riquadro Explorer, espandi il progetto e seleziona dataform.

    3. Fai clic sul menu Azioni e seleziona Elimina.

    4. Nella finestra di dialogo Elimina set di dati, inserisci delete nel campo e fai clic su Elimina.

    Elimina l'area di lavoro di sviluppo Dataform e le configurazioni

    La creazione dell'area di lavoro di sviluppo Dataform non comporta costi, ma per eliminare l'area di lavoro di sviluppo puoi seguire questi passaggi:

    1. Nella console Google Cloud , vai alla pagina Dataform.

      Vai a Dataform

    2. Fai clic su quickstart-repository.

    3. Fai clic sulla scheda Pubblicazione e programmazione.

    4. Nella sezione Configurazioni della release, fai clic sul menu Altro accanto alla configurazione production e poi su Elimina.

    5. Nella sezione Configurazioni del flusso di lavoro, fai clic sul menu Altro accanto alla configurazione transformations e poi su Elimina.

    6. Nella scheda Aree di lavoro di sviluppo, fai clic sul menu Altro accanto a quickstart-workspace, quindi seleziona Elimina.

    7. Per confermare, fai clic su Elimina.

    Elimina il repository Dataform

    La creazione del repository Dataform non comporta costi, ma per eliminarlo puoi seguire questi passaggi:

    1. Nella console Google Cloud , vai alla pagina Dataform.

      Vai a Dataform

    2. Accanto a quickstart-repository, fai clic sul menu Altro e seleziona Elimina.

    3. Nella finestra Elimina repository, inserisci il nome del repository per confermare l'eliminazione.

    4. Per confermare, fai clic su Elimina.