YouTube Analytics-Dienst

Mit dem YouTube Analytics-Dienst kannst du die YouTube Analytics API in Apps Script verwenden. Mit dieser API können Nutzer Aufrufstatistiken, Messwerte zur Beliebtheit und demografische Daten für YouTube-Videos und -Kanäle abrufen.

Referenz

Ausführliche Informationen zu diesem Dienst finden Sie in der Referenzdokumentation zur YouTube Analytics API. Wie alle erweiterten Dienste in Apps Script verwendet auch der YouTube Analytics-Dienst dieselben Objekte, Methoden und Parameter wie die öffentliche API. Weitere Informationen finden Sie unter So werden Methodensignaturen ermittelt.

Beispielcode

Für den folgenden Beispielcode werden Version 2 der YouTube Analytics API sowie Version 3 der YouTube Data API verwendet, auf die du über den YouTube-Dienst in Apps Script zugreifen kannst.

Im YouTube API-Supportleitfaden erfährst du, wie du Probleme melden und weiteren Support kontaktieren kannst.

Bericht erstellen

Diese Funktion erstellt eine Tabelle mit den täglichen Aufrufzahlen, Messwerten zur Wiedergabezeit und der Anzahl neuer Abonnenten für die Videos eines Kanals.

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;
}