如何迭代Google Analytics配置文件ID?

时间:2015-12-22 15:58:48

标签: javascript google-analytics google-sheets

我已经设置了我的Google Analytics分析API,以便在Google工作表中生成报告,并从给定的分析视图(配置文件)ID中提供数据。我知道你只能从一个ID运行报告,所以我想用JS来遍历所有35个ID。我知道足够的JS循环分组,但我怎么称呼ID?我将使用谷歌应用程序脚本,因为它已经集成。有任何想法吗?提前致谢!

*编辑 所以这里有一点细节。我有一个谷歌分析帐户,可以监控大约35个网站(我列出并拥有权限的所有唯一个人资料ID)。这些统计数据已经手动添加到Google工作表文档中,直到此时为止。我想从每个配置文件ID中获取数据并填充现有的电子表格,而不必运行35个单独的报告,这将创建35个单独的工作表。我已经能够逐一提取报告;编写脚本来遍历所有配置文件并填充现有的电子表格(我迄今为止所有的努力都只是在现有工作表上创建了新标签)是我正在努力解决的问题。谢谢你的耐心和时间!节日快乐!

1 个答案:

答案 0 :(得分:0)

以下是从Google电子表格中复制/粘贴我使用了一些功能,一个列出了用户通过身份验证的所有帐户,一个返回帐户中的所有属性(将帐户ID作为参数传入)和一个列出的帐户给定帐户的属性中的所有视图(将属性和帐户ID作为参数传递)。编写函数以返回JSON对象,其中每个元素包含name和(internal)id的键/值对。只需使用以前函数的输出作为后续函数的参数。

请注意,由于历史原因,返回视图信息的函数名为Analytics.Management.Profiles.list,“个人资料”是在Universal Analytics之前调用的视图。

/* Generates a list of accounts that are accessible to the currently logged in user */
function listAccounts() {
    var accounts = Analytics.Management.Accounts.list();
    var items = accounts.getItems();
    var item;
    var accountList = [];
    if (items) {
        for (i = 0, cnt = items.length; i < cnt; i++) {
            item = items[i];
            accountList.push({
                "name": item.name,
                "id": item.id
            });
        }
    }
    return accountList;
}

/* .... and all the properties in those accounts .. */
function listProperties(accountId) {

    var webProperties = Analytics.Management.Webproperties.list(accountId);
    var items = webProperties.getItems();
    var item;
    var propertyList = [];
    if (items) {
        for (i = 0, cnt = items.length; i < cnt; i++) {
            item = items[i];
            propertyList.push({
                "name": item.name,
                "id": item.id
            });
        }
    }
    return propertyList;
}


/* And all data view in the selected property */
function listViews(accountId, propertyId) {
    var views = Analytics.Management.Profiles.list(accountId, propertyId);
    var items = views.getItems();
    var item;
    var viewList = [];
    if (items) {
        for (i = 0, cnt = items.length; i < cnt; i++) {
            item = items[i];
            viewList.push({
                "name": item.name,
                "id": item.id
            });
        }
    }
    return viewList;
}