[GA4] Esquema de BigQuery Export

En este artículo se explica cuál es el formato y el esquema de los datos de las propiedades de Google Analytics 4 y de Google Analytics for Firebase que se exportan a BigQuery.

Conjuntos de datos

Por cada propiedad de Google Analytics 4 y cada proyecto de Firebase que se vincula con BigQuery, se añade un único conjunto de datos llamado "analytics_<ID_propiedad>" a su proyecto de BigQuery. El campo <ID_propiedad> hace referencia al ID de la propiedad de Analytics, que se puede encontrar en la sección de configuración de su propiedad de Google Analytics 4 y en los ajustes de analíticas de aplicaciones de Firebase. Los datos de cada propiedad de Google Analytics 4 y de cada aplicación que tenga habilitada la exportación a BigQuery se exportarán a ese único conjunto de datos.

Tablas

En cada conjunto de datos, se crea una tabla llamada events_YYYYMMDD cada día si la opción de exportación diaria está habilitada.

Si la opción Exportación de flujo está habilitada, se crea una tabla llamada events_intraday_AAAAMMDD. Esta tabla se rellena de forma continua a medida que se registran eventos a lo largo del día. y se elimina al final de cada día una vez que se ha completado events_AAAAMMDD.

No todos los dispositivos en los que se activan eventos envían sus datos a Analytics el mismo día en que se activan. Para tener en cuenta esta latencia, Analytics actualizará las tablas diarias (events_AAAAMMDD) con eventos de esas fechas que lleguen hasta tres días después de haberse producido. Los eventos tendrán la marca de tiempo correcta independientemente de que lleguen tarde. No se registran los eventos que lleguen después de ese plazo de tres días.

 

Si utiliza el entorno aislado de BigQuery, no se producirá ninguna importación intradía de eventos y se aplicarán límites adicionales.

Si quiere que se lleven a cabo importaciones intradiarias, deberá pasar del entorno aislado a un nivel de pago.

Columnas

Cada columna de la tabla events_AAAAMMDD representa un parámetro específico de un evento. Tenga en cuenta que algunos parámetros están anidados en REGISTROS, y algunos REGISTROS, como items y event_params se pueden repetir. A continuación puede ver descripciones de las columnas de la tabla.

event

Los campos event contienen información que identifica un evento de forma exclusiva.
Nombre del campo Tipo de datos Descripción
event_date STRING La fecha en la que se registró el evento (en el formato de fecha AAAAMMDD de la zona horaria registrada de la aplicación).
event_timestamp INTEGER La hora (en microsegundos y formato UTC) a la que se registró el evento en el cliente.
event_previous_timestamp INTEGER La hora (en microsegundos y formato UTC) a la que se registró previamente el evento en el cliente.
event_name STRING El nombre del evento.
event_value_in_usd FLOAT El valor de conversión de moneda (en USD) del parámetro "value" del evento.
event_bundle_sequence_id INTEGER El ID secuencial del paquete en el que se subieron estos eventos.
event_server_timestamp_offset INTEGER La compensación en microsegundos de la marca de tiempo entre la hora de la recogida y la de subida.

REGISTRO event_params

El REGISTRO event_params puede almacenar parámetros de evento contextuales y a nivel de campaña, así como cualquier parámetro de evento definido por el usuario. El REGISTRO event_params se repite con cada clave asociada a un evento.

El conjunto de parámetros almacenado en el REGISTRO event_params es único en cada implementación. Para ver todos los parámetros de evento de su implementación, consulte la lista de parámetros de evento

Nombre del campo Tipo de datos Descripción
event_params.key STRING El nombre del parámetro de evento.
event_params.value RECORD Un registro que contiene el valor del parámetro de evento.
event_params.value.string_value STRING Si el parámetro de evento está representado por una cadena, como una URL o el nombre de una campaña, se rellenará en este campo.
event_params.value.int_value INTEGER Si el parámetro de evento está representado por un número entero, se rellenará en este campo.
event_params.value.double_value FLOAT Si el parámetro de evento está representado por un valor de doble precisión, se rellenará en este campo.
event_params.value.float_value FLOAT Si el parámetro de evento está representado por un valor de punto flotante, se rellenará en este campo. Este campo no se utiliza actualmente.

