Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Usługa Statystyki YouTube umożliwia korzystanie z YouTube Analytics API w Apps Script. Ten interfejs API umożliwia użytkownikom pobieranie statystyk oglądania, danych o popularności i informacji demograficznych dotyczących filmów i kanałów w YouTube.
Dokumentacja
Szczegółowe informacje o tej usłudze znajdziesz w dokumentacji referencyjnej interfejsu YouTube Analytics API. Podobnie jak wszystkie usługi zaawansowane w Apps Script, usługa Statystyki YouTube korzysta z tych samych obiektów, metod i parametrów co publiczny interfejs API. Więcej informacji znajdziesz w artykule Jak określane są podpisy metod.
Przykładowy kod
Przykładowy kod poniżej korzysta z wersji 2 interfejsu YouTube Analytics API oraz wersji 3 interfejsu YouTube Data API, do których możesz uzyskać dostęp za pomocą usługi YouTube w Apps Script.
Ta funkcja tworzy arkusz kalkulacyjny zawierający dzienne liczby wyświetleń, dane dotyczące czasu oglądania i liczby nowych subskrybentów filmów na kanale.
/** * 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('No rows returned.');return;}constspreadsheet=SpreadsheetApp.create('YouTube Analytics Report');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('Report spreadsheet created: %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;}
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-08-04 UTC."],[[["\u003cp\u003eThe YouTube Analytics API allows you to access viewing statistics, popularity metrics, and demographic data for YouTube videos and channels within Apps Script.\u003c/p\u003e\n"],["\u003cp\u003eThis is an advanced service that requires enabling before use.\u003c/p\u003e\n"],["\u003cp\u003eThe 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.\u003c/p\u003e\n"],["\u003cp\u003eThe API utilizes the same objects, methods, and parameters as the public YouTube Analytics API, ensuring consistency and familiarity for developers.\u003c/p\u003e\n"],["\u003cp\u003eFor further support and issue reporting, refer to the YouTube API support guide.\u003c/p\u003e\n"]]],[],null,["The YouTube Analytics service allows you to use the\n[YouTube Analytics API](/youtube/analytics) in Apps Script. This API gives\nusers the ability to retrieve viewing statistics, popularity metrics, and\ndemographic information for YouTube videos and channels.\n| **Note:** This is an advanced service that must be [enabled before use](/apps-script/guides/services/advanced).\n\nReference\n\nFor detailed information on this service, see the\n[reference documentation](/youtube/analytics/reference) for the YouTube\nAnalytics API. Like all advanced services in Apps Script, the YouTube Analytics\nservice uses the same objects, methods, and parameters as the public API. For more information, see [How method signatures are determined](/apps-script/guides/services/advanced#how_method_signatures_are_determined).\n\nSample code\n\nThe sample code below uses [version 2](/youtube/analytics/reference) of the\nYouTube Analytics API, as well as [version 3](/youtube/v3/docs) of the YouTube\nData API, which you can access through the\n[YouTube service](/apps-script/advanced/youtube) in Apps Script.\n\nTo report issues and find other support, see the\n[YouTube API support guide](/youtube/v3/support).\n\nCreate report\n\nThis function creates a spreadsheet containing daily view counts,\nwatch-time metrics, and new-subscriber counts for a channel's videos. \nadvanced/youtubeAnalytics.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/youtubeAnalytics.gs) \n\n```gosu\n/**\n * Creates a spreadsheet containing daily view counts, watch-time metrics,\n * and new-subscriber counts for a channel's videos.\n */\nfunction createReport() {\n // Retrieve info about the user's YouTube channel.\n const channels = YouTube.Channels.list('id,contentDetails', {\n mine: true\n });\n const channelId = channels.items[0].id;\n\n // Retrieve analytics report for the channel.\n const oneMonthInMillis = 1000 * 60 * 60 * 24 * 30;\n const today = new Date();\n const lastMonth = new Date(today.getTime() - oneMonthInMillis);\n\n const metrics = [\n 'views',\n 'estimatedMinutesWatched',\n 'averageViewDuration',\n 'subscribersGained'\n ];\n const result = YouTubeAnalytics.Reports.query({\n ids: 'channel==' + channelId,\n startDate: formatDateString(lastMonth),\n endDate: formatDateString(today),\n metrics: metrics.join(','),\n dimensions: 'day',\n sort: 'day'\n });\n\n if (!result.rows) {\n console.log('No rows returned.');\n return;\n }\n const spreadsheet = SpreadsheetApp.create('YouTube Analytics Report');\n const sheet = spreadsheet.getActiveSheet();\n\n // Append the headers.\n const headers = result.columnHeaders.map((columnHeader)=\u003e {\n return formatColumnName(columnHeader.name);\n });\n sheet.appendRow(headers);\n\n // Append the results.\n sheet.getRange(2, 1, result.rows.length, headers.length)\n .setValues(result.rows);\n\n console.log('Report spreadsheet created: %s',\n spreadsheet.getUrl());\n}\n\n/**\n * Converts a Date object into a YYYY-MM-DD string.\n * @param {Date} date The date to convert to a string.\n * @return {string} The formatted date.\n */\nfunction formatDateString(date) {\n return Utilities.formatDate(date, Session.getScriptTimeZone(), 'yyyy-MM-dd');\n}\n\n/**\n * Formats a column name into a more human-friendly name.\n * @param {string} columnName The unprocessed name of the column.\n * @return {string} The formatted column name.\n * @example \"averageViewPercentage\" becomes \"Average View Percentage\".\n */\nfunction formatColumnName(columnName) {\n let name = columnName.replace(/([a-z])([A-Z])/g, '$1 $2');\n name = name.slice(0, 1).toUpperCase() + name.slice(1);\n return name;\n}\n```"]]