YouTube বিশ্লেষণ পরিষেবা

ইউটিউব ভিডিও এবং চ্যানেলগুলির দেখার পরিসংখ্যান, জনপ্রিয়তার মেট্রিক এবং জনসংখ্যাতাত্ত্বিক তথ্য।

ইউটিউব অ্যানালিটিক্স পরিষেবা আপনাকে গুগল অ্যাপস স্ক্রিপ্টে ইউটিউব অ্যানালিটিক্স এপিআই ব্যবহার করার সুযোগ দেয়। এই এপিআই ব্যবহারকারীদের ইউটিউব ভিডিও এবং চ্যানেলের ভিউয়িং পরিসংখ্যান, জনপ্রিয়তার মেট্রিক এবং জনসংখ্যাতাত্ত্বিক তথ্য সংগ্রহ করার ক্ষমতা দেয়।

এটি একটি উন্নত পরিষেবা যা ব্যবহারের আগে সক্রিয় করতে হবে।

রেফারেন্স

এই পরিষেবা সম্পর্কে বিস্তারিত তথ্যের জন্য, ইউটিউব অ্যানালিটিক্স এপিআই (YouTube Analytics API)-এর রেফারেন্স ডকুমেন্টেশন দেখুন। অ্যাপস স্ক্রিপ্ট (Apps Script)-এর অন্যান্য সকল অ্যাডভান্সড সার্ভিসের মতো, ইউটিউব অ্যানালিটিক্স পরিষেবাটিও পাবলিক এপিআই (public API)-এর মতোই একই অবজেক্ট, মেথড এবং প্যারামিটার ব্যবহার করে। আরও তথ্যের জন্য, ‘মেথড সিগনেচার কীভাবে নির্ধারণ করা হয়’ (How method signatures are determined ) দেখুন।

নমুনা কোড

নিম্নলিখিত নমুনা কোডটি ইউটিউব অ্যানালিটিক্স এপিআই-এর সংস্করণ ২ এবং ইউটিউব ডেটা এপিআই-এর সংস্করণ ৩ ব্যবহার করে, যেগুলো আপনি অ্যাপস স্ক্রিপ্টে ইউটিউব পরিষেবার মাধ্যমে অ্যাক্সেস করতে পারেন।

সমস্যা জানাতে এবং অন্যান্য সহায়তা পেতে, ইউটিউব এপিআই সাপোর্ট গাইড দেখুন।

রিপোর্ট তৈরি করুন

এই ফাংশনটি একটি চ্যানেলের ভিডিওগুলির দৈনিক ভিউ সংখ্যা, ওয়াচ-টাইম মেট্রিক্স এবং নতুন সাবস্ক্রাইবারের সংখ্যা সম্বলিত একটি স্প্রেডশিট তৈরি করে।

অ্যাডভান্সড/ইউটিউবঅ্যানালিটিক্স.জিএস
/**
 * 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;
}