خدمة "إحصاءات YouTube"

تتيح لك خدمة "إحصاءات YouTube" استخدام YouTube Analytics API في "برمجة التطبيقات". تتيح واجهة برمجة التطبيقات هذه للمستخدمين إمكانية استرداد إحصاءات المشاهدة ومقاييس الشهرة والمعلومات الديموغرافية لمقاطع فيديو وقنوات YouTube.

مَراجع

للاطّلاع على معلومات مفصّلة حول هذه الخدمة، يمكنك مراجعة المستندات المرجعية حول واجهة برمجة تطبيقات YouTube Analytics. مثل جميع الخدمات المتقدمة في لغة برمجة التطبيقات، تستخدم خدمة "إحصاءات YouTube" العناصر والطرق والمعلَمات نفسها المستخدمة في واجهة برمجة التطبيقات العامة. لمزيد من المعلومات، يُرجى الاطّلاع على كيفية تحديد توقيعات الطرق.

نموذج التعليمات البرمجية

يستخدم نموذج الرمز البرمجي أدناه الإصدار 2 من YouTube Analytics API بالإضافة إلى الإصدار 3 من YouTube Data API التي يمكنك الوصول إليها من خلال خدمة YouTube في لغة "برمجة تطبيقات Google".

للإبلاغ عن المشاكل والعثور على خدمات دعم أخرى، يُرجى مراجعة دليل دعم واجهة برمجة تطبيقات YouTube.

إنشاء تقرير

تنشئ هذه الدالة جدول بيانات يحتوي على عدد المشاهدات اليومية ومقاييس وقت المشاهدة وعدد المشتركين الجدد لمقاطع الفيديو في القناة.

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