API Pelaporan Funnel Multisaluran - Panduan Developer

Dokumen ini menjelaskan cara menggunakan Multi-Channel Funnels Reporting API untuk mengakses Data Funnel Multisaluran.

Pengantar

Multi-Channel Funnels Reporting API menyediakan akses ke data tabel dalam laporan standar dan kustom Funnel Multisaluran. Untuk mengakses data, Anda harus membuat kueri yang menentukan: tampilan (profil), tanggal mulai dan akhir, serta dimensi dan metrik yang membentuk header kolom dalam tabel. Kueri ini dikirim ke Multi-Channel Funnels Reporting API dan Multi-Channel Funnels Reporting API menampilkan semua data dalam bentuk tabel.

Jika Anda baru mengenal API ini, baca Ringkasan Multi-Channel Funnels Reporting API untuk pengantar tujuan Multi-Channel Funnels Reporting API dan data yang disediakannya.

Sebelum Memulai

Panduan ini menggunakan library klien Java untuk mengakses Multi-Channel Funnels Reporting API. Setiap library klien menyediakan satu objek layanan Analytics untuk memanggil Multi-Channel Funnels Reporting API untuk mendapatkan data. Jika Anda tidak menggunakan library klien untuk mengakses API, baca Multi-Channel Funnels Reporting API - Panduan Referensi.

Untuk membuat objek layanan Analytics:

  1. Daftarkan aplikasi Anda di Konsol API Google.
  2. Izinkan akses ke data Google Analytics.
  3. Tulis kode untuk membuat objek layanan Analytics.

Jika Anda belum menyelesaikan langkah-langkah tersebut, hentikan dan baca Tutorial Hello Analytics API, yang akan memandu Anda melalui langkah-langkah awal pembuatan aplikasi Google Analytics API. Setelah menyelesaikan tutorial, lanjutkan membaca panduan berikut.

Misalnya, kode berikut membuat objek layanan Analytics yang diotorisasi:

Java

Analytics analytics = initializeAnalytics();

Gunakan objek layanan Analytics analytics untuk memanggil Multi-Channel Funnels Reporting API.

Ringkasan

Untuk menggunakan Multi-Channel Funnels Reporting API untuk mengambil data, tulis aplikasi ke:

  1. Mengkueri Multi-Channel Funnels Reporting API.
  2. Bekerja dengan hasil yang ditampilkan dari API.

Membuat kueri Multi-Channel Funnels Reporting API

Untuk meminta data dari Multi-Channel Funnels Reporting API:

  1. Buat objek kueri Reporting Multi-Channel Funnels API.
  2. Gunakan objek kueri untuk meminta data dari server Funnel Multisaluran.

Membuat kueri Multi-Channel Funnels Reporting API

Untuk membuat objek kueri Multi-Channel Funnels Reporting API, panggil metode ini:

analytics.data.mcf.get()    // analytics is the Analytics service object

Parameter pertama yang diberikan ke metode ini adalah ID tabel unik dalam bentuk ga:XXXX, dengan XXXX sebagai ID tampilan (profil) Analytics yang berisi data yang diminta. Gunakan objek kueri untuk menentukan parameter kueri (yaitu, setDimensions). Misalnya:

Java

Get apiQuery = analytics.data().mcf()
    .get(tableId,
        "2012-01-01",              // Start date
        "2012-03-31",              // End date
        "mcf:totalConversions")    // Metrics
    .setDimensions("mcf:sourcePath")
    .setSort("-mcf:totalConversions")
    .setMaxResults(25);

Untuk mengetahui daftar semua parameter kueri, lihat Ringkasan Parameter Kueri. Parameter metrik dan dimensi memungkinkan Anda menentukan data dari Funnel Multisaluran yang akan diambil. Untuk mengetahui daftar semua dimensi dan metrik, lihat Referensi Dimensi &Metrik.

Membuat permintaan data Multi-Channel Funnels Reporting API

Setelah membuat objek kueri, panggil metode execute pada objek untuk meminta data dari server Funnel Multisaluran. Contoh:

Java

try {
  apiQuery.execute();
  // Success. Do something cool!

} catch (GoogleJsonResponseException e) {
  // Catch API specific errors.
  handleApiError(e);

} catch (IOException e) {
  // Catch general parsing network errors.
  e.printStackTrace();
}

Jika memilih mengakses respons API mentah, panggil metode executeUnparsed() pada objek kueri:

