Transferências do proprietário do conteúdo do YouTube

Com o serviço de transferência de dados do BigQuery para YouTube, é possível programar e gerenciar automaticamente jobs de carregamento recorrentes para relatórios do proprietário do conteúdo do YouTube.

Relatórios compatíveis

O serviço de transferência de dados do BigQuery para relatórios do proprietário do conteúdo do YouTube é compatível atualmente com as opções de relatório a seguir:

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

Diariamente, por volta das 14:45 UTC

Você pode configurar a hora do dia

Atualizar janela

Último dia

Não configurável.

Duração máxima do preenchimento

30 dias

Desde julho de 2018, os relatórios do YouTube que contêm dados históricos ficam disponíveis por 30 dias a partir do momento em que são gerados. Os relatórios que contêm dados não históricos ficam disponíveis por 60 dias após a alteração da política. Para mais informações, consulte Dados históricos na documentação da API Reporting do YouTube.

Para informações sobre como os relatórios do proprietário do conteúdo do YouTube são transformados em tabelas e visualizações do BigQuery, consulte Transformações de relatórios do proprietário do conteúdo do YouTube.

Ingestão de dados das transferências de proprietários do conteúdo do YouTube

Ao transferir dados dos relatórios do proprietário do conteúdo do YouTube para o BigQuery, eles são carregados em tabelas do BigQuery que são particionadas por data. A partição da tabela em que os dados são carregados corresponde à data da fonte de dados. Se você programar várias transferências para a mesma data, o serviço de transferência de dados do BigQuery substituirá a partição dessa data específica pelos dados mais recentes. Várias transferências no mesmo dia ou preenchimentos não resultam em dados duplicados, e as partições de outras datas não são afetadas.

Limitações

  • O tamanho máximo permitido do arquivo para cada relatório é de 1.710 GB.
  • A frequência mínima para programar uma transferência de dados é de uma vez a cada 24 horas. Por padrão, uma transferência começa no momento em que você cria a transferência. No entanto, é possível configurar o horário de início da transferência ao configurar sua transferência.
  • O serviço de transferência de dados do BigQuery não é compatível com transferências incrementais durante uma transferência do proprietário do conteúdo do YouTube. Ao especificar uma data para uma transferência de dados, todos os dados disponíveis para essa data são transferidos.

Antes de começar

Antes de criar uma transferência do proprietário do conteúdo do YouTube:

Permissões exigidas

A pessoa que está criando a transferência precisa ter as seguintes permissões necessárias:

  • BigQuery:

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

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

  • YouTube:

    • Gerente de conteúdo do YouTube ou proprietário de conteúdo do YouTube

    Um gerente de conteúdo tem direitos de administrar conteúdo do YouTube para o proprietário. Um proprietário do conteúdo é uma conta abrangente que tem um ou mais canais do YouTube e vídeos existentes neles.

    • Hide revenue data está desmarcado nas configurações do relatório de Proprietário do conteúdo do YouTube.

    Para que os relatórios relacionados à receita sejam transferidos, o YouTube informa que a configuração de permissão Hide revenue data deve ser desmarcada para o usuário que está criando a transferência.

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

Configurar uma transferência do proprietário do conteúdo do YouTube

Configurar uma transferência do proprietário do conteúdo do YouTube exige um:

  • ID do proprietário do conteúdo: fornecido pelo YouTube. Quando você faz login no YouTube como um Proprietário ou Gerenciador de conteúdo, seu ID aparece no URL após o=. Por exemplo, se o URL for https://studio.youtube.com/owner/AbCDE_8FghIjK?o=AbCDE_8FghIjK, o ID do proprietário do conteúdo é AbCDE_8FghIjK. Para selecionar uma conta diferente do Gerenciador de conteúdo, consulte Fazer login em uma conta do Gerenciador de conteúdo ou Seletor de canais do YouTube. Para mais informações sobre como criar e gerenciar a conta do Gerenciador de conteúdo, consulte Definir as configurações da conta do Gerenciador de conteúdo.
  • Sufixo de tabela: um nome fácil de usar para o canal, que você especifica ao configurar a transferência. O sufixo é anexado ao ID do job para criar o nome da tabela, por exemplo, reportTypeId_suffix. O sufixo é usado para evitar que transferências separadas gravem nas mesmas tabelas. O sufixo da tabela precisa ser único em todas as transferências que carregam dados no mesmo conjunto de dados. Além disso, o sufixo precisa ser curto para reduzir o comprimento do nome da tabela resultante.

