Servizio YouTube Analytics
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Il servizio YouTube Analytics ti consente di utilizzare l'API YouTube Analytics in Apps Script. Questa API consente
agli utenti di recuperare statistiche di visualizzazione, metriche di popolarità e
informazioni demografiche per i video e i canali YouTube.
Riferimento
Per informazioni dettagliate su questo servizio, consulta la
documentazione di riferimento per l'API
YouTube Analytics. Come tutti i servizi avanzati in Apps Script, il servizio YouTube Analytics
utilizza gli stessi oggetti, metodi e parametri dell'API pubblica. Per ulteriori informazioni, consulta Come vengono determinate le firme dei metodi.
Codice di esempio
Il codice di esempio riportato di seguito utilizza la versione 2 dell'API YouTube Analytics, nonché la versione 3 dell'API YouTube Data, a cui puoi accedere tramite il servizio YouTube in Apps Script.
Per segnalare problemi e trovare altro supporto, consulta la
guida all'assistenza per l'API di YouTube.
Crea report
Questa funzione crea un foglio di lavoro contenente il numero di visualizzazioni giornaliere,
le metriche del tempo di visualizzazione e il numero di nuovi iscritti per i video di un canale.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-31 UTC.
[null,null,["Ultimo aggiornamento 2025-08-31 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,["# YouTube Analytics Service\n\nThe 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---------\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-----------\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\n### Create 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```javascript\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```"]]