سرویس آنالیز

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

مرجع

برای اطلاعات دقیق در مورد این سرویس، به مستندات مرجع برای API های مختلف Google Analytics مراجعه کنید:

مانند همه سرویس های پیشرفته در Apps Script، سرویس Analytics از همان اشیا، روش ها و پارامترهای API عمومی استفاده می کند. برای اطلاعات بیشتر، نحوه تعیین امضای روش را ببینید.

برای گزارش مشکلات و یافتن پشتیبانی دیگر، به صفحات پشتیبانی مربوطه مراجعه کنید:

کد نمونه

کد نمونه زیر نسخه 3 مدیریت API.

فهرست ساختار حساب

نمونه تمام حساب‌های Google Analytics، ویژگی‌های وب و نمایه‌هایی را که کاربر فعلی می‌تواند به آنها دسترسی داشته باشد، فهرست می‌کند.

advanced/analytics.gs
/**
 * Lists Analytics accounts.
 */

function listAccounts() {
 
try {
   
const accounts = Analytics.Management.Accounts.list();
   
if (!accounts.items || !accounts.items.length) {
      console
.log('No accounts found.');
     
return;
   
}

   
for (let i = 0; i < accounts.items.length; i++) {
     
const account = accounts.items[i];
      console
.log('Account: name "%s", id "%s".', account.name, account.id);

     
// List web properties in the account.
      listWebProperties
(account.id);
   
}
 
} catch (e) {
   
// TODO (Developer) - Handle exception
    console
.log('Failed with error: %s', e.error);
 
}
}

/**
 * Lists web properites for an Analytics account.
 * @param  {string} accountId The account ID.
 */

function listWebProperties(accountId) {
 
try {
   
const webProperties = Analytics.Management.Webproperties.list(accountId);
   
if (!webProperties.items || !webProperties.items.length) {
      console
.log('\tNo web properties found.');
     
return;
   
}
   
for (let i = 0; i < webProperties.items.length; i++) {
     
const webProperty = webProperties.items[i];
      console
.log('\tWeb Property: name "%s", id "%s".',
          webProperty
.name, webProperty.id);

     
// List profiles in the web property.
      listProfiles
(accountId, webProperty.id);
   
}
 
} catch (e) {
   
// TODO (Developer) - Handle exception
    console
.log('Failed with error: %s', e.error);
 
}
}

/**
 * Logs a list of Analytics accounts profiles.
 * @param  {string} accountId     The Analytics account ID
 * @param  {string} webPropertyId The web property ID
 */

function listProfiles(accountId, webPropertyId) {
 
// Note: If you experience "Quota Error: User Rate Limit Exceeded" errors
 
// due to the number of accounts or profiles you have, you may be able to
 
// avoid it by adding a Utilities.sleep(1000) statement here.
 
try {
   
const profiles = Analytics.Management.Profiles.list(accountId,
        webPropertyId
);

   
if (!profiles.items || !profiles.items.length) {
      console
.log('\t\tNo web properties found.');
     
return;
   
}
   
for (let i = 0; i < profiles.items.length; i++) {
     
const profile = profiles.items[i];
      console
.log('\t\tProfile: name "%s", id "%s".', profile.name,
          profile
.id);
   
}
 
} catch (e) {
   
// TODO (Developer) - Handle exception
    console
.log('Failed with error: %s', e.error);
 
}
}

یک گزارش اجرا کنید

نمونه گزارشی را برای بازیابی 25 کلید واژه برتر و منبع ترافیک اجرا می کند و نتایج را در یک صفحه گسترده جدید ذخیره می کند.

advanced/analytics.gs
/**
 * Runs a report of an Analytics profile ID. Creates a sheet with the report.
 * @param  {string} profileId The profile ID.
 */

function runReport(profileId) {
 
const today = new Date();
 
const oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);

 
const startDate = Utilities.formatDate(oneWeekAgo, Session.getScriptTimeZone(),
     
'yyyy-MM-dd');
 
const endDate = Utilities.formatDate(today, Session.getScriptTimeZone(),
     
'yyyy-MM-dd');

 
const tableId = 'ga:' + profileId;
 
const metric = 'ga:visits';
 
const options = {
   
'dimensions': 'ga:source,ga:keyword',
   
'sort': '-ga:visits,ga:source',
   
'filters': 'ga:medium==organic',
   
'max-results': 25
 
};
 
const report = Analytics.Data.Ga.get(tableId, startDate, endDate, metric,
      options
);

 
if (!report.rows) {
    console
.log('No rows returned.');
   
return;
 
}

 
const spreadsheet = SpreadsheetApp.create('Google Analytics Report');
 
const sheet = spreadsheet.getActiveSheet();

 
// Append the headers.
 
const headers = report.columnHeaders.map((columnHeader) => {
   
return columnHeader.name;
 
});
  sheet
.appendRow(headers);

 
// Append the results.
  sheet
.getRange(2, 1, report.rows.length, headers.length)
     
.setValues(report.rows);

  console
.log('Report spreadsheet created: %s',
      spreadsheet
.getUrl());
}