youtube-analytics-api

How to filter YouTube Analytics API request for embedded video stats only


I'm trying to get data from the YouTube Analytics API for embedded videos only.

When I use the "insightPlaybackLocationType==EMBEDDED" filter, I get a response that the query is not supported. Without this filter, the query returns a response without any errors.

response = self.executeAPIRequest(
    yt_instance.reports().query,
    ids="channel==" + c_id,
    startDate=startdate,
    endDate=enddate,
metrics="views,likes,dislikes,comments,shares,estimatedMinutesWatched,averageViewDuration,averageViewPercentage",
    sort='-views',
    filters="video==VIDEO_ID_HERE;insightPlaybackLocationType==EMBEDDED",
    maxResults=200,
)

Here's the error I get:

googleapiclient.errors.HttpError: https://youtubeanalytics.googleapis.com/v2/reports?ids=channel%3D%CHANNEL_ID_HERE&startDate=2017-02-28&endDate=2019-08-11&metrics=views%2Clikes%2Cdislikes%2Ccomments%2Cshares%2CestimatedMinutesWatched%2CaverageViewDuration%2CaverageViewPercentage&sort=-views&filters=video%3D%VIDEO_ID_HERE%3BinsightPlaybackLocationType%3D%3DEMBEDDED&maxResults=200&alt=json returned "The query is not supported. Check the documentation at https://developers.google.com/youtube/analytics/v2/available_reports for a list of supported queries.">


Solution

  • That filter can only be used with the insightPlaybackLocationDetail dimension. Bear in mind that the dimension only supports views and estimatedMinutesWatched metrics.

    Documentation (Playback location detail): https://developers.google.com/youtube/analytics/channel_reports#playback-location-reports

    Be sure to set the sort and maxResults parameters correctly for this dimension.