User Activity API

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:

  1. Client-ID atau User-ID yang terkait dengan pengguna

  2. ID Tampilan Analytics yang berisi data yang dikaitkan dengan pengguna.

  3. 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:

TanggalID SesiLabel PeristiwaWaktu
Halaman 1:
2018-11-231J10:26
2018-11-231B10:32
2018-11-231C10:39
2018-11-232J18:04
2018-11-232B18:11
Halaman 2:
2018-11-232C18:26
2018-11-243J11:26
2018-11-243B11:29
2018-11-243C11:39
2018-11-243D11:42
Halaman 3:
2018-11-244J23:50
2018-11-244B23:54
2018-11-255C00:02
2018-11-255D00:13
2018-11-256J13:01
Halaman 4:
2018-11-256B13:09
2018-11-256C13:12
2018-11-256D13: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 ke 2018-03-31
  • 2018-04-01 menjadi 2018-06-30
  • 2018-07-01 menjadi 2018-09-30
  • 2018-10-01 ke 2018-12-31