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 User-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 dikaitkan dengan pengguna.
- Anda dapat menggunakan Account Explorer untuk mencari ID tampilan Anda.
Meskipun tidak wajib, 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 menurut 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 besar menjadi beberapa permintaan dan respons. Namun, karena data yang ditampilkan oleh API terstruktur secara hierarkis, developer perlu melakukan beberapa pertimbangan khusus untuk mengumpulkan data dengan benar.
Jenis "baris" dasar untuk tujuan penomoran halaman adalah Aktivitas. Karena Data Pengguna dikelompokkan menurut sesi, artinya batas halaman dapat terjadi di dalam sesi, dan sesi tersebut dapat memiliki aktivitas yang mencakup beberapa halaman.
Data Sampel
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 | J | 10:26 |
2018-11-23 | 1 | B | 10:32 |
2018-11-23 | 1 | C | 10:39 |
2018-11-23 | 2 | J | 18:04 |
2018-11-23 | 2 | B | 18:11 |
2018-11-23 | 2 | C | 18:26 |
2018-11-24 | 3 | J | 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 | J | 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 | J | 13:01 |
2018-11-25 | 6 | B | 13:09 |
2018-11-25 | 6 | C | 13:12 |
2018-11-25 | 6 | D | 13:23 |
Satu Halaman
Jika Anda membuat permintaan aktivitas pengguna dengan pageSize
minimal 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 adalah 5, data ini akan dipecah menjadi 4 halaman respons:
Tanggal | ID Sesi | Label Peristiwa | Waktu |
---|---|---|---|
Halaman 1: | |||
2018-11-23 | 1 | J | 10:26 |
2018-11-23 | 1 | B | 10:32 |
2018-11-23 | 1 | C | 10:39 |
2018-11-23 | 2 | J | 18:04 |
2018-11-23 | 2 | B | 18:11 |
Halaman 2: | |||
2018-11-23 | 2 | C | 18:26 |
2018-11-24 | 3 | J | 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 | J | 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 | J | 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 24 November dibagi menjadi 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 mungkin hanya menampilkan subkumpulan aktivitas yang diambil. Jika hal ini
terjadi, kolom sampleRate
akan menunjukkan fraksi aktivitas pengguna
yang ditampilkan.
Cara data diambil sampelnya
Data pengguna diambil sampelnya di tingkat aktivitas. Misalnya, dengan frekuensi sampling 50% (0.5
), setengah dari aktivitas pengguna akan ada dalam respons.
Aktivitas yang diambil sampel ini dipilih secara acak; API tidak memberikan jaminan tentang pengambilan sampel acak, atau bahwa pengambilan sampel bersifat proporsional di seluruh aktivitas selama rentang tanggal yang ditentukan.
Mencegah sampling data
Karena API ini memperlakukan sesi hanya sebagai kumpulan aktivitas, setiap sesi yang tidak menampilkan aktivitas dalam kumpulan sampel tidak akan muncul dalam respons. Jika Anda memerlukan daftar sesi atau aktivitas yang lengkap, buat permintaan tindak lanjut dengan rentang tanggal yang lebih kecil.
Misalnya, jika Anda meminta data dari 2018-01-01
ke 2018-12-31
, dan respons menunjukkan frekuensi sampling 0.25
, bagi rentang tanggal yang diminta menjadi 4 bagian, sehingga setiap bagian diharapkan berisi sekitar seperempat dari data asli:
2018-01-01
ke2018-03-31
2018-04-01
menjadi2018-06-30
2018-07-01
menjadi2018-09-30
2018-10-01
ke2018-12-31