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:
- 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 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:
- Mengkueri Multi-Channel Funnel Reporting API.
- Menggunakan hasil yang ditampilkan dari API.
Membuat kueri terhadap Multi-Channel Funnel Reporting API
Untuk meminta data dari Multi-ChannelFunnel Reporting API:
- Buat objek kueri Multi-ChannelFunnel Reporting API.
- 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