REGISTRO item_params

El REGISTRO item_params puede almacenar cualquier parámetro de artículo definido por el usuario. El conjunto de parámetros almacenado en el REGISTRO item_params es único en cada implementación.

Nombre del campo Tipo de datos Descripción
item_params.key STRING El nombre del parámetro del artículo.
item_params.value RECORD Un registro que contiene el valor del parámetro del artículo.
item_params.value.string_value STRING Si el parámetro del artículo está representado por una cadena, se rellenará en este campo.
item_params.value.int_value INTEGER Si el parámetro del artículo está representado por un número entero, se rellenará en este campo.
item_params.value.double_value FLOAT Si el parámetro del artículo está representado por un valor de doble precisión, se rellenará en este campo.
item_params.value.float_value FLOAT Si el parámetro del artículo está representado por un valor de punto flotante, se rellenará en este campo.

user

Los campos user contienen información que identifica de forma exclusiva al usuario asociado al evento.
Nombre del campo Tipo de datos Descripción
is_active_user BOOLEAN

Indica si el usuario estaba activo (Verdadero) o inactivo (Falso) en cualquier momento del día natural.

Se incluye solo en las tablas diarias (events_AAAAMMDD).

user_id STRING El ID único asignado a un usuario.
user_pseudo_id STRING El ID seudónimo del usuario (por ejemplo, ID de instancia de aplicación).
user_first_touch_timestamp INTEGER La hora (en microsegundos) a la que el usuario abrió la aplicación o visitó el sitio por primera vez.

campos privacy_info

Los campos privacy_info contienen información basada en el estado de consentimiento de un usuario cuando el modo de consentimiento está habilitado.
Nombre del campo Tipo de datos Descripción
privacy_info.ads_storage STRING

Indica si el usuario tiene la segmentación de anuncios habilitada.

Valores posibles: Sí, No, Sin establecer.

privacy_info.analytics_storage STRING

Indica si el usuario tiene habilitado el almacenamiento de Analytics.

Valores posibles: Sí, No, Sin establecer.

privacy_info.uses_transient_token STRING

Indica si un usuario web ha rechazado el almacenamiento de Analytics y si el desarrollador ha habilitado la medición sin cookies basada en los tokens transitorios de los datos del servidor.

Valores posibles: Sí, No, Sin establecer.

REGISTRO user_properties

El REGISTRO user_properties contiene todas las propiedades de usuario que ha definido. Se repite con todas las claves asociadas a un usuario.
Nombre del campo Tipo de datos Descripción
user_properties.key STRING El nombre de la propiedad de usuario.
user_properties.value RECORD Un registro del valor de propiedad de usuario.
user_properties.value.string_value STRING El valor de cadena de la propiedad de usuario.
user_properties.value.int_value INTEGER El valor entero de la propiedad de usuario.
user_properties.value.double_value FLOAT El valor de doble precisión de la propiedad de usuario.
user_properties.value.float_value FLOAT Este campo no se utiliza actualmente.
user_properties.value.set_timestamp_micros INTEGER La hora (en microsegundos) a la que se configuró por última vez la propiedad de usuario.

REGISTRO user_ltv

El REGISTRO user_ltv contiene información sobre el valor del tiempo de vida del cliente. Este REGISTRO no se rellena en tablas intradías.
Nombre del campo Tipo de datos Descripción
user_ltv.revenue FLOAT El valor del tiempo de vida del cliente (ingresos) del usuario. Este campo no se rellena en tablas intradías.
user_ltv.currency STRING El valor del tiempo de vida del cliente (moneda) del usuario. Este campo no se rellena en tablas intradías.

device

