api - Google 表格中的问题集成 Adsense
问题描述
我可以使用脚本编辑器在现有工作表中添加脚本并提供对 AdSense API 的访问权限,如官方文档中所述:AdSense Management API。在脚本编辑器中启用 AdSense API 后,第一次执行generateReport()函数时,它会请求提供权限,如果获得许可,它会创建一个包含 AdSense 报告的新工作表。
这是代码,如果一切正常,函数将返回一个测试编号(在本例中为 55):
/**
* Returns a test number.
*
* @return {Number} a test number.
* @customfunction
*/
function generateReport() {
var adClientId="XXXXXXXXXX"
// Prepare report.
var today = new Date();
var oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);
var timezone = Session.getTimeZone();
var startDate = Utilities.formatDate(oneWeekAgo, timezone, 'yyyy-MM-dd');
var endDate = Utilities.formatDate(today, timezone, 'yyyy-MM-dd');
var report = AdSense.Reports.generate(startDate, startDate, {
// Specify the desired ad client using a filter.
filter: ['AD_CLIENT_ID==' + escapeFilterParameter(adClientId)],
metric: ['PAGE_VIEWS', 'AD_REQUESTS', 'AD_REQUESTS_COVERAGE', 'CLICKS',
'AD_REQUESTS_CTR', 'COST_PER_CLICK', 'AD_REQUESTS_RPM',
'EARNINGS'],
dimension: ['DATE'],
// Sort by ascending date.
sort: ['+DATE']
});
if (report.rows) {
var spreadsheet = SpreadsheetApp.create('AdSense Report');
var sheet = spreadsheet.getActiveSheet();
// Append the headers.
var headers = report.headers.map(function(header) {
return header.name;
});
sheet.appendRow(headers);
// Append the results.
sheet.getRange(2, 1, report.rows.length, headers.length)
.setValues(report.rows);
Logger.log('Report spreadsheet created: %s',
spreadsheet.getUrl());
return 55;
} else {
Logger.log('No rows returned.');
}
}
但是,如果我尝试在现有工作表而不是脚本编辑器中执行相同的功能,则该功能将失败,报告调用generateReport()并在 AdSense 中访问报告需要登录。要访问工作表中的函数,请双击一个单元格并使用=generateReport()调用该函数,但登录问题导致执行失败。
我在工作表中找不到任何地方来提供对 AdSense API 的访问,因为它是在脚本编辑器上创建的,那么如何授予权限?
解决方案
推荐阅读
- php - 使用 CSRF 和 Captha 在 Symfony 中测试 Ajax 调用
- unit-testing - 使用 Jest 进行 vue.js 单元测试:我应该模拟 HTLL5 音频元素吗?
- android - 如何让我的应用程序在随机活动中启动?
- reactjs - React,使用 GitHub api 展示数据
- node.js - npm install 命令后 Node_modules 文件夹为空
- python - 将 python 连接到 Sybase IQ
- sql-server - 在 mac 上连接到 nodejs SQL Server
- reactjs - React Redux - 获取 Redux 状态的值并更新本地状态
- jquery - 我希望搜索结果仅在它匹配整个单词而不是它的一部分时才返回(jquery 搜索)
- c++ - 如何使用字符串作为整数的名称?C++