उपयोगकर्ता की गतिविधि से जुड़ा एपीआई

User Activity API की मदद से, Google Analytics प्रॉपर्टी का मालिक, किसी एक उपयोगकर्ता से जुड़े आंकड़ों के सभी मेज़रमेंट का डेटा हासिल कर सकता है. खास तौर पर, एपीआई किसी खास यूज़र आईडी या क्लाइंट आईडी से जुड़ा पूरा मेज़रमेंट डेटा इकट्ठा करता है.

उपयोगकर्ता गतिविधि का अनुरोध करना

उपयोगकर्ता गतिविधि का अनुरोध करने के लिए, इन फ़ील्ड की मदद से अनुरोध वाला ऑब्जेक्ट बनाएं:

  1. उपयोगकर्ता से जुड़ा Client-ID या User-ID

  2. Analytics व्यू आईडी, जिसमें उपयोगकर्ता से जुड़ा डेटा होता है.

  3. हालांकि, यह ज़रूरी नहीं है, लेकिन आपको अपने पसंदीदा डेटा के लिए तारीख की सीमा की ज़रूरत हो सकती है. डिफ़ॉल्ट रूप से, एपीआई पिछले हफ़्ते की उपयोगकर्ता गतिविधि को सूची में दिखाता है.

अनुरोध का नमूना

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

रिस्पॉन्स का उदाहरण

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

सेशन और गतिविधियां

उपयोगकर्ता गतिविधि के डेटा को सेशन के हिसाब से ग्रुप में रखा जाता है. हर सेशन में सेशन के बारे में सामान्य जानकारी होती है, जैसे कि सेशन आईडी और तारीख. साथ ही, उस सेशन के लिए उपयोगकर्ता गतिविधियों की सूची भी शामिल होती है. किसी सेशन में उपयोगकर्ता की गतिविधियों में हर वह "हिट" शामिल होता है जिसके लिए उपयोगकर्ता ज़िम्मेदार था. इसमें पेज व्यू, ई-कॉमर्स इवेंट, और gtag(...) या ga(...) के ज़रिए भेजे गए कस्टम इवेंट जैसी चीज़ें शामिल हैं.

खोज नतीजों को पेजों में बांटना

User ऐक्टिविटी एपीआई, बड़े डेटा सेट को कई अनुरोधों और रिस्पॉन्स में बांटने के लिए, पेज पर नंबर डालने की सुविधा का इस्तेमाल करता है. हालांकि, एपीआई से मिलने वाले डेटा को हैरारकी के हिसाब से बनाया गया है, इसलिए डेवलपर को कुछ खास बातों का ध्यान रखना होगा, ताकि डेटा को सही तरीके से इकट्ठा किया जा सके.

पेज पर नंबर डालने के लिए, बुनियादी "पंक्ति" टाइप, गतिविधि है. उपयोगकर्ता डेटा को सेशन के हिसाब से ग्रुप में रखा जाता है. इसका मतलब है कि किसी सेशन के अंदर पेज की सीमा हो सकती है. साथ ही, उस सेशन में कई पेजों पर लागू होने वाली गतिविधियां हो सकती हैं.

सैंपल डेटा

जानकारी दिखाने के लिए, हम यहां दिए गए सैंपल डेटा का इस्तेमाल करेंगे. इस उदाहरण में, उपयोगकर्ता ने तीन दिनों के दौरान 6 सेशन में साइट से इंटरैक्ट किया.

तारीख सेशन का आईडी इवेंट का लेबल समय
2018-11-23 1 जवाब 10:26
2018-11-23 1 B 10:32
2018-11-23 1 C 10:39
2018-11-23 2 जवाब 18:04
2018-11-23 2 B 18:11
2018-11-23 2 C 18:26
2018-11-24 3 जवाब 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 जवाब 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 जवाब 13:01
2018-11-25 6 B 13:09
2018-11-25 6 C 13:12
2018-11-25 6 D 13:23