El REGISTRO device contiene información sobre el dispositivo desde el que se ha originado el evento.
Nombre del campo Tipo de datos Descripción
device.category STRING La categoría del dispositivo (móvil, tablet u ordenador).
device.mobile_brand_name STRING El nombre de la marca del dispositivo.
device.mobile_model_name STRING El nombre del modelo del dispositivo.
device.mobile_marketing_name STRING El nombre comercial del dispositivo.
device.mobile_os_hardware_model STRING La información sobre el modelo del dispositivo extraída directamente del sistema operativo.
device.operating_system STRING El sistema operativo del dispositivo (SO).
device.operating_system_version STRING La versión del SO.
device.vendor_id STRING El IDFV (solo aparece si no se registra el IDFA).
device.advertising_id STRING El IDFA o ID de publicidad.
device.language STRING El idioma del SO.
device.time_zone_offset_seconds INTEGER La compensación horaria respecto a GMT en segundos.
device.is_limited_ad_tracking BOOLEAN

El ajuste para limitar el seguimiento de anuncios del dispositivo.

En iOS 14 y versiones posteriores, se devuelve el valor "false" si el IDFA es un número diferente a cero.

device.web_info.browser STRING El navegador con el que el usuario consultó el contenido.
device.web_info.browser_version STRING La versión del navegador con la que el usuario consultó el contenido.
device.web_info.hostname STRING El nombre de host asociado al evento registrado.

geo

El REGISTRO geo contiene información sobre la ubicación geográfica donde se inició el evento.
Nombre del campo Tipo de datos Descripción
geo.continent STRING El continente en el que se registraron los eventos, según la dirección IP.
geo.sub_continent STRING El subcontinente en el que se registraron los eventos, según la dirección IP.
geo.country STRING El país en el que se registraron los eventos, según la dirección IP.
geo.region STRING La región en la que se registraron los eventos, según la dirección IP.
geo.metro STRING El área metropolitana en la que se registraron los eventos, según la dirección IP.
geo.city STRING La ciudad en la que se registraron los eventos, según la dirección IP.

app_info

El REGISTRO app_info contiene información sobre la aplicación en la que se ha iniciado el evento.
Nombre del campo Tipo de datos Descripción
app_info.id STRING El nombre del paquete o el ID de bundle de la aplicación.
app_info.firebase_app_id STRING El ID de aplicación de Firebase asociado a la aplicación.
app_info.install_source STRING La tienda desde la que se instaló la aplicación.
app_info.version STRING El nombre de la versión (Android) o de la versión de paquete reducida.

collected_traffic_source

El REGISTRO collect_traffic_source contiene los datos de las fuentes de tráfico que se han recogido con el evento.

Nombre del campo Tipo de datos Descripción
manual_campaign_id STRING El ID de campaña manual (utm_id) que se ha recogido con el evento.
manual_campaign_name STRING El nombre de la campaña manual (utm_campaign) que se ha recogido con el evento.
manual_source STRING La fuente de la campaña manual (utm_source) que se ha recogido con el evento. También incluye parámetros analizados a partir de parámetros de referencia, no solo valores UTM. 
manual_medium STRING El medio de la campaña manual (utm_medium) que se ha recogido con el evento. También incluye parámetros analizados a partir de parámetros de referencia, no solo valores UTM.
manual_term STRING La palabra o término clave de la campaña manual (utm_term) que se ha recogido con el evento.
manual_content STRING Los metadatos de la campaña manual adicionales (utm_content) que se han recogido con el evento.
gclid STRING El identificador de clic de Google que se ha recogido con el evento.
dclid STRING El identificador de Google Marketing Platform (GMP) que se ha recogido con el evento.
srsltid  STRING El identificador de Google Merchant Center que se ha recogido con el evento.

traffic_source

El REGISTRO traffic_source contiene información sobre la fuente de tráfico con la que se adquirió al usuario. Este registro no se rellena en tablas intradías.

Nota: Los valores de traffic_source no cambian si el usuario interactúa con otras campañas después de instalar la aplicación.

Nombre del campo Tipo de datos Descripción
traffic_source.name STRING El nombre de la campaña de marketing con la que se adquirió al usuario. Este campo no se rellena en tablas intradías.
traffic_source.medium STRING El nombre del medio (p. ej., publicidad en buscadores, búsqueda orgánica o correo electrónico) con el que se adquirió al usuario. Este campo no se rellena en tablas intradías.
traffic_source.source STRING El nombre de la red con la que se adquirió al usuario. Este campo no se rellena en tablas intradías.

stream y platform

