This package models YouTube Analytics data from Fivetran’s connector. It uses data in the format described by the YouTube Channel Report schemas.
The main focus of the package is to transform the core object tables into analytics-ready models. It includes options to explore video demographics and a comprehensive overview of video performance that you could combine with other organic ad platform reports.
Modelslink
This package contains transformation models, designed to work simultaneously with our YouTube Analytics source package. A dependency on the source package is declared in this package’s packages.yml
file, so it will automatically download when you run dbt deps
. The primary outputs of this package are described below.
model | description |
---|---|
youtube__video_report | Each record represents the daily aggregation of your YouTube video performance. |
youtube__demographics_report | Each record represents a daily video view percentage by gender, age, and country. |
youtube__age_demographics_pivot | Each record represents a daily video view percentage with the age ranges pivoted out for quicker analysis. |
youtube__gender_demographics_pivot | Each record represents a daily video view percentage with the gender options pivoted out for quicker analysis. |
youtube__video_metadata | Each record represents an individual video enriched with metadata. This model is disabled by default. Read our YouTube Video Metadata Cloud Function Write Up or our YouTube Analytics source package README to learn how to generate this model. |
Installation Instructionslink
Check dbt Hub for the latest installation instructions, or read the dbt docs for more information on installing packages.
Include in your packages.yml
packages:
- package: fivetran/youtube_analytics
version: [">=0.2.0", "<0.3.0"]
Configurationlink
Required YouTube Channel Reportslink
To use this package, you need to pull the following YouTube Analytics reports through Fivetran:
- channel_basic_a2 (required)
- channel_demographics_a1 (optional)
- videos metadata table (optional)
Schema Configurationlink
By default, this package will look for your YouTube Analytics data in the youtube_analytics
schema of your target database. If this is not where your YouTube Analytics data is, please add the following configuration to your dbt_project.yml
file:
...
config-version: 2
vars:
youtube_analytics_database: your_database_name
youtube_analytics_schema: your_schema_name
YouTube Video Metadatalink
The Fivetran YouTube Analytics connector currently does not support video metadata. Consequently, it may be difficult to analyze individual video data without knowing which video belongs to which record.
As a workaround, you can create a Functions connector that syncs your YouTube video metadata into a table in your destination. This dbt package can then use the VIDEOS
metadata table to enrich your YouTube Analytics reporting data. To learn more about creating a Functions connector, read our YouTube Analytics Video Metadata Cloud Function article. It provides code and detailed steps on how to configure the function.
Enable Video Metadatalink
By default, the video metadata functionality within this package is disabled. If you have configured a cloud function to sync your video metadata into a VIDEOS
table, you must enable the package to incorporate the metadata into your package. You may use the variable configuration below in your dbt_project.yml
to enable this functionality:
vars:
youtube__using_video_metadata: true # false by default
Video Metadata Schema Configurationlink
By default, this package will look for your VIDEOS
YouTube Analytics metadata table in the youtube_analytics_metadata
schema of your target database. If this is not where your YouTube Analytics metadata table is, please add the following configuration to your dbt_project.yml
file:
...
config-version: 2
vars:
youtube_metadata_schema: your_schema_name
youtube_analytics_database: your_database_name
Disable Demographics Reportlink
This packages assumes you are syncing the YouTube channel_demographics_a1
report. If you are not syncing this report, you may add the below configuration to your dbt_project.yml
to disable the stg_youtube__demographics
model and all downstream references.
...
vars:
youtube__using_channel_demographics: false # true by default
Specifying Source Table Nameslink
This package assumes that the channel_basic_a_2
and channel_demographics_a_1
reports are named accordingly. If these reports have different names in your destination, enter the correct names in the channel_basic_table_name
and/or channel_demographics_table_name
variables in your dbt_project.yml
so that the package can find them:
...
vars:
youtube__channel_basic_table: "my_channel_basic_table_name"
youtube__channel_demographics_table: "demographics_youtube_report"
Changing the Build Schemalink
By default, this package will build the YouTube Analytics staging models within a schema titled (<target_schema>
+ _stg_youtube
) and the YouTube Analytics final models within a schema titled (<target_schema>
+ _youtube
) in your target database. If this is not where you would like your modeled YouTube Analytics data to be written to, add the following configuration to your dbt_project.yml
file:
...
models:
youtube_analytics:
+schema: my_new_schema_name # leave blank for just the target_schema
youtube_analytics_source:
+schema: my_new_schema_name # leave blank for just the target_schema
For additional configurations for the source models, visit the YouTube Analytics source package.
Contributionslink
Additional contributions to this package are very welcome! Please create issues
or open PRs against main
. Check out
this post
on the best workflow for contributing to a package.
Database supportlink
This package has been tested on BigQuery, Snowflake, Redshift, Postgres, and Databricks.
Databricks Dispatch Configurationlink
dbt v0.20.0
introduced a new project-level dispatch configuration that enables an “override” setting for all dispatched macros. If you are using a Databricks destination with this package you will need to add the below (or a variation of the below) dispatch configuration within your dbt_project.yml
. This is required in order for the package to accurately search for macros within the dbt-labs/spark_utils
then the dbt-labs/dbt_utils
packages respectively.
dispatch:
- macro_namespace: dbt_utils
search_order: ['spark_utils', 'dbt_utils']
Resources:link
- Provide feedback on our existing dbt packages or what you’d like to see next
- Have questions, feedback, or need help? Book a time during our office hours using Calendly or email us at solutions@fivetran.com
- Find all of Fivetran’s pre-built dbt packages in our dbt hub
- Learn how to orchestrate your models with Fivetran Transformations for dbt Core™
- Learn more about Fivetran overall in our docs
- Check out Fivetran’s blog
- Learn more about dbt in the dbt docs
- Check out Discourse for commonly asked questions and answers
- Join the chat on Slack for live discussions and support
- Find dbt events near you
- Check out the dbt blog for the latest news on dbt’s development and best practices