YouTube Analytics-Dienst

Aufrufstatistiken, Beliebtheitsmesswerte und demografische Informationen für YouTube-Videos und ‑Kanäle.

Mit dem YouTube Analytics-Dienst können Sie die YouTube Analytics API in Google Apps Script verwenden. Mit dieser API können Nutzer Statistiken zu Aufrufen, Beliebtheitsmesswerte und demografische Informationen für YouTube-Videos und ‑Kanäle abrufen.

Dies ist ein erweiterter Dienst, der vor der Verwendung aktiviert werden muss.

Referenz

Ausführliche Informationen zu diesem Dienst finden Sie in der Referenzdokumentation zur 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 ermitteln.

Beispielcode

Im folgenden Beispielcode werden Version 2 der YouTube Analytics API sowie Version 3 der YouTube Data API verwendet, auf die Sie über den YouTube-Dienst in Apps Script zugreifen können.

Informationen zum Melden von Problemen und zu Supportoptionen finden Sie im YouTube API-Supportleitfaden.

Bericht erstellen

Mit dieser Funktion wird eine Tabelle mit den täglichen Aufrufzahlen, Messwerten zur 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;
}