Los campos stream y platform contienen información sobre el flujo y la plataforma de la aplicación.
Nombre del campo Tipo de datos Descripción
stream_id STRING ID numérico del flujo de datos desde el que se originó el evento.
platform STRING La plataforma de flujo de datos (Web, iOS o Android) desde la que se originó el evento.

ecommerce

El REGISTRO ecommerce contiene información sobre cualquier evento de comercio electrónico que se haya configurado en un sitio web o una aplicación.
Nombre del campo Tipo de datos Descripción
ecommerce.total_item_quantity INTEGER El número total de artículos de este evento, que es la suma de "items.quantity".
ecommerce.purchase_revenue_in_usd FLOAT Los ingresos derivados de las compras de este evento, representados en USD y con la unidad estándar. Se rellena solo para el evento de compra.
ecommerce.purchase_revenue FLOAT Los ingresos derivados de las compras de este evento, representados en la moneda local y con la unidad estándar. Se rellena solo para el evento de compra.
ecommerce.refund_value_in_usd FLOAT El importe del reembolso de este evento, representado en USD y con la unidad estándar. Se rellena solo para eventos de reembolso.
ecommerce.refund_value FLOAT El importe del reembolso de este evento, representado en la moneda local y con la unidad estándar. Se rellena solo para eventos de reembolso.
ecommerce.shipping_value_in_usd FLOAT El coste de los gastos de envío de este evento, representado en USD y con la unidad estándar.
ecommerce.shipping_value FLOAT El coste de los gastos de envío de este evento, representado en la moneda local.
ecommerce.tax_value_in_usd FLOAT El valor de los impuestos de este evento, representado en USD y con la unidad estándar.
ecommerce.tax_value FLOAT El valor de los impuestos de este evento, indicado en la moneda local y con la unidad estándar.
ecommerce.transaction_id STRING El ID de la transacción de comercio electrónico.
ecommerce.unique_items INTEGER El número de artículos únicos de este evento, basado en "item_id", "item_name" y "item_brand".

items

El REGISTRO items contiene información sobre los elementos incluidos en un evento. Se repite con cada elemento.
Nombre del campo Tipo de datos Descripción
items.item_id STRING El ID del artículo.
items.item_name STRING El nombre del artículo.
items.item_brand STRING La marca del artículo.
items.item_variant STRING La variante del artículo.
items.item_category STRING La categoría del artículo.
items.item_category2 STRING La subcategoría del artículo.
items.item_category3 STRING La subcategoría del artículo.
items.item_category4 STRING La subcategoría del artículo.
items.item_category5 STRING La subcategoría del artículo.
items.price_in_usd FLOAT El precio del artículo, representado en USD y con la unidad estándar.
items.price FLOAT El precio del artículo en la moneda local.
items.quantity INTEGER La cantidad del artículo. Se le asigna el valor 1 si no se especifica ninguno.
items.item_revenue_in_usd FLOAT Los ingresos derivados del artículo, que se calculan de la siguiente forma: price_in_usd * quantity. Solo se rellena para los eventos de compra y se representan en USD y con la unidad estándar.
items.item_revenue FLOAT Los ingresos derivados del artículo, que se calculan de la siguiente forma: precio * cantidad. Solo se rellena para los eventos de compra y se representan en la moneda local y con la unidad estándar.
items.item_refund_in_usd FLOAT El valor del reembolso del artículo, que se calcula de la siguiente forma: price_in_usd * quantity. Solo se rellena para los eventos de reembolso y se representan en USD y con la unidad estándar.
items.item_refund FLOAT El valor del reembolso del artículo, que se calcula de la siguiente forma: precio * cantidad. Solo se rellena para los eventos de reembolso y se representa en la moneda local y con la unidad estándar.
items.coupon STRING El código del cupón aplicado al artículo.
items.affiliation STRING La afiliación de producto que se utiliza para designar una empresa suministradora o la ubicación de una tienda física.
items.location_id STRING La ubicación asociada al artículo.
items.item_list_id STRING El ID de la lista en la que se ha mostrado el artículo al usuario.
items.item_list_name STRING El nombre de la lista en la que se ha mostrado el artículo al usuario.
Items.item_list_index STRING La posición del artículo en una lista.
items.promotion_id STRING El ID de la promoción de un producto.
items.promotion_name STRING El nombre de la promoción de un producto.
items.creative_name STRING El nombre de la creatividad que se ha usado en un anuncio.
items.creative_slot STRING Es el nombre del espacio de una creatividad.

