想知道是否有人有使用新的 Analytics Admin API 将 GA 帐户和属性列表导出到电子表格的经验。
我过去曾使用管理 API 来实现此目的,但这限制了我们只能使用 UA 属性,我希望也能在此处包含 GA4 属性。
我尝试过将旧脚本转换为新 API,但我什至没有成功提取帐户名。
function listGA4Accounts() {
var createss = SpreadsheetApp.create("Google Analytics Accounts");
var ssid = createss.getId();
var openss = SpreadsheetApp.openById(ssid);
var insertsheet = openss.insertSheet('Google Analytics Schema');
insertsheet.setFrozenRows(1);
insertsheet.getRange("A1:D1").setValues([['displayName', 'Account ID', 'Property Name', 'Property ID']]);
var sheet = SpreadsheetApp.openById(createss.getId()).getSheetByName("Google Analytics Schema")
var accounts = AnalyticsAdmin.Accounts.list();
if (accounts && !accounts.error) {
accounts = accounts.accounts;
// Logger.log(accounts[0]);
for (var i = 0, account; account = accounts[i]; i++) {
sheet.appendRow([accounts.accounts[i].displayName]);
}
}
}
我也一直在为此苦苦挣扎。这是我经过大量尝试和错误后得出的结论:
function listAccounts() {
try {
accounts = AnalyticsAdmin.AccountSummaries.list();
//Logger.log(accounts);
if (!accounts.accountSummaries || !accounts.accountSummaries.length) {
Logger.log('No accounts found.');
return;
}
Logger.log(accounts.accountSummaries.length + ' accounts found');
for (let i = 0; i < accounts.accountSummaries.length; i++) {
const account = accounts.accountSummaries[i];
Logger.log('** Account: name "%s", displayName "%s".', account.name, account.displayName);
if (account.propertySummaries) {
properties = AnalyticsAdmin.Properties.list({filter: 'parent:' + account.account});
if (properties.properties !== null) {
for (let j = 0 ; j < properties.properties.length ; j++) {
var propertyID = properties.properties[j].name.replace('properties/','');
Logger.log("GA4 Property: " + properties.properties[j].displayName + '(' + propertyID + ')')
}
}
} else {
var accountID = account.account.replace('accounts/','');
var webProperties = Analytics.Management.Webproperties.list(accountID);
for (var j = 0; j < webProperties.items.length; j++) {
Logger.log("UA Property: " + webProperties.items[j].name + '(' + webProperties.items[j].id + ')');
var profiles = Analytics.Management.Profiles.list(accountID, webProperties.items[j].id);
for (var k = 0; k < profiles.items.length; k++) {
Logger.log('Profile:' + profiles.items[k].name);
}
}
}
}
} catch (e) {
// TODO (Developer) - Handle exception
Logger.log('Failed with error: %s', e.error);
}
}
并不是说这是正确的方法...但它似乎确实能够提取我所有的 UA 和 GA4 属性。
如果您只需要 GA4 媒体资源,则可以省略“if (account.propertySummaries)”上的 else。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)