Trasferimenti dei rapporti del proprietario dei contenuti di YouTube

BigQuery Data Transfer Service per YouTube consente di pianificare e gestire automaticamente i job di caricamento ricorrenti per i report dei proprietari dei contenuti di YouTube.

Report supportati

I report di BigQuery Data Transfer Service per i proprietari dei contenuti di YouTube supportano le seguenti opzioni di reporting:

Opzione di segnalazione Assistenza
Versione API supportata 18 giugno 2018
Pianificazione

Ogni giorno, verso le 14:45 UTC

Puoi configurare l'ora

Finestra di aggiornamento

Ultimo giorno

Non configurabile.

Durata massima del backfill

30 giorni

A partire da luglio 2018, i report di YouTube contenenti dati storici sono disponibili per 30 giorni a partire dal momento in cui vengono generati. I report che contengono dati non storici sono disponibili per 60 giorni dopo la modifica delle norme. Per ulteriori informazioni, consulta la sezione Dati storici nella documentazione dell'API di reporting di YouTube.

Per informazioni su come i report sui proprietari dei contenuti di YouTube vengono trasformati in tabelle e visualizzazioni di BigQuery, consulta la pagina Trasformazioni dei report dei proprietari dei contenuti di YouTube.

Importazione dati da trasferimenti dei proprietari dei contenuti YouTube

Quando trasferisci i dati dai report del proprietario dei contenuti di YouTube a BigQuery, questi vengono caricati in tabelle BigQuery partizionate per data. La partizione della tabella in cui vengono caricati i dati corrisponde alla data dell'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.

Limitazioni

  • La dimensione massima supportata del file per ogni report è 1710 GB.
  • La frequenza minima per cui puoi pianificare un trasferimento di dati è una volta ogni 24 ore. Per impostazione predefinita, un trasferimento inizia nel momento in cui viene creato. Tuttavia, puoi configurare l'ora di inizio del trasferimento quando configuri il trasferimento.
  • BigQuery Data Transfer Service non supporta i trasferimenti incrementali durante il trasferimento di un proprietario dei contenuti di YouTube. Quando specifichi una data per un trasferimento di dati, vengono trasferiti tutti i dati disponibili per quella data.

Prima di iniziare

Prima di creare un trasferimento da parte di un proprietario dei contenuti di YouTube:

Autorizzazioni obbligatorie

Assicurati che la persona che crea il trasferimento disponga delle seguenti autorizzazioni obbligatorie:

  • BigQuery:

    • bigquery.transfers.update autorizzazioni per creare il trasferimento
    • Entrambe le autorizzazioni bigquery.datasets.get e bigquery.datasets.update sul set di dati di destinazione

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

  • YouTube

    • YouTube Content Manager o proprietario dei contenuti di YouTube.

    Un gestore dei contenuti dispone dei diritti per amministrare i contenuti di YouTube per conto di un proprietario dei contenuti. Un proprietario dei contenuti è un account cumulativo che possiede uno o più canali YouTube e i video pubblicati su questi canali.

    • L'opzione Hide revenue data è deselezionata nelle impostazioni del report del proprietario dei contenuti di YouTube.

    Affinché i report relativi alle entrate vengano trasferiti, l'impostazione dell'autorizzazione dei report di YouTube Hide revenue data deve essere deselezionata per l'utente che ha creato il trasferimento.

    youtube-content-owner-reports-uncheck-hide-revenue

Configurare il trasferimento di un proprietario dei contenuti di YouTube

Per configurare il trasferimento di un proprietario dei contenuti di YouTube devi:

  • ID proprietario dei contenuti: fornito da YouTube. Quando accedi a YouTube come proprietario o gestore dei contenuti, il tuo ID viene visualizzato nell'URL dopo il giorno o=. Ad esempio, se l'URL è https://studio.youtube.com/owner/AbCDE_8FghIjK?o=AbCDE_8FghIjK, l'ID proprietario dei contenuti è AbCDE_8FghIjK. Per selezionare un altro account Content Manager, visita la pagina Accedere a un account Content Manager o Selettore di canale YouTube. Per ulteriori informazioni sulla creazione e sulla gestione del tuo account Content Manager, consulta Configurare le impostazioni dell'account Content Manager.
  • Suffisso tabella: un nome semplice per il canale fornito da te durante la configurazione del trasferimento. Il suffisso viene aggiunto all'ID job per creare il nome della tabella, ad esempio reportTypeId_suffix. Il suffisso viene utilizzato per impedire la scrittura di trasferimenti separati nelle stesse tabelle. Il suffisso della tabella deve essere univoco in tutti i trasferimenti che caricano i dati nello stesso set di dati e il suffisso deve essere breve per ridurre al minimo la lunghezza del nome della tabella risultante.

Se al momento utilizzi l'API di reporting di YouTube e hai già job di reporting, BigQuery Data Transfer Service carica i dati dei tuoi report. Se non hai job di generazione di report esistenti, la configurazione del trasferimento abilita automaticamente i job di generazione di report di YouTube.

Per configurare il trasferimento di un proprietario dei contenuti di YouTube:

