2015-12-22 54 views
0

我已經設置了我的Google Analytics(分析)API,以便在Google工作表中生成報告,並從給定的分析視圖(配置文件)ID向其提供數據。我知道你只能從一個ID運行一個報告,所以我想用JS遍歷它們中的所有35個。我知道足夠的JS循環遍歷一個分組,但是我怎麼稱呼這個ID呢?我將使用谷歌應用腳​​本,因爲它已經被集成。有任何想法嗎?提前致謝!如何迭代Google Analytics配置文件ID?

*編輯 所以這裏有一些更詳細的信息。我有一個谷歌分析帳戶,監控大約35個網站(我已列出並有權限的所有唯一配置文件ID)。這些統計數據已被手動添加到谷歌表格文件直到這一點。我想從這些配置文件ID中獲取數據,並填充現有的電子表格,而無需運行35個單獨的報告,這將創建35個單獨的工作表。我已經能夠逐一提交報告;編寫腳本遍歷所有配置文件並填充現有的電子表格(迄今爲止我所做的所有努力都在現有工作表上創建了新的選項卡)就是我正在琢磨的。感謝您的耐心和時間!節日快樂!

+0

不太清楚你在問什麼 - 如果你的視圖ID是固定的,你可以簡單地創建一個數組並迭代它。作爲一種替代方案,您可以創建一個小部件,使您可以從已驗證的帳戶/屬性中進行選擇,也可以在兩者之間做一些事情(花費的努力)。你能更具體一點你如何使它工作? –

+0

它們已修復。我didint知道如果我不得不手動創建一個數組或如果分析API將它們傳遞給我。仍然試圖找出這一切,我是新的工作與API的。我會編輯我原來的問題,試圖使其更清楚。謝謝! – Trey

回答

0

這裏是從谷歌電子表格複製/粘貼我使用一些功能,其中列出所有帳戶的用戶進行身份驗證,一個返回帳戶中的所有屬性(傳入帳戶ID作爲參數)和一個列出給定帳戶屬性中的所有視圖(傳入屬性和帳戶ID作爲參數)。函數被寫入以返回JSON對象,其中每個元素包含名稱和(內部)ID的鍵/值對。只需使用先前功能的輸出作爲後續功能的參數。

請注意,由於歷史原因,返回視圖信息的函數名爲Analytics.Management.Profiles.list,「profiles」是在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; 
} 
+0

謝謝!我會稍微修改一下,看看它是如何工作的! – Trey

相關問題