REGISTRO item_params

El REGISTRO item_params almacena los parámetros del artículo personalizados que ha definido. Tenga en cuenta que los parámetros de artículo predefinidos, como item_id o item_name, no se incluyen aquí, sino que se exportan como campos explícitos.

El conjunto de parámetros almacenado en el REGISTRO item_params es único en cada implementación. Para obtener más información sobre las implementaciones de comercio electrónico y la matriz "items" de Google Analytics 4, consulte Medir el comercio electrónico.

Nombre del campo Tipo de datos Descripción
items.item_params.key STRING El nombre del parámetro del artículo.
items.item_params.value RECORD Un registro que contiene el valor del parámetro del artículo.
items.item_params.value.string_value STRING Si el parámetro del artículo está representado por una cadena, se rellenará en este campo.
items.item_params.value.int_value INTEGER Si el parámetro del artículo está representado por un número entero, se rellenará en este campo.
items.item_params.value.double_value FLOAT Si el parámetro del artículo está representado por un valor de doble precisión, se rellenará en este campo.
items.item_params.value.float_value FLOAT Si el parámetro del artículo está representado por un valor de punto flotante, se rellenará en este campo.

Filas

Los datos de un solo evento se pueden representar en una o varias filas, en función de si contienen REGISTROS repetidos. Por ejemplo, un evento page_view con varios registros event_params tendría un aspecto similar al de la tabla de abajo. La fila inicial contiene el nombre del evento, la fecha, la marca de tiempo y otros elementos de datos no repetidos. El REGISTRO event_params se repite con cada parámetro asociado al evento. Estos REGISTROS repetidos se utilizan para rellenar las filas siguientes, directamente debajo de la fila inicial del evento.

event_date event_timestamp event_name event_params.key event_params_value.string_value
20220222 1643673600483790 page_view page_location https://example.com
      page_title Home
      medium referral
      source google
      page_referrer https://www.google.com
      <parameters...> <values...>

 

Estos datos de eventos se muestran de esta manera en la interfaz de usuario de GA4.

Qué debe tener en cuenta para actualizar el SDK a Android 17.2.5 o a iOS 16.20.0 (o a versiones posteriores de ambos sistemas)

Si ha utilizado versiones anteriores del SDK y tiene previsto actualizarlo a Android 17.2.5 (o una versión posterior) o iOS 16.20.0 (o una versión posterior), debe tener en cuenta lo siguiente:

  • Para usar el esquema actual de BigQuery Export, debe actualizar el SDK a Android 17.2.5 (o una versión posterior) o a iOS 16.20.0 (o una versión posterior).  Si se usa una versión anterior del SDK, los datos exportados reflejarán el esquema antiguo
  • Después de la actualización, solo podrá acceder a los datos de artículos dentro de la matriz de artículos repetidos, ya que los datos de artículos ya no estarán disponibles en los parámetros de evento estándar (aunque sí lo estaban en las versiones anteriores del SDK).
  • Este cambio se ha hecho para permitir el análisis multiproducto.
  • Como resultado, es posible que tenga que ajustar las referencias a los datos de productos o artículos.