Console

  1. Vai alla pagina BigQuery nella console Google Cloud. Assicurati di aver effettuato l'accesso all'account come proprietario dei contenuti o Content Manager.

    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 Proprietario dei contenuti di YouTube.

      Origine trasferimento

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

      Nome trasferimento

    • Nella sezione Opzioni di pianificazione:

      • In Frequenza di ripetizione, scegli un'opzione per la frequenza di esecuzione del trasferimento. Se selezioni Giorni, fornisci un orario valido nel formato UTC.

        • Ore
        • Giorni
        • On demand
      • Se applicabile, seleziona Inizia ora o Inizia all'ora impostata e fornisci una data di inizio e un'ora di esecuzione.

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

      Trasferisci set di dati

    • Nella sezione Dettagli origine dati:

      • In ID proprietario dei contenuti, inserisci il tuo ID proprietario dei contenuti.
      • Per Suffisso tabella, inserisci un suffisso, ad esempio MT.

        Dettagli dell'origine del proprietario dei contenuti di YouTube

    • Nel menu Account di servizio, seleziona un account di servizio dagli account di servizio associati al tuo progetto Google Cloud. Puoi associare un account di servizio al trasferimento anziché utilizzare le tue credenziali utente. Per ulteriori informazioni sull'utilizzo di account di servizio con trasferimenti di dati, vedi Utilizzare account di servizio.

      • Se hai eseguito l'accesso con un'identità federata, sarà necessario un account di servizio per creare un trasferimento. Se hai eseguito l'accesso con un Account Google, un account di servizio per il trasferimento è facoltativo.
      • L'account di servizio deve disporre delle autorizzazioni richieste.
    • (Facoltativo) Nella sezione Opzioni di notifica:

      • Fai clic sul pulsante di attivazione/disattivazione per abilitare le notifiche via email. Quando abiliti questa opzione, l'amministratore dei trasferimenti riceve una notifica via email quando un trasferimento non va a buon fine.
      • In Seleziona un argomento Pub/Sub, scegli il nome dell'argomento o fai clic su Crea un argomento. Questa opzione consente di configurare le notifiche di Pub/Sub per il trasferimento.
  5. Fai clic su Salva.

  6. Se è la prima volta che accedi all'account, selezionane uno e fai clic su Consenti. Seleziona lo stesso account di cui sei il proprietario dei contenuti o il gestore dei contenuti.

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

Flag facoltativi:

  • --service_account_name - Specifica un account di servizio da utilizzare per l'autenticazione del trasferimento del proprietario dei contenuti al posto del tuo account utente.
bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source \
--service_account_name=service_account_name

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. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare il trasferimento, qualora dovessi modificarlo in un secondo momento.
  • parameters contiene i parametri per la configurazione di trasferimento creata in formato JSON. Ad esempio: --params='{"param":"param_value"}'. Per i trasferimenti dei proprietari dei contenuti di YouTube, devi fornire i parametri content_owner_id e table_suffix. Facoltativamente, puoi impostare il parametro configure_jobs su true per consentire a BigQuery Transfer Service di gestire i job di generazione dei report di YouTube per te. Se esistono report di YouTube che al momento non esistono per il tuo account, vengono creati nuovi job di generazione dei report per abilitarli.
  • data_source è l'origine dati: youtube_content_owner.
  • service_account_name è il nome dell'account di servizio utilizzato per autenticare il trasferimento. L'account di servizio deve essere di proprietà dello stesso project_id utilizzato per creare il trasferimento e deve avere tutte le autorizzazioni richieste.

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

Ad esempio, il seguente comando crea un trasferimento del proprietario dei contenuti di YouTube denominato My Transfer utilizzando l'ID proprietario dei contenuti AbCDE_8FghIjK, il suffisso della tabella MT e il set di dati di destinazione mydataset. Il trasferimento viene creato nel progetto predefinito:

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"content_owner_id":"abCDE_8FghIjK","table_suffix":"MT","configure_jobs":"true"}' \
--data_source=youtube_content_owner

API

Utilizza il metodo projects.locations.transferConfigs.create e fornisci un'istanza della risorsa TransferConfig.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di BigQuery.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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 youtube content owner channel transfer config
public class CreateYoutubeContentOwnerTransfer {

  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 contentOwnerId = "MY_CONTENT_OWNER_ID";
    String tableSuffix = "_test";
    Map<String, Value> params = new HashMap<>();
    params.put("content_owner_id", Value.newBuilder().setStringValue(contentOwnerId).build());
    params.put("table_suffix", Value.newBuilder().setStringValue(tableSuffix).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Youtube Owner Channel Config Name")
            .setDataSourceId("youtube_content_owner")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .build();
    createYoutubeContentOwnerTransfer(projectId, transferConfig);
  }

  public static void createYoutubeContentOwnerTransfer(
      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(
          "Youtube content owner channel transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Youtube content owner channel transfer was not created." + ex.toString());
    }
  }
}

Eseguire query sui dati

Quando vengono trasferiti in BigQuery, i dati vengono scritti in tabelle partizionate in fase di importazione. Per maggiori informazioni, consulta Tabelle partizionate.

Se esegui una query direttamente sulle tabelle anziché utilizzare le viste generate automaticamente, devi utilizzare la pseudo-colonna _PARTITIONTIME nella query. Per maggiori informazioni, consulta Esecuzione di query su tabelle partizionate.

Risolvere i problemi relativi alla configurazione del trasferimento del proprietario dei contenuti di YouTube

Se riscontri problemi durante la configurazione del trasferimento, consulta la sezione Problemi di trasferimento di YouTube nella sezione Risoluzione dei problemi relativi alle configurazioni di trasferimento.