एक पेज

अगर किसी उपयोगकर्ता गतिविधि के लिए कम से कम 18 के pageSize अनुरोध किए जाते हैं, तो उस डेटा को एक ही पेज पर भेजा जाएगा और वह कुछ ऐसा दिखेगा:

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

एक से ज़्यादा पेज

हालांकि, अगर आपके पेज का साइज़ पांच है, तो इस डेटा को चार रिस्पॉन्स पेजों में बांट दिया जाएगा:

तारीखसेशन का आईडीइवेंट का लेबलसमय
पेज 1:
2018-11-231जवाब10:26
2018-11-231B10:32
2018-11-231C10:39
2018-11-232जवाब18:04
2018-11-232B18:11
पेज 2:
2018-11-232C18:26
2018-11-243जवाब11:26
2018-11-243B11:29
2018-11-243C11:39
2018-11-243D11:42
पेज 3:
2018-11-244जवाब23:50
2018-11-244B23:54
2018-11-255C00:02
2018-11-255D00:13
2018-11-256जवाब13:01
पेज 4:
2018-11-256B13:09
2018-11-256C13:12
2018-11-256D13:23

ध्यान दें कि सेशन 2, पहले और दूसरे पेज में बंटा होता है और 24 नवंबर को होने वाले दो सेशन, दूसरे और तीसरे पेज में बंटे होते हैं. जवाब कुछ इस तरह दिखेंगे:

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

डेटा सैंपलिंग

अगर किसी क्लाइंट ने अनुरोध की गई तारीख की सीमा में बहुत ज़्यादा डेटा इकट्ठा किया है, तो एपीआई सिर्फ़ गतिविधियों के सैंपल के तौर पर चुने गए सबसेट को दिखा सकता है. ऐसा होने पर, sampleRate फ़ील्ड से यह पता चलेगा कि इस्तेमाल करने वालों की कुल गतिविधियों का कितना हिस्सा लौटाया गया.

डेटा का सैंपल कैसे लिया जाता है

उपयोगकर्ता के डेटा का सैंपल, गतिविधि के लेवल पर लिया जाता है. उदाहरण के लिए, अगर सैंपलिंग रेट 50% (0.5) है, तो रिस्पॉन्स में उपयोगकर्ता की आधी गतिविधियां मौजूद होंगी.

सैंपल के तौर पर ली गई इन गतिविधियों को स्वेच्छा से चुना जाता है. एपीआई, रैंडम सैंपलिंग की कोई गारंटी नहीं देता. साथ ही, यह भी नहीं देता कि चुनी गई तारीख की सीमा के दौरान, सभी गतिविधियों के लिए सैंपलिंग का अनुपात तय है.

डेटा सैंपलिंग रोकना

यह एपीआई किसी सेशन को सिर्फ़ गतिविधियों का संग्रह मानता है. इसलिए, ऐसा कोई भी सेशन जिसके लिए सैंपल किए गए सेट में कोई गतिविधि नहीं दिखती, जवाब में नहीं दिखेगी. अगर आपको सेशन या गतिविधियों की एक पूरी सूची चाहिए, तो फ़ॉलो-अप के लिए तारीख की छोटी सीमाओं को आज़माएं.

उदाहरण के लिए, अगर 2018-01-01 से 2018-12-31 तक के डेटा का अनुरोध किया जाता है और जवाब में 0.25 सैंपलिंग रेट दिखता है, तो अनुरोध की गई तारीख की सीमा को चार हिस्सों में बांटें. इसके बाद, हर हिस्से में ओरिजनल डेटा का एक चौथाई हिस्सा होने की उम्मीद है:

  • 2018-01-01 से 2018-03-31 तक
  • 2018-04-01 से 2018-06-30 तक
  • 2018-07-01 से 2018-09-30 तक
  • 2018-10-01 से 2018-12-31 तक