Secuencia de comandos para migrar los conjuntos de datos de BigQuery del esquema de exportación anterior al nuevo
  1. Inicie sesión en la consola de Cloud Platform y vaya a la página Gestionar recursos.
  2. Abra el proyecto cuyos datos quiera migrar y, en la parte superior de la página, haga clic en Activar Google Cloud Shell.
  3. Cuando se abra el shell, copie la siguiente secuencia de comandos en un archivo llamado migration_script.sql:
    1. Ejecute el comando cat > migration_script.sql.
    2. Copie y pegue en el shell la secuencia de comandos que se indica más abajo.
    3. Para guardar y salir, pulse Ctrl + D.
    Secuencia de comandos (migration_script.sql):
      SELECT
      @date AS event_date,
      event.timestamp_micros AS event_timestamp,
      event.previous_timestamp_micros AS event_previous_timestamp,
      event.name AS event_name,
      event.value_in_usd  AS event_value_in_usd,
       user_dim.bundle_info.bundle_sequence_id AS event_bundle_sequence_id,
      user_dim.bundle_info.server_timestamp_offset_micros as event_server_timestamp_offset,
      (
      SELECT
        ARRAY_AGG(STRUCT(event_param.key AS key,
            STRUCT(event_param.value.string_value AS string_value,
              event_param.value.int_value AS int_value,
              event_param.value.double_value AS double_value, 
              event_param.value.float_value AS float_value) AS value))
      FROM
        UNNEST(event.params) AS event_param) AS event_params,
      user_dim.first_open_timestamp_micros AS user_first_touch_timestamp,
      user_dim.user_id AS user_id,
      user_dim.app_info.app_instance_id AS user_pseudo_id,
      "" AS stream_id,
      user_dim.app_info.app_platform AS platform,
      STRUCT( user_dim.ltv_info.revenue AS revenue,
        user_dim.ltv_info.currency AS currency ) AS user_ltv,
      STRUCT( user_dim.traffic_source.user_acquired_campaign AS name,
          user_dim.traffic_source.user_acquired_medium AS medium,
          user_dim.traffic_source.user_acquired_source AS source ) AS traffic_source,
      STRUCT( user_dim.geo_info.continent AS continent,
        user_dim.geo_info.country AS country,
        user_dim.geo_info.region AS region,
        user_dim.geo_info.city AS city ) AS geo,
      STRUCT( user_dim.device_info.device_category AS category,
        user_dim.device_info.mobile_brand_name,
        user_dim.device_info.mobile_model_name,
        user_dim.device_info.mobile_marketing_name,
        user_dim.device_info.device_model AS mobile_os_hardware_model,
        @platform AS operating_system,
        user_dim.device_info.platform_version AS operating_system_version,
        user_dim.device_info.device_id AS vendor_id,
        user_dim.device_info.resettable_device_id AS advertising_id,
        user_dim.device_info.user_default_language AS language,
        user_dim.device_info.device_time_zone_offset_seconds AS time_zone_offset_seconds,
        IF(user_dim.device_info.limited_ad_tracking, "Yes", "No") AS is_limited_ad_tracking ) AS device,
      STRUCT( user_dim.app_info.app_id AS id,
        @firebase_app_id  AS firebase_app_id,
        user_dim.app_info.app_version AS version,
        user_dim.app_info.app_store AS install_source ) AS app_info,
      (
      SELECT
        ARRAY_AGG(STRUCT(user_property.key AS key,
            STRUCT(user_property.value.value.string_value AS string_value,
              user_property.value.value.int_value AS int_value,
              user_property.value.value.double_value AS double_value,
              user_property.value.value.float_value AS float_value,
              user_property.value.set_timestamp_usec AS set_timestamp_micros ) AS value))
      FROM
        UNNEST(user_dim.user_properties) AS user_property) AS user_properties
    FROM
      `SCRIPT_GENERATED_TABLE_NAME`,
      UNNEST(event_dim) AS event
      
  4. Abra un nuevo shell y copie en un archivo llamado migration.sh la secuencia de comandos Bash que aparece más abajo:
    1. Ejecute el comando cat > migration.sh.
    2. Copie y pegue en el shell la secuencia de comandos que se indica más abajo.
    3. Para guardar y salir, pulse Ctrl + D.
    Modifique la secuencia de comandos siguiente; incluya el ID de la propiedad de Analytics, el ID de proyecto de BigQuery, el ID de aplicación de Firebase, el nombre del conjunto de datos de BigQuery y las fechas de inicio y finalización de los datos que quiera.
    Secuencia de comandos (migration.sh):
    # ID de la propiedad de Analytics del proyecto. Podrá encontrarlo en la sección de configuración de Analytics de Firebase.
    PROPERTY_ID= ID de su propiedad de Analytics
    
    # Proyecto de BigQuery Export.
    BQ_PROJECT_ID= "ID de su proyecto de BigQuery" (por ejemplo, "proyecto-público-de-firebase")
    
    # ID de la aplicación de Firebase.
    FIREBASE_APP_ID="ID de su aplicación de Firebase" (por ejemplo, "1:300830567303:ios:09b1ab1d3ca29bda")
    
    # Conjunto desde el que se importan los datos.
    BQ_DATASET="nombre del conjunto de BigQuery desde el que quiere importar los datos" (p. ej., "demo_de_firebase_para_iOS")
    
    # Plataforma.
    PLATFORM="plataforma de la aplicación; puede ser ANDROID o IOS"
    
    # Periodo del cual se quiere hacer la migración, incluidas las fechas [START_DATE] y [END_DATE].
    START_DATE=20180324
    END_DATE=20180327
    
    # Nota: No modifique el código siguiente si no tiene los conocimientos para hacerlo.
    startdate=$(date -d"$START_DATE"  +%Y%m%d) || exit -1
    enddate=$(date -d"$END_DATE"  +%Y%m%d) || exit -1
    
    # Se debe repetir la secuencia de comandos por los días comprendidos entre las dos fechas anteriores.
    DATE="$startdate"
    while [ "$DATE" -le "$enddate" ]; do
    
            # Se construye la tabla de BigQuery aplicando los parámetros anteriores.
            BQ_TABLE="$BQ_PROJECT_ID.$BQ_DATASET.app_events_$DATE"
    
            echo "Migrando $BQ_TABLE"
    
            cat migration_script.sql | sed -e "s/SCRIPT_GENERATED_TABLE_NAME/$BQ_TABLE/g" | bq query \
            --debug_mode \
            --allow_large_results \
            --noflatten_results \
            --use_legacy_sql=False \
            --destination_table analytics_$PROPERTY_ID.events_$DATE \
            --batch \
            --append_table \
            --parameter=firebase_app_id::$FIREBASE_APP_ID \
            --parameter=date::$DATE \
            --parameter=platform::$PLATFORM \
            --project_id=$BQ_PROJECT_ID
    
    
            temp=$(date -I -d "$DATE + 1 day")
            DATE=$(date -d "$temp" +%Y%m%d)
    
    done
    exit
    
    # Fin de la secuencia de comandos.
    
    
  5. Abra un nuevo shell y ejecute el comando bash migration.sh.

 