Se você usa a API Reporting do YouTube no momento e tem jobs de relatórios atuais, o serviço de transferência de dados do BigQuery carregará os dados de relatório. Se você não tiver jobs de relatório existentes, configurar a transferência ativará automaticamente os jobs de relatório do YouTube.

Para configurar uma transferência do proprietário do conteúdo do YouTube:

Console

  1. Acesse a página do BigQuery no console do Google Cloud. Faça login na conta como proprietário ou gerenciador de conteúdo.

    Acessar a página do BigQuery

  2. Clique em Transferências.

  3. Clique em Criar transferência.

  4. Na página Criar transferência, siga estas instruções:

    • Na seção Tipo de origem, em Origem, escolha Proprietário de conteúdo do YouTube.

      Origem 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, faça o seguinte:

      • Em Frequência de repetição, escolha uma opção para a frequência de execução da transferência: Se você selecionar Dias, forneça um horário válido em UTC.

        • Horas
        • Dias
        • Sob demanda
      • Se aplicável, selecione Começar agora ou Começar no horário definido e forneça uma data de início e um horário de execução.

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

      Conjunto de dados da transferência

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

      • Insira o ID respectivo em ID de proprietário do conteúdo.
      • Em Sufixo de tabela, insira um sufixo como MT.

        Detalhes da origem do proprietário do conteúdo do YouTube

    • No menu Conta de serviço, selecione uma conta de serviço nas contas de serviço associadas ao seu projeto do Google Cloud. É possível associar uma conta de serviço à transferência em vez de usar suas credenciais de usuário. Para mais informações sobre o uso de contas de serviço com transferências de dados, consulte Usar contas de serviço.

    • 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 se uma execução de transferência falhar.
      • 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 da sua transferência.
  5. Clique em Salvar.

  6. Se esta for a primeira vez que você faz login na conta, selecione uma conta e clique em Permitir. Selecione a mesma conta em que você é o proprietário ou o gerenciador de conteúdo.

bq

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

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

Sinalizações opcionais:

  • --service_account_name: especifica uma conta de serviço a ser usada para a autenticação de transferência do proprietário do conteúdo em vez da sua conta de usuário.
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

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 de transferência. O nome da transferência pode ser qualquer valor que permita identificá-la facilmente, caso precise modificá-la mais tarde.
  • parameters contém os parâmetros da configuração da transferência criada no formato JSON. Por exemplo: --params='{"param":"param_value"}'. Para transferências do proprietário do conteúdo do YouTube, você precisa fornecer os parâmetros content_owner_id e table_suffix. Opcionalmente, defina o parâmetro configure_jobs como true para permitir que o BigQuery Transfer Service gerencie os jobs de relatórios do YouTube para você. Se houver relatórios do YouTube que atualmente não existam na sua conta, novos jobs de relatório serão criados para ativá-los;
  • data_source é a fonte de dados: youtube_content_owner.
  • service_account_name é o nome da conta de serviço usado para autenticar a transferência. A conta de serviço precisa pertencer ao mesmo project_id usado para criar a transferência e ter todas as permissões necessárias.

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

Por exemplo, o comando a seguir cria uma transferência do proprietário do conteúdo do YouTube chamada My Transfer usando o ID do proprietário do conteúdo AbCDE_8FghIjK, o sufixo MT da tabela e o conjunto de dados mydataset. A transferência é criada no projeto padrão:

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

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

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

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());
    }
  }
}

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 Tabelas particionadas.

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

Resolver problemas de configuração de transferência do proprietário do conteúdo do YouTube

Em caso de problemas ao configurar a transferência, consulte Problemas na transferência do YouTube, em Solução de problemas de configurações de transferência.