HttpResponse response = apiQuery.executeUnparsed();

Jika kueri berhasil, kueri akan menampilkan data yang diminta. Jika terjadi error, metode execute akan menampilkan pengecualian yang berisi kode status untuk error tersebut dan deskripsi error tersebut. Aplikasi harus menangkap dan menangani pengecualian.

Bekerja dengan Hasil API

Jika kueri Multi-Channel Funnels Reporting API berhasil, kueri akan menampilkan data pelaporan dan informasi tentang data.

Data pelaporan Funnel Multisaluran

Kueri menampilkan data pelaporan berbentuk tabel berikut:

  • Data header kolom
  • Data baris

Data header kolom

Respons kueri memiliki kolom header kolom yang berisi informasi header tabel. Kolom ini merupakan daftar (atau array) objek ColumnHeaders, yang masing-masing berisi nama kolom, jenis kolom, dan jenis data kolom. Urutan kolom adalah kolom dimensi yang diikuti dengan kolom metrik dalam urutan yang sama seperti yang ditentukan dalam kueri asli. Misalnya, metode berikut akan mencetak header kolom:

Java

private static void printColumnHeaders(McfData mcfData) {
  System.out.println("Column Headers:");

  for (ColumnHeaders header : mcfData.getColumnHeaders()) {
    System.out.println("Column Name: " + header.getName());
    System.out.println("Column Type: " + header.getColumnType());
    System.out.println("Column Data Type: " + header.getDataType());
  }
}

Data baris

Data utama yang ditampilkan dari API ditampilkan sebagai List 2 dimensi dari McfData.Rows. Setiap McfData.Rows mewakili satu sel yang merupakan nilai primitif dari jenis String, atau nilai jalur konversi dari jenis McfData.Rows.ConversionPathValue. Urutan sel dalam baris sama dengan kolom dalam objek header kolom yang dijelaskan di atas.

Karena data di setiap sel ditampilkan sebagai string atau sebagai jenis urutan Funnel Multisaluran, kolom DataType di setiap objek header kolom akan sangat berguna untuk menguraikan nilai menjadi jenis yang sesuai. Lihat panduan referensi untuk semua jenis data yang memungkinkan.

Misalnya, metode berikut mencetak header dan baris tabel:

Java

private static void printDataTable(McfData mcfData) {
  System.out.println("Data Table:");
  if (mcfData.getTotalResults() > 0) {
    // Print the column names.
    List<ColumnHeaders> headers = mcfData.getColumnHeaders();
    for (ColumnHeaders header : headers) {
      System.out.print(header.getName());
    }
    System.out.println();

    // Print the rows of data.
    for (List<McfData.Rows> row : mcfData.getRows()) {
      for (int columnIndex = 0; columnIndex < row.size(); ++columnIndex) {
        ColumnHeaders header = headers.get(columnIndex);
        McfData.Rows cell = row.get(columnIndex);
        if (header.getDataType().equals("MCF_SEQUENCE")) {
          System.out.print(getStringFromMcfSequence(cell.getConversionPathValue()));
        } else {
          System.out.print(cell.getPrimitiveValue());
        }
      }
      System.out.println();
    }
  } else {
    System.out.println("No rows found");
  }
}

Contoh berikut menunjukkan cara mengurai objek jenis urutan Funnel Multisaluran dan mengonversinya menjadi string:

Java

private static String getStringFromMcfSequence(List<McfData.Rows.ConversionPathValue> path) {
  StringBuilder stringBuilder = new StringBuilder();
  for (McfData.Rows.ConversionPathValue pathElement : path) {
    if (stringBuilder.length() > 0)
      stringBuilder.append(" > ");
    stringBuilder.append(pathElement.getNodeValue());
  }
  return stringBuilder.toString();
}

Laporkan informasi

Selain data pelaporan, kueri menampilkan informasi (misalnya, ID laporan) tentang data. Misalnya, metode berikut mencetak informasi laporan:

Java

private static void printReportInfo(McfData mcfData) {
  System.out.println("Report Info:");
  System.out.println("ID:" + mcfData.getId());
  System.out.println("Self link: " + mcfData.getSelfLink());
  System.out.println("Kind: " + mcfData.getKind());
  System.out.println("Contains Sampled Data: " + mcfData.getContainsSampledData());
}