Antiguo esquema de exportación

user_dim

Nombre del campo Tipo de datos Descripción
user_dim RECORD Un registro de dimensiones de usuario.
user_dim.user_id STRING El ID de usuario configurado con la API setUserId.
user_dim.first_open_timestamp_micros INTEGER La hora (en microsegundos) a la que el usuario abrió la aplicación por primera vez.
user_dim.user_properties RECORD Un registro repetido de propiedades de usuario y configurado con la API setUserProperty.
user_dim.user_properties.key STRING El nombre de la propiedad de usuario.
user_dim.user_properties.value RECORD Un registro de la información sobre la propiedad de usuario.
user_dim.user_properties.value.value RECORD Un registro del valor de propiedad de usuario.
user_dim.user_properties.value.value.string_value STRING El valor de cadena de la propiedad de usuario.
user_dim.user_properties.value.value.int_value INTEGER El valor entero de la propiedad de usuario.
user_dim.user_properties.value.value.double_value FLOAT El valor de doble precisión de la propiedad de usuario.
user_dim.user_properties.value.set_timestamp_usec INTEGER La hora (en microsegundos) a la que se configuró por última vez la propiedad de usuario.
user_dim.user_properties.value.index INTEGER El índice (de 0 a 24) de la propiedad de usuario.
user_dim.device_info RECORD Un registro de la información sobre el dispositivo.
user_dim.device_info.device_category STRING La categoría del dispositivo (móvil, tablet u ordenador).
user_dim.device_info.mobile_brand_name STRING El nombre de la marca del dispositivo.
user_dim.device_info.mobile_model_name STRING El nombre del modelo del dispositivo.
user_dim.device_info.mobile_marketing_name STRING El nombre comercial del dispositivo.
user_dim.device_info.device_model STRING El modelo del dispositivo.
user_dim.device_info.platform_version STRING La versión del SO.
user_dim.device_info.device_id STRING IDFV (solo aparece si el IDFA no está disponible).
user_dim.device_info.resettable_device_id STRING El IDFA o ID de publicidad.
user_dim.device_info.user_default_language STRING El idioma del SO.
user_dim.device_info.device_time_zone_offset_seconds INTEGER La compensación horaria respecto a GMT en segundos.
user_dim.device_info.limited_ad_tracking BOOLEAN El ajuste para limitar el seguimiento de anuncios del dispositivo.
user_dim.geo_info RECORD Un registro de la información geográfica del usuario.
user_dim.geo_info.continent STRING El continente en el que se registraron los eventos, según la dirección IP.
user_dim.geo_info.country STRING El país en el que se registraron los eventos, según la dirección IP.
user_dim.geo_info.region STRING La región en la que se registraron los eventos, según la dirección IP.
user_dim.geo_info.city STRING La ciudad en la que se registraron los eventos, según la dirección IP.
user_dim.app_info RECORD Un registro de la información sobre la aplicación.
user_dim.app_info.app_version STRING El nombre de la versión (Android) o de la versión de paquete reducida.
user_dim.app_info.app_instance_id STRING El ID único de la instancia de la aplicación.
user_dim.app_info.app_store STRING La tienda de la que se ha descargado esta aplicación.
user_dim.app_info.app_platform STRING La plataforma en que se está ejecutando esta aplicación.
user_dim.traffic_source RECORD El nombre de la fuente de tráfico con la que se adquirió al usuario. Este campo no se rellena en tablas intradiarias.
user_dim.traffic_source.user_acquired_campaign STRING El nombre de la campaña de marketing con la que se adquirió al usuario. Este campo no se rellena en tablas intradiarias.
user_dim.traffic_source.user_acquired_medium STRING El nombre del medio (búsqueda de pago, búsqueda orgánica, correo electrónico, etc.) con el que se adquirió al usuario. Este campo no se rellena en tablas intradías.
user_dim.traffic_source.user_acquired_source STRING El nombre de la red con la que se adquirió al usuario. Este campo no se rellena en tablas intradiarias.
user_dim.bundle_info RECORD Un registro de la información sobre el paquete en el que se subieron estos eventos.
user_dim.bundle_info.bundle_sequence_id INTEGER El ID secuencial del paquete en el que se subieron estos eventos.
user_dim.ltv_info RECORD Un registro de la información del valor del tiempo de vida del cliente sobre este usuario. Este campo no se rellena en tablas intradiarias.
user_dim.ltv_info.revenue FLOAT El valor del tiempo de vida del cliente (ingresos) de este usuario. Este campo no se rellena en tablas intradiarias.
user_dim.ltv_info.currency STRING El valor del tiempo de vida del cliente (moneda) de este usuario. Este campo no se rellena en tablas intradiarias.
 

