Dịch vụ YouTube Analytics
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Dịch vụ YouTube Analytics cho phép bạn sử dụng YouTube Analytics API trong Apps Script. API này cho phép người dùng truy xuất số liệu thống kê về lượt xem, chỉ số mức độ phổ biến và thông tin nhân khẩu học cho các video và kênh trên YouTube.
Tài liệu tham khảo
Để biết thông tin chi tiết về dịch vụ này, hãy xem tài liệu tham khảo cho YouTube Analytics API. Giống như tất cả các dịch vụ nâng cao trong Apps Script, dịch vụ YouTube Analytics sử dụng cùng các đối tượng, phương thức và tham số như API công khai. Để biết thêm thông tin, hãy xem bài viết Cách xác định chữ ký phương thức.
Mã mẫu
Đoạn mã mẫu dưới đây sử dụng phiên bản 2 của YouTube Analytics API, cũng như phiên bản 3 của YouTube Data API. Bạn có thể truy cập vào các phiên bản này thông qua dịch vụ YouTube trong Apps Script.
Để báo cáo vấn đề và tìm thông tin hỗ trợ khác, hãy xem hướng dẫn hỗ trợ về YouTube API.
Tạo báo cáo
Hàm này tạo một bảng tính chứa số lượt xem hằng ngày, chỉ số thời gian xem và số người đăng ký mới cho các video của một kênh.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-08-31 UTC.
[null,null,["Cập nhật lần gần đây nhất: 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```"]]