Skip to content

Deployment

Deployment Standards

Arguments

The following arguments are used in various combinations when executing the decodedata deployment functions.

Argument
Data Type
Description
ga4_dataset_id STRING The dataset_id of the dataset containing the GA4 BigQuery data export.
destination_dataset_id STRING The dataset_id of the dataset into which the decoder functions will be deployed. Use the same value as ga4_dataset_id to deploy to the same dataset as the inbound GA4 data (which is recommended, especially when deploying across multiple properties).
conversion_events ARRAY<STRING> The event_name values to be marked as conversion events.
event_options JSON Options to add specific include/exclude logic for custom profiling of event names, parameters and user properties. Accepts NULL for default logic.
ga4_dataset_ids ARRAY<STRING> The ga4_dataset_id value corresponding to datasets containing GA4 BigQuery data exports.
integrated_dataset_id STRING The dataset_id of the dataset into which the integrated output resources will be deployed.

Permissions

The logged-in user requires the following permissions to execute the deployment functions on user GA4 data:

Permission Permitted Dataset
bigquery.routines.get decodedata.[region]
bigquery.jobs.create project_id
bigquery.tables.getData project_id.ga4_dataset_id
bigquery.routines.create project_id.destination_dataset_id

Deployment Functions

GA4_STANDARD

Deployment Function
App or Web Single or Multi-Property Event Names Event Params User Properties Aligned Schema
DEPLOY_GA4_STANDARD_WEB Web Single Standard Standard None
DEPLOY_GA4_STANDARD_APP App Single Standard Standard None

These functions deploy the decoder functions, output EVENTS date-partitioned table and the flow runner (RUN_FLOW) function into the destination dataset, using the set of event names defined by the GA4 Automatically Collected Events specification and event parameters defined by the GA4 Enhanced Event Measurement specification for Web or App. Conversion events are aligned to the GA4 Default Conversions for Web or App. No user properties are included.

Since the output schema will be consistent for all GA4 properties, this approach allows downstream data integration of Web or App properties without additional transformation. Since Web and App properties will have different schemas, they would require additional transformation to integrate Web and App data.

deployment: DEPLOY_GA4_STANDARD_WEB

CALL decodedata.eu.DEPLOY_GA4_STANDARD_WEB (ga4_dataset_id, destination_dataset_id);
CALL decodedata.us.DEPLOY_GA4_STANDARD_WEB (ga4_dataset_id, destination_dataset_id);

deployment: DEPLOY_GA4_STANDARD_APP

CALL decodedata.eu.DEPLOY_GA4_STANDARD_APP (ga4_dataset_id, destination_dataset_id);
CALL decodedata.us.DEPLOY_GA4_STANDARD_APP (ga4_dataset_id, destination_dataset_id);

GA4_CUSTOM

Deployment Function
App or Web Single or Multi-Property Event Names Event Params User Properties Aligned Schema
DEPLOY_GA4_CUSTOM_WEB Web Single Observed + Standard Observed + Standard Observed
DEPLOY_GA4_CUSTOM_APP App Single Observed + Standard Observed + Standard Observed

These functions deploys the decoder functions, output EVENTS date-partitioned table and the flow runner (RUN_FLOW) function into the destination dataset using the combination of observed event names and the standard set of event names defined by the GA4 Automatically Collected Events specification for Web or App. Event parameters are a combination of observed event parameters and event parameters defined by the GA4 Enhanced Event Measurement specification for Web or App, and user properties are defined by the values observed in the data .

Since the output schema will be bespoke for each GA4 properties, this approach will typically not allow downstream data integration without additional transformation.

deployment: DEPLOY_GA4_CUSTOM_WEB

CALL decodedata.eu.DEPLOY_GA4_CUSTOM_WEB (ga4_dataset_id, destination_dataset_id, conversion_events, event_options);
CALL decodedata.eu.DEPLOY_GA4_CUSTOM_WEB (ga4_dataset_id, destination_dataset_id, conversion_events, event_options);

deployment: DEPLOY_GA4_CUSTOM_APP

CALL decodedata.eu.DEPLOY_GA4_CUSTOM_APP (ga4_dataset_id, destination_dataset_id, conversion_events, event_options);
CALL decodedata.eu.DEPLOY_GA4_CUSTOM_APP (ga4_dataset_id, destination_dataset_id, conversion_events, event_options);

GA4_CUSTOM_INTEGRATED

Deployment Function
App or Web Single or Multi-Property Event Names Event Params User Properties Aligned Schema
GA4_CUSTOM_WEB_INTEGRATED Web Multi Observed + Standard Observed + Standard Observed
GA4_CUSTOM_APP_INTEGRATED App Multi Observed + Standard Observed + Standard Observed

This function deploys the decoder functions, output EVENTS date-partitioned tables and the flow runner (RUN_FLOW) functions into each GA4 dataset, using the combination of observed event names across all specified GA4 properties and the standard set of event names defined by the GA4 Automatically Collected Events specification for Web or App. Event parameters are a combination of observed event parameters across all specified GA4 properties and event parameters defined by the GA4 Enhanced Event Measurement specification for Web or App, and user properties are defined by the values observed across all specified GA4 properties.

Since the same integrated decoder functions are deployed across all specified GA4 properties, the output schema will be aligned across GA4 properties, enabling downstream data integration without additional transformation.

deployment: DEPLOY_GA4_CUSTOM_WEB_INTEGRATED

CALL decodedata.eu.DEPLOY_GA4_CUSTOM_WEB_INTEGRATED(ga4_dataset_ids, integrated_dataset_id, conversion_events, event_options);
CALL decodedata.us.DEPLOY_GA4_CUSTOM_WEB_INTEGRATED(ga4_dataset_ids, integrated_dataset_id, conversion_events, event_options);

deployment: DEPLOY_GA4_CUSTOM_APP_INTEGRATED

CALL decodedata.eu.DEPLOY_GA4_CUSTOM_APP_INTEGRATED(ga4_dataset_ids, integrated_dataset_id, conversion_events, event_options);
CALL decodedata.us.DEPLOY_GA4_CUSTOM_APP_INTEGRATED(ga4_dataset_ids, integrated_dataset_id, conversion_events, event_options);