YouTube Analytics-Dienst

Mit dem YouTube Analytics-Dienst können Sie die YouTube Analytics API in Apps Script verwenden. Mit dieser API können Nutzer Wiedergabestatistiken, Beliebtheitsmesswerte und demografische Informationen zu YouTube-Videos und ‑Kanälen abrufen.

Referenz

Ausführliche Informationen zu diesem Dienst findest du in der Referenzdokumentation für die YouTube Analytics API. Wie alle erweiterten Dienste in Apps Script verwendet der YouTube Analytics-Dienst dieselben Objekte, Methoden und Parameter wie die öffentliche API. Weitere Informationen finden Sie unter Methodensignaturen bestimmen.

Beispielcode

Im Beispielcode unten wird die Version 2 der YouTube Analytics API sowie die Version 3 der YouTube Data API verwendet. Auf diese APIs können Sie über den YouTube-Dienst in Apps Script zugreifen.

Informationen zum Melden von Problemen und zu weiteren Supportoptionen findest du im YouTube API-Supportleitfaden.

Bericht erstellen

Mit dieser Funktion wird eine Tabelle mit den täglichen Aufrufzahlen, den Messwerten für die Wiedergabezeit und der Anzahl der neuen Abonnenten für die Videos eines Kanals erstellt.

advanced/youtubeAnalytics.gs
/**
 * Creates a spreadsheet containing daily view counts, watch-time metrics,
 * and new-subscriber counts for a channel's videos.
 */
function createReport() {
  // Retrieve info about the user's YouTube channel.
  const channels = YouTube.Channels.list('id,contentDetails', {
    mine: true
  });
  const channelId = channels.items[0].id;

  // Retrieve analytics report for the channel.
  const oneMonthInMillis = 1000 * 60 * 60 * 24 * 30;
  const today = new Date();
  const lastMonth = new Date(today.getTime() - oneMonthInMillis);

  const metrics = [
    'views',
    'estimatedMinutesWatched',
    'averageViewDuration',
    'subscribersGained'
  ];
  const result = 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;
  }
  const spreadsheet = SpreadsheetApp.create('YouTube Analytics Report');
  const sheet = spreadsheet.getActiveSheet();

  // Append the headers.
  const headers = result.columnHeaders.map((columnHeader)=> {
    return formatColumnName(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.
 */
function formatDateString(date) {
  return Utilities.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".
 */
function formatColumnName(columnName) {
  let name = columnName.replace(/([a-z])([A-Z])/g, '$1 $2');
  name = name.slice(0, 1).toUpperCase() + name.slice(1);
  return name;
}