Kolom containsSampledData memberi tahu Anda apakah respons kueri telah diambil sampelnya. Karena pengambilan sampel dapat memengaruhi hasil kueri, nilai yang diambil sampelnya dari kueri (API) tidak cocok dengan nilai yang ditampilkan di antarmuka web. Lihat Pengambilan sampel untuk mengetahui detail selengkapnya.

Melihat informasi (Profil)

Respons kueri mencakup ID properti web, nama dan ID tampilan (profil), serta ID akun Analytics yang berisi tampilan (profil). Misalnya, metode berikut mencetaknya ke terminal (output standar):

Java

private static void printProfileInfo(McfData mcfData) {
  ProfileInfo profileInfo = mcfData.getProfileInfo();

  System.out.println("View (Profile) Info:");
  System.out.println("Account ID: " + profileInfo.getAccountId());
  System.out.println("Web Property ID: " + profileInfo.getWebPropertyId());
  System.out.println("Internal Web Property ID: " + profileInfo.getInternalWebPropertyId());
  System.out.println("View (Profile) ID: " + profileInfo.getProfileId());
  System.out.println("View (Profile) Name: " + profileInfo.getProfileName());
  System.out.println("Table ID: " + profileInfo.getTableId());
}

Informasi kueri

Respons kueri mencakup objek Query yang berisi nilai-nilai semua parameter kueri permintaan data. Misalnya, metode berikut mencetak nilai parameter tersebut:

Java

private static void printQueryInfo(McfData mcfData) {
  Query query = mcfData.getQuery();

  System.out.println("Query Info:");
  System.out.println("Ids: " + query.getIds());
  System.out.println("Start Date: " + query.getStartDate());
  System.out.println("End Date: " + query.getEndDate());
  System.out.println("Metrics: " + query.getMetrics());       // List of Analytics metrics
  System.out.println("Dimensions: " + query.getDimensions()); // List of Analytics dimensions
  System.out.println("Sort: " + query.getSort());             // List of sorte metrics or dimensions
  System.out.println("Segment: " + query.getSegment());
  System.out.println("Filters: " + query.getFilters());
  System.out.println("Start Index: " + query.getStartIndex());
  System.out.println("Max Results: " + query.getMaxResults());
}

Metode selain query.getMetrics(), query.getDimensions(), dan query.getSort() akan menampilkan String. Misalnya, query.getStartDate() menampilkan tanggal mulai (String) untuk laporan.

Informasi penomoran halaman

Setiap permintaan Multi-Channel Funnels Reporting API mungkin cocok dengan ratusan ribu baris data Funnel Multisaluran. Multi-Channel Funnels Reporting API hanya akan menampilkan subset, yang disebut sebagai satu halaman data, pada waktu tertentu. Untuk mengambil semua halaman data, gunakan kolom penomoran halaman. Metode berikut mencetak informasi penomoran halaman:

Java

private static void printPaginationInfo(McfData mcfData) {
  System.out.println("Pagination Info:");
  System.out.println("Previous Link: " + mcfData.getPreviousLink());
  System.out.println("Next Link: " + mcfData.getNextLink());
  System.out.println("Items Per Page: " + mcfData.getItemsPerPage());
  System.out.println("Total Results: " + mcfData.getTotalResults());
}

Panggilan metode mcfData.getTotalResults() akan menampilkan total jumlah baris untuk kueri, yang dapat lebih besar dari jumlah total baris yang ditampilkan oleh kueri. Dan panggilan metode mcfData.getItemsPerPage() akan menampilkan jumlah baris maksimum yang dapat dimuat oleh respons kueri.

Panggilan metode mcfData.getPreviousLink() menampilkan link ke halaman sebelumnya dan mcfData.getNextLink() menampilkan link ke halaman berikutnya.

Total untuk semua hasil

Untuk mendapatkan total nilai untuk metrik yang diminta pada semua hasil, bukan hanya hasil yang ditampilkan dalam respons kueri, panggil metode getTotalsForAllResults() pada respons kueri, objek McfData. Gunakan nilai total untuk menghitung rata-rata.

Java

private static void printTotalsForAllResults(McfData mcfData) {
  System.out.println("Metric totals over all results:");
  Map<String, String> totalsMap = mcfData.getTotalsForAllResults();
  for (Map.Entry<String, String> entry : totalsMap.entrySet()) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
  }
}

Sampel yang Berfungsi

Java

Library klien Java Google API Sampel Multi-Channel Funnels Reporting API