YouTube Analytics Hizmeti

YouTube videoları ve kanallarıyla ilgili görüntüleme istatistikleri, popülerlik metrikleri ve demografik bilgiler.

YouTube Analytics hizmeti, Google Apps Script'te YouTube Analytics API'yi kullanmanıza olanak tanır. Bu API, kullanıcılara YouTube videoları ve kanallarıyla ilgili görüntüleme istatistiklerini, popülerlik metriklerini ve demografik bilgileri alma olanağı tanır.

Bu, kullanımdan önce etkinleştirilmesi gereken gelişmiş bir hizmettir.

Referans

Bu hizmetle ilgili ayrıntılı bilgi için YouTube Analytics API'nin referans belgelerine bakın. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi YouTube Analytics hizmeti de genel API ile aynı nesneleri, yöntemleri ve parametreleri kullanır. Daha fazla bilgi için Yöntem imzaları nasıl belirlenir? başlıklı makaleyi inceleyin.

Örnek kod

Aşağıdaki örnek kodda, Apps Komut Dosyası'ndaki YouTube hizmeti üzerinden erişebileceğiniz YouTube Analytics API'nin 2. sürümü ve YouTube Data API'nin 3. sürümü kullanılmaktadır.

Sorunları bildirmek ve diğer destek seçeneklerini öğrenmek için YouTube API destek rehberine bakın.

Rapor oluştur

Bu işlev, bir kanalın videolarının günlük izlenme sayılarını, izlenme süresi metriklerini ve yeni abone sayılarını içeren bir elektronik tablo oluşturur.

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