User Activity API memungkinkan pemilik properti Google Analytics mengambil semua data pengukuran analisis yang terkait dengan satu pengguna. Secara khusus, API mengambil semua data pengukuran yang terkait dengan Client-ID atau Client-ID tertentu.
Membuat Permintaan Aktivitas Pengguna
Untuk membuat Permintaan Aktivitas Pengguna, buat objek permintaan dengan kolom berikut:
Client-ID atau User-ID yang terkait dengan pengguna
- Lihat Cookie dan Identifikasi Pengguna untuk mengetahui detail tentang cara mencari kolom ini.
ID Tampilan Analytics yang berisi data yang terkait dengan pengguna.
- Anda dapat menggunakan Penjelajah Akun untuk mencari ID tampilan.
Meskipun tidak diwajibkan, Anda mungkin memerlukan rentang tanggal untuk data yang Anda minati. Secara default, API mencantumkan aktivitas pengguna selama seminggu terakhir.
Contoh Permintaan
POST https://analyticsreporting.googleapis.com/v4/userActivity:search
{
"viewId": "9999999",
"user": {
"type": "CLIENT_ID",
"userId": "1034600000.76425000000"
},
"dateRange": {
"startDate": "2018-01-01",
"endDate": "2018-12-31",
}
}
Contoh Respons
{
"sessions": [{
"sessionId": "1539184430",
"deviceCategory": "desktop",
"platform": "Windows",
"dataSource": "web",
"sessionDate": "2018-10-10"
"activities": [{
"activityTime": "2018-10-10T08:13:50.555105Z",
"source": "(direct)",
"medium": "(none)",
"channelGrouping": "Direct",
"campaign": "(not set)",
"keyword": "(not set)",
"hostname": "shop.googlemerchandisestore.com",
"landingPagePath": "/gpsmap",
"activityType": "PAGEVIEW",
"customDimension": [{
"index": 1,
"value": "(not set)"
}, ...]
}, ...]
}, ...]
"totalRows": 1000,
"nextPageToken": "A6JGY3",
"sampleRate": 1
}
Sesi dan Aktivitas
Data aktivitas pengguna dikelompokkan berdasarkan sesi. Setiap
sesi berisi informasi
umum tentang sesi, seperti ID dan tanggal sesi, serta daftar
aktivitas pengguna untuk sesi tersebut.
Aktivitas pengguna dalam sebuah sesi terdiri dari setiap "hit" yang menjadi tanggung jawab pengguna; ini mencakup hal-hal seperti
kunjungan halaman, peristiwa e-commerce, dan peristiwa kustom yang dikirim melalui gtag(...)
atau ga(...)
.
Penomoran halaman
User Activity API menggunakan penomoran halaman untuk membagi set data yang besar menjadi beberapa permintaan dan respons. Namun, karena data yang ditampilkan oleh API disusun secara hierarkis, beberapa pertimbangan khusus perlu diambil oleh developer agar dapat mengumpulkan data dengan benar.
Jenis "baris" dasar untuk tujuan penomoran halaman adalah Aktivitas. Karena Data Pengguna dikelompokkan berdasarkan sesi, artinya batas halaman dapat terjadi di dalam sesi, dan sesi tersebut dapat memiliki aktivitas yang mencakup beberapa halaman.
Contoh Data
Untuk tujuan demonstrasi, kami akan menggunakan contoh data berikut. Dalam contoh ini, pengguna berinteraksi dengan situs dalam 6 sesi selama 3 hari.
Tanggal | ID Sesi | Label Peristiwa | Waktu |
---|---|---|---|
2018-11-23 | 1 | A | 10:26 |
2018-11-23 | 1 | B | 10:32 |
2018-11-23 | 1 | C | 10:39 |
2018-11-23 | 2 | A | 18:04 |
2018-11-23 | 2 | B | 18:11 |
2018-11-23 | 2 | C | 18:26 |
2018-11-24 | 3 | A | 11:26 |
2018-11-24 | 3 | B | 11:29 |
2018-11-24 | 3 | C | 11:39 |
2018-11-24 | 3 | D | 11:42 |
2018-11-24 | 4 | A | 23:50 |
2018-11-24 | 4 | B | 23:54 |
2018-11-25 | 5 | C | 00:02 |
2018-11-25 | 5 | D | 00:13 |
2018-11-25 | 6 | A | 13:01 |
2018-11-25 | 6 | B | 13:09 |
2018-11-25 | 6 | C | 13:12 |
2018-11-25 | 6 | D | 13:23 |
Halaman Tunggal
Jika Anda membuat permintaan aktivitas pengguna dengan pageSize
setidaknya 18, semua data akan dikirim dalam satu halaman, dan akan terlihat seperti ini:
POST https://analyticsreporting.googleapis.com/v4/userActivity:search
{
"viewId": "9999999",
"user": {
"type": "CLIENT_ID",
"userId": "1034600000.76425000000",
},
"dateRange": {
"startDate": "2018-11-20",
"endDate": "2018-11-30",
},
"pageSize": 100,
}
{
"totalRows": 18,
"sessions": [{
"sessionId": "1",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T10:26:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-23T10:32:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-23T10:39:00",
"event": {"eventLabel": "C"}
}]
}, {
"sessionId": "2",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T18:04:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-23T18:11:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-23T18:26:00",
"event": {"eventLabel": "C"}
}]
}, {
"sessionId": "3",
"sessionDate": "2018-11-24",
"activities": [{
"activityTime": "2018-11-24T11:26:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-24T11:29:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-24T11:39:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-24T11:42:00",
"event": {"eventLabel": "D"}
}]
}, {
"sessionId": "4",
"sessionDate": "2018-11-24",
"activities": [{
"activityTime": "2018-11-24T23:50:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-24T23:54:00",
"event": {"eventLabel": "B"}
}]
}, {
"sessionId": "5",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T00:01:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-25T00:13:00",
"event": {"eventLabel": "D"}
}]
}, {
"sessionId": "6",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T13:01:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-25T13:09:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-25T10:12:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-25T10:23:00",
"event": {"eventLabel": "D"}
}]
}]
}
Beberapa Halaman
Namun, jika ukuran halaman Anda 5, data ini akan dibagi menjadi 4 halaman respons:
Tanggal | ID Sesi | Label Peristiwa | Waktu |
---|---|---|---|
Halaman 1: | |||
2018-11-23 | 1 | A | 10:26 |
2018-11-23 | 1 | B | 10:32 |
2018-11-23 | 1 | C | 10:39 |
2018-11-23 | 2 | A | 18:04 |
2018-11-23 | 2 | B | 18:11 |
Halaman 2: | |||
2018-11-23 | 2 | C | 18:26 |
2018-11-24 | 3 | A | 11:26 |
2018-11-24 | 3 | B | 11:29 |
2018-11-24 | 3 | C | 11:39 |
2018-11-24 | 3 | D | 11:42 |
Halaman 3: | |||
2018-11-24 | 4 | A | 23:50 |
2018-11-24 | 4 | B | 23:54 |
2018-11-25 | 5 | C | 00:02 |
2018-11-25 | 5 | D | 00:13 |
2018-11-25 | 6 | A | 13:01 |
Halaman 4: | |||
2018-11-25 | 6 | B | 13:09 |
2018-11-25 | 6 | C | 13:12 |
2018-11-25 | 6 | D | 13:23 |
Perhatikan bahwa sesi 2 dibagi di halaman pertama dan kedua, dan 2 sesi pada tanggal 24 November dibagi di halaman kedua dan ketiga. Responsnya akan terlihat seperti ini:
{
"totalRows": 18,
"nextPageToken": "UGMGQS",
"sessions": [{
"sessionId": "1",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T10:26:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-23T10:32:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-23T10:39:00",
"event": {"eventLabel": "C"}
}]
}, {
"sessionId": "2",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T18:04:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-23T18:11:00",
"event": {"eventLabel": "B"}
}]
}]
}
{
"totalRows": 18,
"nextPageToken": "1FKOME",
"sessions": [{
"sessionId": "2",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T18:26:00",
"event": {"eventLabel": "C"}
}]
}, {
"sessionId": "3",
"sessionDate": "2018-11-24",
"activities": [{
"activityTime": "2018-11-24T11:26:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-24T11:29:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-24T11:39:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-24T11:42:00",
"event": {"eventLabel": "D"}
}]
}]
}
{
"totalRows": 18,
"nextPageToken": "7S77H6",
"sessions": [{
"sessionId": "4",
"sessionDate": "2018-11-24",
"activities": [{
"activityTime": "2018-11-24T23:50:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-24T23:54:00",
"event": {"eventLabel": "B"}
}]
}, {
"sessionId": "5",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T00:01:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-25T00:13:00",
"event": {"eventLabel": "D"}
}]
}, {
"sessionId": "6",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T13:01:00",
"event": {"eventLabel": "A"}
}]
}]
}
{
"totalRows": 18,
"sessions": [{
"sessionId": "6",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T13:09:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-25T10:12:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-25T10:23:00",
"event": {"eventLabel": "D"}
}]
}]
}
Pengambilan Sampel Data
Jika klien telah mengumpulkan data dalam jumlah besar untuk rentang tanggal yang diminta, API hanya dapat menampilkan subset aktivitas yang diambil sampelnya. Jika ini
terjadi, kolom sampleRate
akan menunjukkan berapa bagian dari aktivitas
pengguna yang ditampilkan.
Cara pengambilan sampel data
Data pengguna diambil sampelnya di tingkat aktivitas. Misalnya, dengan rasio pengambilan sampel sebesar 50% (0.5
), separuh aktivitas pengguna akan ada dalam respons.
Aktivitas sampel ini dipilih secara arbitrer; API ini tidak memberikan jaminan apa pun tentang pengambilan sampel acak, atau pengambilan sampel bersifat proporsional di seluruh aktivitas untuk rentang tanggal tertentu.
Mencegah pengambilan sampel data
Karena API ini memperlakukan sesi hanya sebagai kumpulan aktivitas, setiap sesi yang tidak menampilkan aktivitas dalam set sampel tidak akan muncul dalam respons. Jika Anda memerlukan daftar sesi atau aktivitas yang komprehensif, buat permintaan tindak lanjut dengan rentang tanggal yang lebih kecil.
Misalnya, jika Anda meminta data dari 2018-01-01
hingga 2018-12-31
, dan
responsnya menunjukkan frekuensi pengambilan sampel 0.25
, bagi rentang tanggal yang diminta
menjadi 4 bagian, sehingga setiap bagian diharapkan akan berisi sekitar seperempat
data asli:
2018-01-01
hingga2018-03-31
2018-04-01
menjadi2018-06-30
2018-07-01
menjadi2018-09-30
2018-10-01
hingga2018-12-31