Transferencias de propietario del contenido de YouTube

El Servicio de transferencia de datos de BigQuery para YouTube te permite programar y administrar de forma automática los trabajos de carga recurrentes de los informes de propietario del contenido de YouTube.

Informes compatibles

En la actualidad, el Servicio de transferencia de datos de BigQuery para los informes de propietario del contenido de YouTube admite las siguientes opciones de informes:

Opción de informe Compatibilidad
Versión de la API compatible 18 de junio de 2018
Programa

Diario, alrededor de las 14:45 UTC

Puedes configurar la hora del día

Período de actualización

Último día

No configurable

Duración máxima del reabastecimiento

30 días

A partir de julio de 2018, los informes de YouTube que contienen datos históricos estarán disponibles durante 30 días desde el momento en que se generan. Los informes que contienen datos no históricos estarán disponibles durante los 60 días posteriores a la modificación de la política. Para obtener más información, consulta Datos históricos en la documentación de la API de informes de YouTube

Para obtener información sobre cómo se transforman los informes de propietario del contenido de YouTube en tablas y vistas de BigQuery, consulta Transformaciones de informes de propietario del contenido de YouTube.

Transferencia de datos de transferencias de propietario del contenido de YouTube

Cuando transfieres datos de los informes de propietario del contenido de YouTube a BigQuery, los datos se cargan en tablas de BigQuery que se particionan por fecha. La partición de la tabla en la que se cargan los datos corresponde a la fecha de la fuente de datos. Si programas varias transferencias para la misma fecha, el Servicio de transferencia de datos de BigQuery reemplaza la partición para esa fecha específica con los datos más recientes. Las transferencias múltiples en el mismo día no generan datos duplicados y las particiones para otras fechas no se ven afectadas.

Limitaciones

  • El tamaño máximo admitido de cada archivo para cada informe es de 1,710 GB.
  • La frecuencia mínima que puedes programar para una transferencia de datos es una vez cada 24 horas. De forma predeterminada, una transferencia comienza en el momento en que creas la transferencia. Sin embargo, puedes configurar la hora de inicio cuando configuras la transferencia.
  • El Servicio de transferencia de datos de BigQuery no admite transferencias incrementales durante una transferencia de propietario del contenido de YouTube. Cuando especificas una fecha para una transferencia de datos, se transfieren todos los datos disponibles para esa fecha.

Antes de comenzar

Antes de crear una transferencia de propietario del contenido de YouTube, haz lo siguiente:

Permisos necesarios

Asegúrate de que la persona que crea la transferencia tenga los siguientes permisos requeridos:

  • BigQuery:

    • permisos bigquery.transfers.update para crear la transferencia
    • Los permisos bigquery.datasets.get y bigquery.datasets.update en el conjunto de datos de destino

    La función predefinida de IAM bigquery.admin incluye los permisos bigquery.transfers.update, bigquery.datasets.update y bigquery.datasets.get. Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

  • YouTube:

    • Administrador de contenido de YouTube o propietario del contenido de YouTube.

    A un Administrador de contenido se le otorgan derechos a fin de administrar contenido de YouTube para un propietario del contenido. Un propietario del contenido es una cuenta general que es propietaria de uno o más canales de YouTube y de los videos en esos canales.

    • Hide revenue data está desmarcado en la configuración del informe Propietario del contenido de YouTube.

    Para transferir informes relacionados con los ingresos, la configuración de permisos de los informes de YouTube Hide revenue data debe estar desmarcada para el usuario que crea la transferencia.

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

Configura una transferencia de propietario del contenido de YouTube

La configuración de una transferencia de propietario del contenido de YouTube requiere lo siguiente:

  • ID de propietario del contenido: proporcionado por YouTube. Cuando accedes a YouTube como propietario o administrador del contenido, tu ID aparece en la URL después de o=. Por ejemplo, si la URL es https://youtube.com/dashboard?0=AbCDE_8FghIjK, el ID del propietario del contenido es AbCDE_8FghIjK. Para obtener más información sobre tu cuenta de Administrador de contenido, consulta: Cómo configurar la cuenta del Administrador de contenido.
  • Sufijo de tabla: un nombre fácil de usar para el canal que proporcionaste cuando configuraste la transferencia. El sufijo se adjunta al ID de trabajo para crear el nombre de la tabla, por ejemplo reportTypeId_suffix. El sufijo se usa para evitar que las transferencias que se ejecutan por separado escriban en las mismas tablas. El sufijo de la tabla debe ser único en todas las transferencias que carguen datos en el mismo conjunto de datos, y el sufijo debe ser corto para minimizar la longitud del nombre de la tabla resultante.

Si usas la API de informes de YouTube en la actualidad y tienes trabajos de informes existentes, el Servicio de transferencia de datos de BigQuery carga tus datos de informes. Si no tienes trabajos de informes existentes, la configuración de la transferencia habilita de forma automática los trabajos de informes de YouTube.

Para configurar una transferencia de propietario del contenido de YouTube, haz lo siguiente:

