Skip to main content
Connectors

YouTube Analytics connector

Set up the YouTube Analytics connector in Kaivo: authentication, configuration, the 18 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your YouTube Analytics data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your marketing and sales data instead of moving it.

What is the YouTube Analytics connector

Sync your YouTube Analytics channel and playlist reports into BigQuery with Kaivo to track views, traffic sources, and audience retention.

CategoryMarketing & Sales
AuthenticationOAuth
SetupOn request, contact us to enable it

Getting started with the YouTube Analytics connector

  1. Sign up for Kaivo and create a workspace.
  2. Ask us to enable the YouTube Analytics connector for your workspace. You can reach our team from the chat in the app.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating YouTube Analytics

Connect by signing in to your Google account. Kaivo runs the connection for you, so you never share a password.

Configuring the YouTube Analytics connector

When you set up the connector, you provide:

FieldDescription
Content Owner ID

If you manage multiple YouTube channels, you can use your Content Owner ID to get the data from all of them.

Tables and columns synced from YouTube Analytics

Kaivo syncs 18 tables from YouTube Analytics into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
annotation_click_through_rateSTRING
annotation_clickable_impressionsSTRING
annotation_clicksSTRING
annotation_closable_impressionsSTRING
annotation_close_rateSTRING
annotation_closesSTRING
annotation_idSTRING
annotation_impressionsSTRING
annotation_typeSTRING
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
subscribed_statusSTRING
video_idSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
annotation_click_through_rateFLOAT64
annotation_clickable_impressionsINT64
annotation_clicksINT64
annotation_closable_impressionsINT64
annotation_close_rateFLOAT64
annotation_closesINT64
annotation_impressionsINT64
average_view_duration_percentageFLOAT64
average_view_duration_secondsFLOAT64
card_click_rateFLOAT64
card_clicksINT64
card_impressionsINT64
card_teaser_click_rateFLOAT64
card_teaser_clicksINT64
card_teaser_impressionsINT64
channel_idSTRING
commentsINT64
country_codeSTRING
dateINT64
dislikesINT64
likesINT64
live_or_on_demandSTRING
red_viewsINT64
red_watch_time_minutesFLOAT64
sharesINT64
subscribed_statusSTRING
subscribers_gainedINT64
subscribers_lostINT64
video_idSTRING
videos_added_to_playlistsINT64
videos_removed_from_playlistsINT64
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
card_click_rateSTRING
card_clicksSTRING
card_idSTRING
card_impressionsSTRING
card_teaser_click_rateSTRING
card_teaser_clicksSTRING
card_teaser_impressionsSTRING
card_typeSTRING
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
subscribed_statusSTRING
video_idSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentageFLOAT64
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
device_typeINT64
live_or_on_demandSTRING
operating_systemINT64
playback_location_typeINT64
red_viewsINT64
red_watch_time_minutesFLOAT64
subscribed_statusSTRING
traffic_source_typeINT64
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
age_groupSTRING
channel_idSTRING
country_codeSTRING
dateINT64
genderSTRING
live_or_on_demandSTRING
subscribed_statusSTRING
video_idSTRING
views_percentageSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentageFLOAT64
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
device_typeINT64
live_or_on_demandSTRING
operating_systemINT64
red_viewsINT64
red_watch_time_minutesFLOAT64
subscribed_statusSTRING
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
channel_idSTRING
country_codeSTRING
dateINT64
end_screen_element_click_rateSTRING
end_screen_element_clicksSTRING
end_screen_element_idSTRING
end_screen_element_impressionsSTRING
end_screen_element_typeSTRING
live_or_on_demandSTRING
subscribed_statusSTRING
video_idSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentageFLOAT64
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
playback_location_detailSTRING
playback_location_typeINT64
red_viewsINT64
red_watch_time_minutesFLOAT64
subscribed_statusSTRING
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
annotation_click_through_rateINT64
annotation_clickable_impressionsINT64
annotation_clicksINT64
annotation_closable_impressionsINT64
annotation_close_rateINT64
annotation_closesINT64
annotation_impressionsINT64
average_view_duration_percentageFLOAT64
average_view_duration_secondsFLOAT64
card_click_rateINT64
card_clicksINT64
card_impressionsINT64
card_teaser_click_rateINT64
card_teaser_clicksINT64
card_teaser_impressionsINT64
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
province_codeSTRING
red_viewsINT64
red_watch_time_minutesFLOAT64
subscribed_statusSTRING
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
sharesSTRING
sharing_serviceSTRING
subscribed_statusSTRING
video_idSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentageFLOAT64
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
red_viewsINT64
red_watch_time_minutesFLOAT64
subscribed_statusSTRING
subtitle_languageSTRING
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
subtitle_language_autotranslatedSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentageFLOAT64
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
red_viewsINT64
red_watch_time_minutesFLOAT64
subscribed_statusSTRING
traffic_source_detailSTRING
traffic_source_typeINT64
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
playlist_idSTRING
playlist_saves_addedINT64
playlist_saves_removedINT64
playlist_startsINT64
subscribed_statusSTRING
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
device_typeINT64
live_or_on_demandSTRING
operating_systemINT64
playback_location_typeINT64
playlist_idSTRING
playlist_saves_addedINT64
playlist_saves_removedINT64
playlist_startsINT64
subscribed_statusSTRING
traffic_source_typeINT64
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
device_typeINT64
live_or_on_demandSTRING
operating_systemINT64
playlist_idSTRING
playlist_saves_addedINT64
playlist_saves_removedINT64
playlist_startsINT64
subscribed_statusSTRING
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
playback_location_detailSTRING
playback_location_typeINT64
playlist_idSTRING
playlist_saves_addedINT64
playlist_saves_removedINT64
playlist_startsINT64
subscribed_statusSTRING
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
playlist_idSTRING
playlist_saves_addedSTRING
playlist_saves_removedSTRING
playlist_startsSTRING
province_codeSTRING
subscribed_statusSTRING
video_idSTRING
viewsSTRING
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_secondsFLOAT64
channel_idSTRING
country_codeSTRING
dateINT64
live_or_on_demandSTRING
playlist_idSTRING
playlist_saves_addedINT64
playlist_saves_removedINT64
playlist_startsINT64
subscribed_statusSTRING
traffic_source_detailSTRING
traffic_source_typeINT64
video_idSTRING
viewsINT64
watch_time_minutesFLOAT64
engaged_viewsINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the YouTube Analytics sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where YouTube Analytics supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for YouTube Analytics?

It depends on how much history is in your YouTube Analytics account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when YouTube Analytics's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in YouTube Analytics, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in YouTube Analytics instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the YouTube Analytics connector in Kaivo and all of its synced data is deleted with it.

Common use cases for YouTube Analytics data

Channel performance

Use channel_basic_a3 and channel_combined_a3 to track views, watch time, and subscribers.

Traffic sources

Use channel_traffic_source_a3 and channel_playback_location_a3 to see where views come from.

Audience breakdown

Use channel_demographics_a1 and channel_device_os_a3 to see who watches and on what.

Playlist performance

Use playlist_basic_a2 and playlist_combined_a2 to compare how playlists hold attention.

Use YouTube Analytics data in your AI and BI tools

Once YouTube Analytics data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with YouTube Analytics data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for YouTube Analytics connector pricing and plan details.

Was this helpful?

Still need help? Share an idea