1

我使用Google Analytics Reporting Api V3Google APIs Python client library來提取數據,我希望我的結果是給定的索引格式,或者是所有的數據都是小塊。GoogleAnalytics API錯誤startindex和maxresults

我試圖用指標和結果查詢它是否顯示錯誤

def get_report(analytics, view_id, value): #, index): 
    # Use the Analytics Service Object to query the Analytics Reporting API V4. 
    return analytics.reports().batchGet(
     body={ 
      'reportRequests': [ 
       { 
        'viewId': view_id, 
        # 'pageSize': 5, 
        'startIndex': 5, 
        'maxResults': 15, 
        'dimensions': [{'name': 'ga:sessionDurationBucket'}, {'name': 'ga:eventCategory'}, 
            {'name': 'ga:eventLabel'}, {'name': 'ga:country'}, {'name': 'ga:deviceCategory'}, {'name': 'ga:browser'}], 
        'dateRanges': [{'startDate': 'yesterday', 'endDate': 'yesterday'}], 
        'metrics': [{'expression': 'ga:totalEvents'}], 
        'dimensionFilterClauses': [{"filters": [{"dimensionName": "ga:eventCategory", "operator": "EXACT", "expressions": [value]}]}] 

       }] 
     } 
    ).execute() 

響應

<HttpError 400 when requesting https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json returned "Invalid JSON payload received. Unknown name "start_index" at 'report_requests[0]': Cannot find field. 
Invalid JSON payload received. Unknown name "max_results" at 'report_requests[0]': Cannot find field."> 
+0

錯誤消息很明顯,服務器中沒有用於請求的'startIndex'字段。 – Arman

+0

@Arman所以我該如何實現**索引**和** MaxResults **。 – John

回答

1

'的startIndex':5,
'的maxResults':15,

兩個參數是零件在Core Reporting API V3的他們不是Reporting API V4的一部分,你應該使用

pageToken串的延續令牌來獲得結果的下一個頁面。將此添加到請求將返回pageToken後面的行。 pageToken應該是對reports.batchGet請求的響應中的nextPageToken參數中返回的值。

pageSize number頁面大小用於分頁並指定返回的最大行數。頁面大小應該大於等於0.查詢返回缺省值1,000行。無論您要求多少,Analytics Core Reporting API都會爲每個請求返回最多10,000行。如果沒有像您期望的那樣多的維度段,它也可以返回比請求更少的行。例如,ga:country的可能值少於300個,因此僅在按國家/地區進行分段時,即使將pageSize設置爲更高的值,也不能超過300行。

更新:

要實現分頁,你應該檢查你response從服務器獲取包含nextPageToken這個,如果有更多的結果。

nextPageToken字符串頁面令牌檢索列表中的下一頁結果。

要獲得下一組結果,您應該接受您的原始請求,並用您從響應中收到的nextPageToken替換其中的pageToken。如果您要發送多個報告,請務必嘗試將nextPageToken與批次中的正確報告進行匹配。

注意:此時沒有辦法在批處理中標記報告。我向團隊添加了一項功能請求,以添加此功能。

+0

@達爾姆我也使用過這個,但我只得到15響應沒有鏈接去下一個地方。 – John

+0

如果有其他數據,您應該獲得nextPageToken。 – DaImTo

+0

@達爾姆我越來越簡單字典沒有任何關鍵喜歡得到下一個數據 – John