Consola

  1. Ve a la página de BigQuery en la consola de Google Cloud. Asegúrate de haber accedido a la cuenta como propietario o administrador de contenido.

    Ir a la página de BigQuery

  2. Haz clic en Transferencias.

  3. Haz clic en Crear transferencia.

  4. En la página Crear transferencia, sigue estos pasos:

    • En la sección Tipo de fuente (Source type), en Fuente (Source), selecciona Propietario del contenido de YouTube (YouTube Content Owner).

      Fuente de transferencia

    • En la sección Nombre de la configuración de transferencia (Transfer config name), en Nombre visible (Display name), ingresa el nombre de la transferencia, como My Transfer. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.

      Nombre de la transferencia

    • En la sección Opciones de programación, haz lo siguiente:

      • En Frecuencia de repetición, elige una opción para la frecuencia con la que se ejecutará la transferencia. Si seleccionas Días, proporciona una hora válida en UTC.

        • Horas
        • Días
        • A pedido
      • Si corresponde, selecciona Comenzar ahora o Comenzar a una hora determinada y proporciona una fecha de inicio y una hora de ejecución.

    • En la sección Configuración de destino (Destination settings), en Conjunto de datos de destino (Destination dataset), selecciona el conjunto de datos que creaste para almacenar tus datos.

      Conjunto de datos de la transferencia

    • En la sección Detalles de fuente de datos (Data source details), haz lo siguiente:

      • En ID de propietario del contenido (Content owner ID), ingresa tu ID de propietario del contenido.
      • En Sufijo de tabla (Table suffix), ingresa un sufijo como MT.

        Detalles de la fuente del propietario del contenido de YouTube

    • En el menú Cuenta de servicio, selecciona una cuenta de servicio de las cuentas de servicio asociadas a tu proyecto de Google Cloud. Puedes asociar una cuenta de servicio con tu transferencia en lugar de usar tus credenciales de usuario. Para obtener más información sobre el uso de cuentas de servicio con transferencias de datos, consulta Usa cuentas de servicio.

    • De forma opcional, en la sección Opciones de notificación, haz lo siguiente:

      • Haz clic en el botón de activación para habilitar las notificaciones por correo electrónico. Cuando habilitas esta opción, el administrador de transferencias recibe una notificación por correo electrónico cuando falla una ejecución de transferencia.
      • En Seleccionar un tema de Cloud Pub/Sub (Select a Cloud Pub/Sub topic), elige el nombre de tu tema o haz clic en Crear un tema (Create a topic). Con esta opción, se configuran las notificaciones de ejecución de Pub/Sub para tu transferencia.
  5. Haz clic en Guardar.

  6. Si es la primera vez que accedes a la cuenta, selecciona una y haz clic en Permitir. Selecciona la misma cuenta en la que eres el propietario o el administrador de contenido.

bq

Ingresa el comando bq mk y suministra la marca de creación de transferencias --transfer_config. También se requieren las siguientes marcas:

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

Marcas opcionales:

  • --service_account_name: especifica una cuenta de servicio que se usará para la autenticación de la transferencia del propietario del contenido en lugar de tu cuenta de usuario.
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

Aquí:

  • project_id es el ID del proyecto.
  • dataset es el conjunto de datos de destino para la configuración de la transferencia.
  • name es el nombre visible de la configuración de transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si es necesario hacerle modificaciones más tarde.
  • parameters contiene los parámetros para la configuración de la transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}' Para las transferencias de propietarios del contenido de YouTube, debes proporcionar los parámetros content_owner_id y table_suffix. Puedes configurar de forma opcional el parámetro configure_jobs en true para permitir que el Servicio de transferencia de BigQuery administre los trabajos de informes de YouTube por ti. Si hay informes de YouTube que no existen en la actualidad para tu cuenta, se crearán trabajos de informes nuevos a fin de habilitarlos.
  • data_source es la fuente de datos: youtube_content_owner.
  • service_account_name es el nombre de la cuenta de servicio que se usa para autenticar tu transferencia. La cuenta de servicio debe ser propiedad del mismo project_id que se usa para crear la transferencia y debe tener todos los permisos necesarios.

También puedes proporcionar la marca --project_id para especificar un proyecto en particular. Si no se especifica --project_id, se usa el proyecto predeterminado.

Por ejemplo, el siguiente comando crea una transferencia de propietario del contenido de YouTube llamada My Transfer mediante el ID de propietario del contenido AbCDE_8FghIjK, el sufijo de tabla MT y el conjunto de datos de destino mydataset. La transferencia se crea en el proyecto predeterminado:

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

Usa el método projects.locations.transferConfigs.create y suministra una instancia del recurso TransferConfig.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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());
    }
  }
}

Consulta tus datos

Cuando tus datos se transfieren a BigQuery, se escriben en tablas particionadas por tiempo de transferencia. Para obtener más información, consulta Tablas particionadas.

Si consultas tus tablas directamente en lugar de usar las vistas generadas de manera automática, debes usar la seudocolumna _PARTITIONTIME en tu consulta. Para obtener más información, visita la página Consulta tablas particionadas.

Soluciona problemas de configuración de transferencia de propietario del contenido de YouTube

Si tienes problemas para configurar tu transferencia, consulta la sección sobre los problemas de transferencias de YouTube en la página sobre cómo solucionar problemas de configuración de transferencias.