Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
Le service Reports du SDK Admin vous permet d'utiliser l'API Reports du SDK Admin dans Apps Script. Cette API permet aux administrateurs de domaines Google Workspace (y compris les revendeurs) de créer des rapports d'utilisation personnalisés pour leur domaine.
Référence
Pour en savoir plus sur ce service, consultez la documentation de référence de l'API Reports du SDK Admin. Comme tous les services avancés d'Apps Script, le service Reports de l'Admin SDK utilise les mêmes objets, méthodes et paramètres que l'API publique. Pour en savoir plus, consultez Déterminer les signatures de méthode.
L'exemple de code ci-dessous utilise la version 1 de l'API.
Générer un rapport sur l'activité de connexion
Cet exemple génère un rapport sur l'activité de connexion de la semaine dernière sous forme de feuille de calcul. Le rapport inclut l'heure, l'utilisateur et le résultat de la connexion.
/** * Generates a login activity report for the last week as a spreadsheet. The * report includes the time, user, and login result. * @see https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/list */functiongenerateLoginActivityReport(){constnow=newDate();constoneWeekAgo=newDate(now.getTime()-7*24*60*60*1000);conststartTime=oneWeekAgo.toISOString();constendTime=now.toISOString();constrows=[];letpageToken;letpage;do{page=AdminReports.Activities.list('all','login',{startTime:startTime,endTime:endTime,maxResults:500,pageToken:pageToken});constitems=page.items;if(items){for(constitemofitems){constrow=[newDate(item.id.time),item.actor.email,item.events[0].name];rows.push(row);}}pageToken=page.nextPageToken;}while(pageToken);if(rows.length===0){console.log('No results returned.');return;}constspreadsheet=SpreadsheetApp.create('Google Workspace Login Report');constsheet=spreadsheet.getActiveSheet();// Append the headers.constheaders=['Time','User','Login Result'];sheet.appendRow(headers);// Append the results.sheet.getRange(2,1,rows.length,headers.length).setValues(rows);console.log('Report spreadsheet created: %s',spreadsheet.getUrl());}
Générer un rapport sur l'utilisation par les utilisateurs
Cet exemple génère un rapport sur l'utilisation par les utilisateurs pour le même jour de la semaine dernière, sous forme de feuille de calcul. Le rapport inclut la date, l'utilisateur, la dernière heure de connexion, le nombre d'e-mails reçus et le nombre de documents possédés.
/** * Generates a user usage report for this day last week as a spreadsheet. The * report includes the date, user, last login time, number of emails received, * and number of drive files created. * @see https://developers.google.com/admin-sdk/reports/reference/rest/v1/userUsageReport/get */functiongenerateUserUsageReport(){consttoday=newDate();constoneWeekAgo=newDate(today.getTime()-7*24*60*60*1000);consttimezone=Session.getScriptTimeZone();constdate=Utilities.formatDate(oneWeekAgo,timezone,'yyyy-MM-dd');constparameters=['accounts:last_login_time','gmail:num_emails_received','drive:num_items_created'];constrows=[];letpageToken;letpage;do{page=AdminReports.UserUsageReport.get('all',date,{parameters:parameters.join(','),maxResults:500,pageToken:pageToken});if(page.warnings){for(constwarningofpage.warnings){console.log(warning.message);}}constreports=page.usageReports;if(reports){for(constreportofreports){constparameterValues=getParameterValues(report.parameters);constrow=[report.date,report.entity.userEmail,parameterValues['accounts:last_login_time'],parameterValues['gmail:num_emails_received'],parameterValues['drive:num_items_created']];rows.push(row);}}pageToken=page.nextPageToken;}while(pageToken);if(rows.length===0){console.log('No results returned.');return;}constspreadsheet=SpreadsheetApp.create('Google Workspace User Usage Report');constsheet=spreadsheet.getActiveSheet();// Append the headers.constheaders=['Date','User','Last Login','Num Emails Received','Num Drive Files Created'];sheet.appendRow(headers);// Append the results.sheet.getRange(2,1,rows.length,headers.length).setValues(rows);console.log('Report spreadsheet created: %s',spreadsheet.getUrl());}/** * Gets a map of parameter names to values from an array of parameter objects. * @param {Array} parameters An array of parameter objects. * @return {Object} A map from parameter names to their values. */functiongetParameterValues(parameters){returnparameters.reduce((result,parameter)=>{constname=parameter.name;letvalue;if(parameter.intValue!==undefined){value=parameter.intValue;}elseif(parameter.stringValue!==undefined){value=parameter.stringValue;}elseif(parameter.datetimeValue!==undefined){value=newDate(parameter.datetimeValue);}elseif(parameter.boolValue!==undefined){value=parameter.boolValue;}result[name]=value;returnresult;},{});}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/04 (UTC)."],[[["\u003cp\u003eThe Admin SDK Reports service enables Google Workspace administrators to create custom usage reports within Apps Script, using the Admin SDK's Reports API.\u003c/p\u003e\n"],["\u003cp\u003eThis advanced service requires prior enabling and mirrors the functionalities of the public API, using the same objects, methods, and parameters.\u003c/p\u003e\n"],["\u003cp\u003eSample code is provided demonstrating how to generate login activity reports (including time, user, and login result) and user usage reports (including date, user, last login, emails received, and docs created) for a specified timeframe, outputting the data into a spreadsheet.\u003c/p\u003e\n"],["\u003cp\u003eComprehensive reference documentation and a support guide for the Admin SDK Reports API are available for further information and assistance.\u003c/p\u003e\n"]]],[],null,["# Admin SDK Reports Service\n\nThe Admin SDK Reports service allows you to use the Admin SDK's\n[Reports API](/admin-sdk/reports/v1/get-start/overview) in\nApps Script. This API gives administrators\nof Google Workspace domains (including resellers) the\nability to create custom usage reports for their domain.\n| **Note:** This is an advanced service that must be [enabled before use](/apps-script/guides/services/advanced).\n\nReference\n---------\n\nFor detailed information on this service, see the\n[reference documentation](/admin-sdk/reports/v1/reference) for the Admin SDK\nReports API. Like all advanced services in Apps Script, the Admin SDK Reports\nservice uses the same objects, methods, and parameters as the public API. For more information, see [How method signatures are determined](/apps-script/guides/services/advanced#how_method_signatures_are_determined).\n\nTo report issues and find other support, see the\n[Admin SDK Reports support guide](/admin-sdk/reports/support).\n\nSample code\n-----------\n\nThe sample code below uses [version 1](/admin-sdk/groups-migration/v1/reference)\nof the API.\n\n### Generate login activity report\n\nThis sample generates a login activity report for the last week as a\nspreadsheet. The report includes the time, user, and login result. \nadvanced/adminSDK.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/adminSDK.gs) \n\n```javascript\n/**\n * Generates a login activity report for the last week as a spreadsheet. The\n * report includes the time, user, and login result.\n * @see https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/list\n */\nfunction generateLoginActivityReport() {\n const now = new Date();\n const oneWeekAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);\n const startTime = oneWeekAgo.toISOString();\n const endTime = now.toISOString();\n\n const rows = [];\n let pageToken;\n let page;\n do {\n page = AdminReports.Activities.list('all', 'login', {\n startTime: startTime,\n endTime: endTime,\n maxResults: 500,\n pageToken: pageToken\n });\n const items = page.items;\n if (items) {\n for (const item of items) {\n const row = [\n new Date(item.id.time),\n item.actor.email,\n item.events[0].name\n ];\n rows.push(row);\n }\n }\n pageToken = page.nextPageToken;\n } while (pageToken);\n\n if (rows.length === 0) {\n console.log('No results returned.');\n return;\n }\n const spreadsheet = SpreadsheetApp.create('Google Workspace Login Report');\n const sheet = spreadsheet.getActiveSheet();\n\n // Append the headers.\n const headers = ['Time', 'User', 'Login Result'];\n sheet.appendRow(headers);\n\n // Append the results.\n sheet.getRange(2, 1, rows.length, headers.length).setValues(rows);\n\n console.log('Report spreadsheet created: %s', spreadsheet.getUrl());\n}\n```\n\n### Generate user usage report\n\nThis sample generates a user usage report for this day last week as a\nspreadsheet. The report includes the date, user, last login time, number of\nemails received, and number of docs owned. \nadvanced/adminSDK.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/adminSDK.gs) \n\n```javascript\n/**\n * Generates a user usage report for this day last week as a spreadsheet. The\n * report includes the date, user, last login time, number of emails received,\n * and number of drive files created.\n * @see https://developers.google.com/admin-sdk/reports/reference/rest/v1/userUsageReport/get\n */\nfunction generateUserUsageReport() {\n const today = new Date();\n const oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);\n const timezone = Session.getScriptTimeZone();\n const date = Utilities.formatDate(oneWeekAgo, timezone, 'yyyy-MM-dd');\n\n const parameters = [\n 'accounts:last_login_time',\n 'gmail:num_emails_received',\n 'drive:num_items_created'\n ];\n const rows = [];\n let pageToken;\n let page;\n do {\n page = AdminReports.UserUsageReport.get('all', date, {\n parameters: parameters.join(','),\n maxResults: 500,\n pageToken: pageToken\n });\n if (page.warnings) {\n for (const warning of page.warnings) {\n console.log(warning.message);\n }\n }\n const reports = page.usageReports;\n if (reports) {\n for (const report of reports) {\n const parameterValues = getParameterValues(report.parameters);\n const row = [\n report.date,\n report.entity.userEmail,\n parameterValues['accounts:last_login_time'],\n parameterValues['gmail:num_emails_received'],\n parameterValues['drive:num_items_created']\n ];\n rows.push(row);\n }\n }\n pageToken = page.nextPageToken;\n } while (pageToken);\n\n if (rows.length === 0) {\n console.log('No results returned.');\n return;\n }\n const spreadsheet = SpreadsheetApp.create('Google Workspace User Usage Report');\n const sheet = spreadsheet.getActiveSheet();\n\n // Append the headers.\n const headers = ['Date', 'User', 'Last Login', 'Num Emails Received',\n 'Num Drive Files Created'];\n sheet.appendRow(headers);\n\n // Append the results.\n sheet.getRange(2, 1, rows.length, headers.length).setValues(rows);\n\n console.log('Report spreadsheet created: %s', spreadsheet.getUrl());\n}\n\n/**\n * Gets a map of parameter names to values from an array of parameter objects.\n * @param {Array} parameters An array of parameter objects.\n * @return {Object} A map from parameter names to their values.\n */\nfunction getParameterValues(parameters) {\n return parameters.reduce((result, parameter) =\u003e {\n const name = parameter.name;\n let value;\n if (parameter.intValue !== undefined) {\n value = parameter.intValue;\n } else if (parameter.stringValue !== undefined) {\n value = parameter.stringValue;\n } else if (parameter.datetimeValue !== undefined) {\n value = new Date(parameter.datetimeValue);\n } else if (parameter.boolValue !== undefined) {\n value = parameter.boolValue;\n }\n result[name] = value;\n return result;\n }, {});\n}\n```"]]