Stay organized with collections
Save and categorize content based on your preferences.
The YouTube Analytics service allows you to use the
YouTube Analytics API in Apps Script. This API gives
users the ability to retrieve viewing statistics, popularity metrics, and
demographic information for YouTube videos and channels.
Reference
For detailed information on this service, see the
reference documentation for the YouTube
Analytics API. Like all advanced services in Apps Script, the YouTube Analytics
service uses the same objects, methods, and parameters as the public API. For more information, see How method signatures are determined.
Sample code
The sample code below uses version 2 of the
YouTube Analytics API, as well as version 3 of the YouTube
Data API, which you can access through the
YouTube service in Apps Script.
/** * Creates a spreadsheet containing daily view counts, watch-time metrics, * and new-subscriber counts for a channel's videos. */functioncreateReport(){// Retrieve info about the user's YouTube channel.constchannels=YouTube.Channels.list('id,contentDetails',{mine:true});constchannelId=channels.items[0].id;// Retrieve analytics report for the channel.constoneMonthInMillis=1000*60*60*24*30;consttoday=newDate();constlastMonth=newDate(today.getTime()-oneMonthInMillis);constmetrics=['views','estimatedMinutesWatched','averageViewDuration','subscribersGained'];constresult=YouTubeAnalytics.Reports.query({ids:'channel=='+channelId,startDate:formatDateString(lastMonth),endDate:formatDateString(today),metrics:metrics.join(','),dimensions:'day',sort:'day'});if(!result.rows){console.log('Norowsreturned.');return;}constspreadsheet=SpreadsheetApp.create('YouTubeAnalyticsReport');constsheet=spreadsheet.getActiveSheet();// Append the headers.constheaders=result.columnHeaders.map((columnHeader)=>{returnformatColumnName(columnHeader.name);});sheet.appendRow(headers);// Append the results.sheet.getRange(2,1,result.rows.length,headers.length).setValues(result.rows);console.log('Reportspreadsheetcreated:%s',spreadsheet.getUrl());}/** * Converts a Date object into a YYYY-MM-DD string. * @param {Date} date The date to convert to a string. * @return {string} The formatted date. */functionformatDateString(date){returnUtilities.formatDate(date,Session.getScriptTimeZone(),'yyyy-MM-dd');}/** * Formats a column name into a more human-friendly name. * @param {string} columnName The unprocessed name of the column. * @return {string} The formatted column name. * @example "averageViewPercentage" becomes "Average View Percentage". */functionformatColumnName(columnName){letname=columnName.replace(/([a-z])([A-Z])/g,'$1$2');name=name.slice(0,1).toUpperCase()+name.slice(1);returnname;}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-19 UTC."],[[["The YouTube Analytics API allows you to access viewing statistics, popularity metrics, and demographic data for YouTube videos and channels within Apps Script."],["This is an advanced service that requires enabling before use."],["The provided sample code demonstrates how to create a spreadsheet report containing daily view counts, watch time, and subscriber data for a YouTube channel using the API."],["The API utilizes the same objects, methods, and parameters as the public YouTube Analytics API, ensuring consistency and familiarity for developers."],["For further support and issue reporting, refer to the YouTube API support guide."]]],[]]