سرویس تجزیه و تحلیل YouTube

سرویس YouTube Analytics به شما امکان می‌دهد از API YouTube Analytics در Apps Script استفاده کنید. این API به کاربران این امکان را می‌دهد که آمار بازدید، معیارهای محبوبیت و اطلاعات جمعیت‌شناختی ویدیوها و کانال‌های YouTube را بازیابی کنند.

مرجع

برای اطلاعات دقیق در مورد این سرویس، به مستندات مرجع API یوتیوب آنالیتیکس مراجعه کنید. مانند تمام سرویس‌های پیشرفته در Apps Script، سرویس یوتیوب آنالیتیکس از همان اشیاء، روش‌ها و پارامترهای API عمومی استفاده می‌کند. برای اطلاعات بیشتر، به بخش «نحوه تعیین امضاهای روش» مراجعه کنید.

کد نمونه

نمونه کد زیر از نسخه ۲ رابط برنامه‌نویسی کاربردی یوتیوب آنالیتیکس و همچنین نسخه ۳ رابط برنامه‌نویسی کاربردی یوتیوب دیتا استفاده می‌کند که می‌توانید از طریق سرویس یوتیوب در Apps Script به آنها دسترسی داشته باشید.

برای گزارش مشکلات و یافتن پشتیبانی‌های دیگر، به راهنمای پشتیبانی YouTube API مراجعه کنید.

ایجاد گزارش

این تابع یک صفحه گسترده ایجاد می‌کند که شامل تعداد بازدیدهای روزانه، معیارهای زمان تماشا و تعداد مشترکین جدید برای ویدیوهای یک کانال است.

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