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 Client-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 terkait dengan pengguna.

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

TanggalID SesiLabel PeristiwaWaktu
Halaman 1:
2018-11-231A10:26
2018-11-231B10:32
2018-11-231C10:39
2018-11-232A18:04
2018-11-232B18:11
Halaman 2:
2018-11-232C18:26
2018-11-243A11:26
2018-11-243B11:29
2018-11-243C11:39
2018-11-243D11:42
Halaman 3:
2018-11-244A23:50
2018-11-244B23:54
2018-11-255C00:02
2018-11-255D00:13
2018-11-256A13: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 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 hingga 2018-03-31
  • 2018-04-01 menjadi 2018-06-30
  • 2018-07-01 menjadi 2018-09-30
  • 2018-10-01 hingga 2018-12-31