Multi-Channel Funnel Reporting API - Panduan Developer

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

Pengantar

Multi-Channel Funnel Reporting API memberikan akses ke data tabulasi di laporan standar dan kustom Funnel Multisaluran. Untuk mengakses data, Anda 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 Funnel Reporting API dan Multi-Channel Funnel Reporting API akan menampilkan semua data dalam bentuk tabel.

Jika Anda baru menggunakan API ini, baca Ringkasan Multi-Channel Funnel Reporting API untuk pengantar tujuan Multi-Channel Funnel Reporting API dan data yang disediakan.

Sebelum Memulai

Panduan ini menggunakan library klien Java untuk mengakses Multi-Channel Funnel Reporting API. Setiap library klien menyediakan satu objek layanan Analytics untuk memanggil Multi-Channel Funnel Reporting API guna mendapatkan data. Jika Anda tidak menggunakan library klien untuk mengakses API, baca Multi-ChannelFunnel 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 ini, hentikan dan baca Tutorial Hello Analytics API, yang 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 Funnel Reporting API.

Ringkasan

Untuk menggunakan Multi-ChannelFunnel Reporting API untuk mengambil data, tulis aplikasi untuk:

  1. Mengkueri Multi-Channel Funnel Reporting API.
  2. Menggunakan hasil yang ditampilkan dari API.

Membuat kueri terhadap Multi-Channel Funnel Reporting API

Untuk meminta data dari Multi-ChannelFunnel Reporting API:

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

Membuat kueri Multi-ChannelFunnel Reporting API

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

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

Parameter pertama yang diberikan ke metode adalah ID tabel unik dalam bentuk ga:XXXX, dengan XXXX adalah ID tampilan (profil) Analytics yang berisi data yang diminta. Menggunakan 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 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 Funnel 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 Anda lebih suka 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. Aplikasi harus menangkap dan menangani pengecualian.

Menggunakan Hasil API

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

Data pelaporan Funnel Multisaluran

Kueri tersebut menampilkan data pelaporan tabulasi 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, diikuti dengan kolom metrik dalam urutan yang sama seperti yang ditentukan dalam kueri asli. Misalnya, metode berikut 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 dasar 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 sangat berguna untuk menguraikan nilai ke dalam 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();
}

Informasi laporan

Selain data pelaporan, kueri akan 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 sampel yang ditampilkan dari kueri (API) tidak cocok dengan nilai yang ditampilkan di antarmuka web. Lihat Pengambilan sampel untuk detail selengkapnya.

Lihat 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 menyertakan objek Query yang berisi 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() menampilkan String. Misalnya, query.getStartDate() menampilkan tanggal mulai (String) laporan.

Informasi penomoran halaman

Permintaan Multi-ChannelFunnel Reporting API mungkin cocok dengan ratusan ribu baris data Funnel Multisaluran. Multi-ChannelFunnel Reporting API hanya akan menampilkan subkumpulan, 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() menampilkan total jumlah baris untuk kueri, yang bisa lebih besar dari jumlah total baris yang ditampilkan oleh kueri. Dan panggilan metode mcfData.getItemsPerPage() akan menampilkan jumlah baris maksimum yang dapat dimuat respons kueri.

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

Total untuk semua hasil

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

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 Contoh Multi-Channel Funnel Reporting API