1

Ich arbeite an einem Analysemodul, das Daten von Google Analytics, Facebook und Twitter Analytics API bezieht.Warum stimmen Analytics-API-Daten nicht mit dem Google Analytics-Dashboard überein?

Verwenden von Analytics Reporting Api V4 zum Abrufen der Daten aus Google Analytics. Total number of sessions Wert passt nicht zu dem, was ich auf dem Dashboard sehe. Ich verwende Metrik ga:sessions, um die Anzahl der Sitzungen zu ziehen.

In einigen Fällen stimmt die Anzahl der Sitzungen, die aus der Berichterstattung der API stammen, mit Dashboard überein. Aber nicht die ganze Zeit. Ich finde es schwierig, es ohne eine angemessene Erklärung von der Qualitätssicherung bestätigen zu lassen.

Ich überprüfte Dimensionsfilter und Berichtsabfrage mehrmals, konnte aber nichts falsches finden.

Die samplingLevel zu meiner Berichtanforderung hinzugefügt, aber immer noch das gleiche Ergebnis sehen.

ReportRequest totalNumberOfSessions = new ReportRequest().setViewId(VIEW_ID) 
       .setDateRanges(Arrays.asList(lifetime)) 
       .setDimensions(Arrays.asList(custom)) 
       .setDimensionFilterClauses(Arrays.asList(clause)) 
       .setMetrics(Arrays.asList(sessions)) 
       .setSamplingLevel("LARGE"); 
+0

Der häufigste Grund ist die Stichprobe der Daten. Können Sie bestätigen, ob Ihre Abfrage Stichprobendaten enthält? –

+0

@PhilipWalton Was meinen Sie mit Stichproben? Wenn Sie möchten, kann ich die Frage mit dem Code aktualisieren. –

+0

https://developers.google.com/analytics/devguides/reporting/core/v4/basics#sampling –

Antwort

0

Nach https://developers.google.com/analytics/devguides/reporting/core/v4/samples verwenden setSegments statt setDimensionFilterClauses. So:

String path = "<your_path>"; 
    SegmentDimensionFilter exactPathDimensionFilter = new SegmentDimensionFilter() 
      .setDimensionName("ga:pagePath").setOperator("EXACT") 
      .setExpressions(Arrays.asList(path)); 
    SegmentFilterClause exactPathSegmentFilterClause = new SegmentFilterClause() 
      .setDimensionFilter(exactPathDimensionFilter); 
    OrFiltersForSegment orFiltersForSegment = new OrFiltersForSegment() 
      .setSegmentFilterClauses(Arrays.asList(exactPathSegmentFilterClause)); 
    SimpleSegment simpleSegment = new SimpleSegment() 
      .setOrFiltersForSegment(Arrays.asList(orFiltersForSegment)); 
    SegmentFilter segmentFilter = new SegmentFilter() 
      .setSimpleSegment(simpleSegment); 
    SegmentDefinition segmentDefinition = new SegmentDefinition() 
      .setSegmentFilters(Arrays.asList(segmentFilter)); 
    DynamicSegment dynamicSegment = new DynamicSegment().setSessionSegment(
      segmentDefinition).setName("Path pageviews"); 
    Segment segment = new Segment().setDynamicSegment(dynamicSegment); 

    ReportRequest request = new ReportRequest().setViewId(VIEW_ID) 
      .setDateRanges(Arrays.asList(dateRange)) 
      .setMetrics(Arrays.asList(metric)) 
      .setDimensions(Arrays.asList(new Dimension().setName("ga:segment"))) 
      .setSegments(Arrays.asList(segment)); 

diesem Beispiel wird ein Pfad-Filter. Sie sollten es entsprechend Ihrer "Klausel" Variable ändern.

Verwandte Themen