event_dim

Nombre del campo Tipo de datos Descripción
event_dim RECORD Un registro repetido de información correspondiente a los eventos de este paquete.
event_dim.date STRING La fecha en la que se registró este evento (en el formato de fecha AAAAMMDD de la zona horaria registrada de la aplicación).
event_dim.name STRING El nombre de este evento.
event_dim.params RECORD Un registro repetido de los parámetros asociados a este evento.
event_dim.params.key STRING La clave del parámetro de evento.
event_dim.params.value RECORD Un registro del valor del parámetro de evento.
event_dim.params.value.string_value STRING El valor de cadena del parámetro de evento.
event_dim.params.value.int_value INTEGER El valor entero del parámetro de evento.
event_dim.params.value.double_value FLOAT El valor de doble precisión del parámetro de evento.
event_dim.timestamp_micros INTEGER La hora (en microsegundos y formato UTC) a la que se registró este evento en el cliente.
event_dim.previous_timestamp_micros INTEGER La hora (en microsegundos y formato UTC) a la que se registró previamente este evento en el cliente.

¿Te ha resultado útil esta información?

¿Cómo podemos mejorar esta página?
Búsqueda
Borrar búsqueda
Cerrar búsqueda
Aplicaciones de Google
Menú principal
13336188893782803494
true
Buscar en el Centro de ayuda
true
true
true
true
true
69256
false
false