Les exemples de code Apps Script suivants sont disponibles pour YouTube Analytics API. Vous pouvez télécharger ces exemples de code à partir du dossier apps-script
du dépôt de l'exemple de code des API YouTube sur GitHub.
Exporter les données YouTube Analytics vers Google Sheets
Cette fonction utilise l'API YouTube Analytics pour récupérer des données sur la chaîne de l'utilisateur authentifié, en créant une feuille de calcul Google Sheets contenant les données de l'utilisateur dans le Drive.
La première partie de cet exemple illustre un appel simple de l'API YouTube Analytics. Cette fonction récupère d'abord l'ID de la chaîne de l'utilisateur actif. Grâce à cet identifiant, la fonction effectue un appel d'API YouTube Analytics pour récupérer les vues, les "J'aime" et les "Je n'aime pas" et les partager au cours des 30 derniers jours. L'API renvoie les données dans un objet de réponse contenant un tableau 2D.
La deuxième partie de l'exemple consiste en une feuille de calcul. Cette feuille de calcul est placée dans le Google Drive de l'utilisateur authentifié avec le nom "Rapport YouTube" et la plage de dates dans le titre. La fonction remplit la feuille de calcul avec la réponse de l'API, puis verrouille les colonnes et les lignes qui définissent un axe du graphique. Un graphique à colonnes empilées est ajouté pour la feuille de calcul.
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 Date(); oneMonthAgo.setMonth(today.getMonth() - 1); var todayFormatted = Utilities.formatDate(today, 'UTC', 'yyyy-MM-dd') var '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); }