API での分析結果詳細の取得

Android SDK は、分析結果詳細を取得するための API を提供しています。

分析結果取得の際には、以下の情報を指定します。

  • ディメンション(グルーピングキー):どのディメンションで分割した結果を取得するか?指定を省略した場合は、デフォルトビュー(分割なし)の結果を取得します。
  • フィルター: 適用するフィルターを指定します。複数のフィルターが指定可能です。複数指定した場合は、指定内容を AND 結合したフィルターが適用されます。
  • 取得対象データのレンジ。

取得対象メトリクスの指定は、開発者ポータルに表示されたルールの ID で行います。またディメンションおよびフィルターの指定は、分析対象データを定義した際に "Column" にセットした名前で行います。

以下に、SDK 経由で分析結果を取得するサンプルコードを挙げます。

  • // Define a filter.
    Filter filter = new Filter();
    filter.addFilter("AppVersion", "9");
    
    // Define a data range.
    SimpleDate start = new SimpleDate(2012, 10, 01);
    SimpleDate end = new SimpleDate(2012, 10, 10);
    DateRange dateRange = new DateRange(start, end);
    
    // Build a query with the "UserLevel" dimension.
    ResultQuery query = ResultQuery.builderWithGroupingKey("UserLevel")
                                   .withFilter(filter)
                                   .withDateRange(dateRange)
                                   .build();
    
    try {
      // Get snapshots.
      GroupedResult result = KiiAnalytics.getResult("_Aggregation_Rule_ID_", query);
      // Check the snapshots.
      List<GroupedSnapShot> snapshots = result.getSnapShots();
    } catch (KiiAnalyticsException e) {
      // Handle the error.
    }
  • // Define a filter.
    Filter filter = new Filter();
    filter.addFilter("AppVersion", "9");
    
    // Define a data range.
    SimpleDate start = new SimpleDate(2012, 10, 01);
    SimpleDate end = new SimpleDate(2012, 10, 10);
    DateRange dateRange = new DateRange(start, end);
    
    // Build a query with the "UserLevel" dimension.
    ResultQuery query = ResultQuery.builderWithGroupingKey("UserLevel")
                                   .withFilter(filter)
                                   .withDateRange(dateRange)
                                   .build();
    
    // Get snapshots.
    KiiAnalytics.getResult("_Aggregation_Rule_ID_", query, new KiiResultCallback() {
      @Override
      public void onGetCompleted(String ruleId, ResultQuery query, AnalyticsResult result, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
        // Check the snapshots.
        GroupedResult groupedResult = (GroupedResult)result;
        List<GroupedSnapShot> snapshots = groupedResult.getSnapShots();
      }
    });

分析結果は GroupedSnapShot として返されます。各 GroupedSnapShot は、以下のプロパティにより構成されています。

  • Name:ディメンション(グルーピングキー)の名前
  • Data:取得した分析結果を保持する JSON 配列
  • PointStart:データ開始日(UNIX 時間、ミリ秒、UTC)
  • PointInterval:データポイントの間隔(ミリ秒)

GroupSnapShot の解釈方法については Javadoc を参照してください。