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:
- Daftarkan aplikasi Anda di Konsol API Google.
- Izinkan akses ke data Google Analytics.
- 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:
- Mengkueri Multi-Channel Funnels Reporting API.
- Bekerja dengan hasil yang ditampilkan dari API.
Membuat kueri Multi-Channel Funnels Reporting API
Untuk meminta data dari Multi-Channel Funnels Reporting API:
- Buat objek kueri Reporting Multi-Channel Funnels API.
- 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