تتوفر نماذج رمز برمجة التطبيقات التالية لـ YouTube Analytics API. يمكنك تنزيل نماذج الرموز هذه من المجلد apps-script
في مستودع نماذج الرموز في واجهات برمجة تطبيقات YouTube على GitHub.
تصدير بيانات YouTube Analytics إلى جداول بيانات Google
تستخدم هذه الوظيفة واجهة برمجة تطبيقات YouTube Analytics لجلب البيانات حول قناة المستخدم الذي تمت مصادقته، وإنشاء جدول بيانات Google جديد في Drive للمستخدم يحتوي على البيانات.
يوضّح الجزء الأول من هذا النموذج استدعاءً بسيطًا من واجهة برمجة تطبيقات YouTube Analytics. تجلب هذه الدالة أولاً معرّف قناة المستخدم النشط. باستخدام هذا المعرّف، تنشئ الدالة طلب بيانات من YouTube Analytics API لاسترداد المشاهدات والمعجبين وغير المعجبين وعمليات المشاركة خلال آخر 30 يومًا. تعرض واجهة برمجة التطبيقات البيانات في كائن استجابة يحتوي على مصفوفة ثنائية الأبعاد.
يُنشئ الجزء الثاني من النموذج جدول بيانات. يتم وضع جدول البيانات هذا في Google Drive للمستخدم الذي تمت المصادقة عليه بالاسم "تقرير YouTube" والنطاق الزمني في العنوان. تملأ الدالة جدول البيانات باستجابة واجهة برمجة التطبيقات، ثم تقفل الأعمدة والصفوف التي ستحدِّد محاور الرسم البياني. تتم إضافة رسم بياني عمودي مكدس لجدول البيانات.
function spreadsheetAnalytics() { // Get the channel ID var myChannels = YouTube.Channels.list('id', {mine: true}); var channel = myChannels.items[0]; var channelId = channel.id; // Set the dates for our report var today = new Date(); var oneMonthAgo = new Date(); oneMonthAgo.setMonth(today.getMonth() - 1); var todayFormatted = Utilities.formatDate(today, 'UTC', 'yyyy-MM-dd') var oneMonthAgoFormatted = Utilities.formatDate(oneMonthAgo, 'UTC', 'yyyy-MM-dd'); // The YouTubeAnalytics.Reports.query() function has four required parameters and one optional // parameter. The first parameter identifies the channel or content owner for which you are // retrieving data. The second and third parameters specify the start and end dates for the // report, respectively. The fourth parameter identifies the metrics that you are retrieving. // The fifth parameter is an object that contains any additional optional parameters // (dimensions, filters, sort, etc.) that you want to set. var analyticsResponse = YouTubeAnalytics.Reports.query( 'channel==' + channelId, oneMonthAgoFormatted, todayFormatted, 'views,likes,dislikes,shares', { dimensions: 'day', sort: '-day' }); // Create a new Spreadsheet with rows and columns corresponding to our dates var ssName = 'YouTube channel report ' + oneMonthAgoFormatted + ' - ' + todayFormatted; var numRows = analyticsResponse.rows.length; var numCols = analyticsResponse.columnHeaders.length; // Add an extra row for column headers var ssNew = SpreadsheetApp.create(ssName, numRows + 1, numCols); // Get the first sheet var sheet = ssNew.getSheets()[0]; // Get the range for the title columns // Remember, spreadsheets are 1-indexed, whereas arrays are 0-indexed var headersRange = sheet.getRange(1, 1, 1, numCols); var headers = []; // These column headers will correspond with the metrics requested // in the initial call: views, likes, dislikes, shares for(var i in analyticsResponse.columnHeaders) { var columnHeader = analyticsResponse.columnHeaders[i]; var columnName = columnHeader.name; headers[i] = columnName; } // This takes a 2 dimensional array headersRange.setValues([headers]); // Bold and freeze the column names headersRange.setFontWeight('bold'); sheet.setFrozenRows(1); // Get the data range and set the values var dataRange = sheet.getRange(2, 1, numRows, numCols); dataRange.setValues(analyticsResponse.rows); // Bold and freeze the dates var dateHeaders = sheet.getRange(1, 1, numRows, 1); dateHeaders.setFontWeight('bold'); sheet.setFrozenColumns(1); // Include the headers in our range. The headers are used // to label the axes var range = sheet.getRange(1, 1, numRows, numCols); var chart = sheet.newChart() .asColumnChart() .setStacked() .addRange(range) .setPosition(4, 2, 10, 10) .build(); sheet.insertChart(chart); }