User Activity API

User Activity API, bir Google Analytics mülk sahibinin tek bir kullanıcıyla ilişkilendirilen tüm analiz ölçüm verilerini almasına olanak tanır. Özel olarak belirtmek gerekirse API, belirli bir User-ID veya Client-ID ile ilişkili tüm ölçüm verilerini alır.

Kullanıcı Etkinliği İsteğinde Bulunma

Kullanıcı Etkinliği İsteğinde bulunmak için aşağıdaki alanlarla bir istek nesnesi oluşturun:

  1. Kullanıcıyla ilişkilendirilen Client-ID veya User-ID

  2. Kullanıcıyla ilişkili verileri içeren bir Analytics Görünüm Kimliği.

    • Görünüm kimliğinizi aramak için Hesap Gezgini'ni kullanabilirsiniz.
  3. Zorunlu olmamakla birlikte, ilgilendiğiniz veriler için muhtemelen bir tarih aralığına ihtiyacınız olacaktır. Varsayılan olarak API, geçen haftaki kullanıcı etkinliğini listeler.

Örnek İstek

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",
    }
}

Örnek Yanıt

{
    "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
}

Oturumlar ve Etkinlikler

Kullanıcı etkinliği verileri oturuma göre gruplandırılır. Her oturumda, oturum kimliği ve tarihi gibi oturum hakkında genel bilgilerin yanı sıra bu oturumdaki kullanıcı etkinliklerinin bir listesi yer alır. Bir oturumdaki kullanıcı etkinlikleri, kullanıcının sorumlu olduğu her "isabetten" oluşur. Buna gtag(...) veya ga(...) aracılığıyla gönderilen sayfa görüntülemeleri, e-ticaret etkinlikleri ve özel etkinlikler gibi şeyler de dahildir.

Sayfalara ayırma

User Activity API, büyük veri kümelerini birden fazla istek ve yanıta ayırmak için sayfalandırmadan yararlanır. Bununla birlikte, API tarafından döndürülen veriler hiyerarşik olarak yapılandırıldığı için geliştiricinin, verileri doğru bir şekilde derlemesi için bazı özel noktalara dikkat etmesi gerekir.

Sayfalara ayırma işlemi için temel "satır" türü Etkinlik'tir. Kullanıcı Verileri oturuma göre gruplandırıldığından bu, sayfa sınırının bir oturum içinde gerçekleşebileceği ve bu oturumun birden fazla sayfayı kapsayan etkinliklere sahip olabileceği anlamına gelir.

Örnek Veriler

Gösterim amacıyla aşağıdaki örnek verileri kullanacağız. Bu örnekte, kullanıcı 3 gün boyunca 6 oturumda siteyle etkileşimde bulunmuştur.

Tarih Oturum Kimliği Etkinlik Etiketi Saat
2018-11-23 1 CEVAP 10:26
2018-11-23 1 B 10:32
2018-11-23 1 C 10:39
2018-11-23 2 CEVAP 18:04
2018-11-23 2 B 18:11
2018-11-23 2 C 18:26
2018-11-24 3 CEVAP 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 CEVAP 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 CEVAP 13:01
2018-11-25 6 B 13:09
2018-11-25 6 C 13:12
2018-11-25 6 D 13:23

Tek Sayfa

En az 18 değerindeki bir pageSize ile kullanıcı etkinliği isteğinde bulunursanız verilerin tümü tek bir sayfada yayınlanır ve aşağıdaki gibi görünür:

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"}
                }]
        }]
}

Birden Fazla Sayfa

Ancak, sayfanızın boyutu 5 ise bu veriler 4 yanıt sayfasına bölünür:

TarihOturum KimliğiEtkinlik EtiketiSaat
1. Sayfa:
2018-11-231CEVAP10:26
2018-11-231B10:32
2018-11-231C10:39
2018-11-232CEVAP18:04
2018-11-232B18:11
2. Sayfa:
2018-11-232C18:26
2018-11-243CEVAP11:26
2018-11-243B11:29
2018-11-243C11:39
2018-11-243D11:42
3. Sayfa:
2018-11-244CEVAP23:50
2018-11-244B23:54
2018-11-255C00:02
2018-11-255D00:13
2018-11-256CEVAP13:01
4. Sayfa:
2018-11-256B13:09
2018-11-256C13:12
2018-11-256D13:23

2. oturumun birinci ve ikinci sayfalara, 24 Kasım'daki 2 oturum ise ikinci ve üçüncü sayfalara ayrıldığına dikkat edin. Yanıtlar aşağıdaki gibi görünür:

{
    "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"}
                }]
        }]
}

Veri Örnekleme

Bir istemci istenen tarih aralığı için büyük miktarda veri biriktirdiyse API, etkinliklerin yalnızca örneklenmiş bir alt kümesini döndürebilir. Böyle bir durumda, sampleRate alanında kullanıcı etkinliklerinin ne kadarlık kısmının döndürüldüğünü belirtir.

Veriler nasıl örneklenir?

Kullanıcı verileri, etkinlik düzeyinde örneklenir. Örneğin, %50 (0.5) bir örnekleme oranıyla kullanıcı etkinliklerinin yarısı yanıtta yer alır.

Örneklenen bu etkinlikler rastgele seçilir; API rastgele örnekleme hakkında herhangi bir garanti vermez veya örneklemenin belirli bir tarih aralığındaki etkinlikler genelinde orantılı olduğunu garanti etmez.

Veri örneklemeyi önleme

Bu API, bir oturumu basit bir etkinlikler koleksiyonu olarak işlediğinden örneklenmiş kümede hiçbir etkinliği bulunmayan oturumlar yanıtta görünmez. Oturum veya etkinliklerin kapsamlı bir listesine ihtiyacınız varsa daha kısa tarih aralıklarıyla takip isteklerinde bulunun.

Örneğin, 2018-01-01 ile 2018-12-31 arasında veri isteğinde bulunursanız ve yanıtta örnekleme oranının 0.25 olduğu belirtiliyorsa istenen tarih aralığını 4 bölüme bölün. Bu şekilde her bir bölüm, orijinal verilerin yaklaşık dörtte birini içerir:

  • 2018-01-01 - 2018-03-31
  • 2018-04-01 - 2018-06-30
  • 2018-07-01 - 2018-09-30
  • 2018-10-01 - 2018-12-31