Google Analytics Data API v1 पर माइग्रेट करना

इस दस्तावेज़ में, मौजूदा कोड को Google Analytics Reporting API v4 से Google Analytics Data API v1 में माइग्रेट करने का तरीका बताया गया है. साथ ही, दोनों एपीआई के बीच के मुख्य अंतरों के बारे में खास जानकारी भी दी गई है.

मुझे प्रॉपर्टी को माइग्रेट करने की ज़रूरत क्यों है

अगर आपके ऐप्लिकेशन को Google Analytics 4 प्रॉपर्टी में डेटा ऐक्सेस करना है, तो Data API v1 का इस्तेमाल करने के लिए कोड को अपडेट करना ज़रूरी है. ऐसा इसलिए, क्योंकि Reporting API v4 सिर्फ़ Universal Analytics से बनाई गई प्रॉपर्टी को ऐक्सेस कर सकता है.

ज़रूरी शर्तें

कृपया आसानी से सिखाने वाली गाइड की मदद से, Data API v1 की बुनियादी बातों के बारे में जानें.

YouTube पर पॉडकास्ट शुरू करना

शुरू करने के लिए, आपको Google Analytics 4 प्रॉपर्टी बनानी होगी और Data API v1 को चालू करना होगा. इसके बाद, अपने प्लैटफ़ॉर्म के हिसाब से एक एपीआई क्लाइंट लाइब्रेरी सेट अप करनी होगी.

Google Analytics 4 प्रॉपर्टी तैयार करना

Data API v1 के साथ काम करने के लिए, अपने कोड को माइग्रेट करने से पहले, आपको Google Analytics 4 प्रॉपर्टी का इस्तेमाल करने के लिए, अपनी वेबसाइट को माइग्रेट करना होगा. किसी Google Analytics 4 प्रॉपर्टी में, किसी Universal Analytics प्रॉपर्टी के पुराने डेटा को बैकफ़िल नहीं किया जा सकता.

एपीआई चालू करें

अपने चुने हुए Google Cloud प्रोजेक्ट में, Data API v1 को अपने-आप चालू करने के लिए, इस बटन पर क्लिक करें.

Google Analytics Data API v1 चालू करना

क्लाइंट लाइब्रेरी का इस्तेमाल करना

क्लाइंट लाइब्रेरी इंस्टॉल करना

क्लाइंट लाइब्रेरी का इस्तेमाल करने पर, आपको अपनी प्रोग्रामिंग भाषा के लिए, Data API v1 क्लाइंट लाइब्रेरी इंस्टॉल करनी होगी.

क्लाइंट लाइब्रेरी शुरू करना

Data API v1 क्लाइंट लाइब्रेरी को इस तरह से डिज़ाइन किया गया था कि आप तेज़ी से शुरुआत कर पाएं. डिफ़ॉल्ट रूप से, क्लाइंट लाइब्रेरी आपके सेवा खाते के क्रेडेंशियल अपने-आप ढूंढने की कोशिश करती है.

सेवा खाते के क्रेडेंशियल देने का सबसे आसान तरीका GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल को सेट करना है. एपीआई क्लाइंट, सेवा खाते की कुंजी वाली JSON फ़ाइल खोजने के लिए, इस वैरिएबल की वैल्यू का इस्तेमाल करेगा.

उदाहरण के लिए, नीचे दिए गए कमांड को चलाकर और सेवा खाते की JSON फ़ाइल के पाथ का इस्तेमाल करके, सेवा खाते के क्रेडेंशियल सेट किए जा सकते हैं:

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

नीचे कुछ कोड स्निपेट दिए गए हैं जिनका इस्तेमाल, आम तौर पर Data API v1 क्लाइंट लाइब्रेरी को शुरू करने के लिए किया जाता है.

Java

    // Using a default constructor instructs the client to use the credentials
    // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create()) {

Python

    # Using a default constructor instructs the client to use the credentials
    # specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
    client = BetaAnalyticsDataClient()

.NET

            // Using a default constructor instructs the client to use the credentials
            // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
            BetaAnalyticsDataClient client = BetaAnalyticsDataClient.Create();

PHP

// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
$client = new BetaAnalyticsDataClient();

Node.js

  // Imports the Google Analytics Data API client library.
  const {BetaAnalyticsDataClient} = require('@google-analytics/data');

  // Using a default constructor instructs the client to use the credentials
  // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
  const analyticsDataClient = new BetaAnalyticsDataClient();

एनवायरमेंट वैरिएबल का इस्तेमाल करने के बजाय, शुरू करने के दौरान, साफ़ तौर पर एपीआई क्लाइंट इंस्टेंस को क्रेडेंशियल की जानकारी पास की जा सकती है. नीचे कुछ स्निपेट दिए गए हैं, जिनका इस्तेमाल करके कोड में साफ़ तौर पर क्रेडेंशियल पास करके, Data API v1 क्लाइंट लाइब्रेरी को शुरू किया जाता है.

Java

    // Explicitly use service account credentials by specifying
    // the private key file.
    GoogleCredentials credentials =
        GoogleCredentials.fromStream(new FileInputStream(credentialsJsonPath));

    BetaAnalyticsDataSettings betaAnalyticsDataSettings =
        BetaAnalyticsDataSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credentials))
            .build();

    try (BetaAnalyticsDataClient analyticsData =
        BetaAnalyticsDataClient.create(betaAnalyticsDataSettings)) {

Python

    # TODO(developer): Uncomment this variable and replace with a valid path to
    #  the credentials.json file for your service account downloaded from the
    #  Cloud Console.
    # credentials_json_path = "/path/to/credentials.json"

    # Explicitly use service account credentials by specifying
    # the private key file.
    client = BetaAnalyticsDataClient.from_service_account_json(credentials_json_path)

.NET

            /**
             * TODO(developer): Uncomment this variable and replace with a valid path to
             *  the credentials.json file for your service account downloaded from the
             *  Cloud Console.
             *  Otherwise, default service account credentials will be derived from
             *  the GOOGLE_APPLICATION_CREDENTIALS environment variable.
             */
            // credentialsJsonPath = "/path/to/credentials.json";

            // Explicitly use service account credentials by specifying
            // the private key file.
            BetaAnalyticsDataClient client = new BetaAnalyticsDataClientBuilder
            {
              CredentialsPath = credentialsJsonPath
            }.Build();

PHP

/**
 * @param string $credentialsJsonPath Valid path to the credentials.json file for your service
 *                                    account downloaded from the Cloud Console.
 *                                    Example: "/path/to/credentials.json"
 */
function client_from_json_credentials(string $credentialsJsonPath)
{
    // Explicitly use service account credentials by specifying
    // the private key file.
    $client = new BetaAnalyticsDataClient([
        'credentials' => $credentialsJsonPath
    ]);

    return $client;
}

Node.js

  /** TODO(developer): Uncomment this variable and replace with a valid path to
   *  the credentials.json file for your service account downloaded from the
   *  Cloud Console.
   */
  // credentialsJsonPath = '/path/to/credentials.json';

  // Imports the Google Analytics Data API client library.
  const {BetaAnalyticsDataClient} = require('@google-analytics/data');

  // Explicitly use service account credentials by specifying
  // the private key file.
  const analyticsDataClient = new BetaAnalyticsDataClient({
    keyFilename: credentialsJsonPath,
  });

क्लाइंट लाइब्रेरी का इस्तेमाल नहीं किया जा रहा है

अगर क्लाइंट लाइब्रेरी के बिना Reporting API v4 का इस्तेमाल किया जा रहा था और आपको Data API v1 के साथ भी ऐसा करना जारी रखना है, तो अब भी अपने क्रेडेंशियल इस्तेमाल किए जा सकते हैं.

आपको नए एचटीटीपी एंडपॉइंट और खोज से जुड़े दस्तावेज़ का इस्तेमाल करना होगा, जो कि Data API से मिलता है:

अगर आपके कोड के लिए डिस्कवरी दस्तावेज़ का इस्तेमाल किया जा रहा है, तो आपको इसे Data API v1 से मिले, खोज से जुड़े दस्तावेज़ में अपडेट करना होगा:

एंडपॉइंट को अपडेट करने के बाद, अपनी JSON क्वेरी अपडेट करने के लिए, आपको अनुरोध के नए स्ट्रक्चर और Data API के सिद्धांतों के बारे में जानकारी हासिल करनी होगी.

कोर रिपोर्टिंग

शिकायत करने के उपलब्ध तरीके

Reporting API v4 ने मुख्य रिपोर्टिंग की सुविधा को ऐक्सेस करने के लिए, एक ही तरीका batchGet दिया है. Data API v1, रिपोर्टिंग के कई मुख्य तरीके उपलब्ध कराता है. इनमें से किसी एक को चुना जा सकता है:

  • runReport यह तरीका आपके Google Analytics इवेंट डेटा की कस्टमाइज़ की गई रिपोर्ट दिखाता है. यह पिवट फ़ंक्शन के साथ काम नहीं करता और आसान रिपोर्ट क्वेरी के लिए यह एक पसंदीदा तरीका है.
  • runPivotReport यह तरीका आपके Google Analytics इवेंट डेटा की पसंद के मुताबिक बनाई गई पिवट रिपोर्ट दिखाता है. Reporting API v4 में मौजूद पिवट की तरह ही, हर पिवट रिपोर्ट रिस्पॉन्स में दिखने वाले डाइमेंशन कॉलम और पंक्तियों की जानकारी देता है.
  • batchRunReports यह runReport तरीके का बैच वर्शन है. इसकी मदद से, एक एपीआई कॉल का इस्तेमाल करके कई रिपोर्ट जनरेट की जा सकती हैं.
  • batchRunPivotReports यह runPivotReport तरीके का बैच वर्शन है. इसकी मदद से, एक एपीआई कॉल का इस्तेमाल करके कई रिपोर्ट जनरेट की जा सकती हैं.

रिपोर्ट करने के कई तरीके होने का मकसद ज़्यादा आसान होता है. इनमें कुछ तरीके, दूसरों के मुकाबले ज़्यादा जटिल सुविधाओं के साथ काम करते हैं (पिवट, बैचिंग), लेकिन अनुरोध का एक जैसा स्ट्रक्चर शेयर किया जाता है.

एपीआई स्कीमा में हुए बदलाव

Reporting API और Data API, दोनों की रिपोर्टिंग की क्षमताएं मुख्य रूप से, उनके स्कीमा से तय होती हैं. जैसे, रिपोर्टिंग क्वेरी में काम करने वाले डाइमेंशन और मेट्रिक. दोनों एपीआई के एपीआई स्कीमा में काफ़ी फ़र्क़ है. इसकी वजह है, Universal Analytics और Google Analytics 4 के सिद्धांत.

  • Data API के साथ काम करने वाले डाइमेंशन और मेट्रिक की मौजूदा सूची के बारे में जानें. फ़िलहाल, सभी डाइमेंशन और मेट्रिक एक-दूसरे के साथ काम करते हैं. इसलिए, काम करने वाले कॉम्बिनेशन तय करने के लिए, डाइमेंशन और मेट्रिक्स एक्सप्लोरर का इस्तेमाल करने की ज़रूरत नहीं होती. आने वाले समय में यह व्यवहार बदल जाएगा.
  • Google Analytics 4 के कस्टम डाइमेंशन को Data API v1 कस्टम डाइमेंशन सिंटैक्स का इस्तेमाल करके ऐक्सेस किया जा सकता है. इसका इस्तेमाल Reporting API v4 के ga:dimensionXX डाइमेंशन स्लॉट के बजाय किया जाना चाहिए.
  • Google Analytics 4 में कस्टम मेट्रिक को Data API v1 कस्टम मेट्रिक सिंटैक्स का इस्तेमाल करके ऐक्सेस किया जा सकता है. इसका इस्तेमाल Reporting API v4 के ga:metricXX मेट्रिक स्लॉट के बजाय.
  • यूनिवर्सल Analytics में पाए जाने वाले कुछ डाइमेंशन और मेट्रिक, सीधे तौर पर Google Analytics 4 में मिलते-जुलते हैं. ज़्यादा जानकारी के लिए, UA/GA4 API स्कीमा की तुलना करने वाला चार्ट देखें.
  • Google Analytics 4 में, डाइमेंशन और मेट्रिक के नामों में अब ga: प्रीफ़िक्स नहीं है.
  • Universal Analytics में मौजूद कुछ सुविधाएं अभी GA4 में उपलब्ध नहीं हैं जैसे कि Campaign Manager, DV360, और Search Ads 360 इंटिग्रेशन. Google Analytics 4 में यह फ़ंक्शन लागू होने के बाद, Data API साथ काम करेगा. साथ ही, एपीआई स्कीमा में नए डाइमेंशन और मेट्रिक जोड़ दी जाएंगी.

इकाइयां

Google Analytics 4 में, Universal Analytics में व्यू (प्रोफ़ाइल) का कोई कॉन्सेप्ट नहीं है. इस वजह से, Data API v1 रिपोर्टिंग अनुरोध में कहीं भी कोई viewId पैरामीटर नहीं होता. इसके बजाय, Data API v1 तरीकों को कॉल करते समय, अनुरोध के यूआरएल पाथ में संख्या वाली Google Analytics 4 प्रॉपर्टी का आईडी होना चाहिए. यह व्यवहार Reporting API v4 से अलग होता है. यह रिपोर्टिंग इकाई की पहचान करने के लिए, व्यू (प्रोफ़ाइल) आईडी का इस्तेमाल करती है.

Data API v1

Data API v1 के मामले में, संख्या वाली Google Analytics 4 प्रॉपर्टी का आईडी, यूआरएल पाथ में देना ज़रूरी है.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport

Reporting API v4

Reporting API v4 के लिए Universal Analytics व्यू (प्रोफ़ाइल) आईडी, रिपोर्ट क्वेरी के मुख्य हिस्से में होना ज़रूरी है.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",

    ....

अगर Data API क्लाइंट लाइब्रेरी का इस्तेमाल किया जा रहा है, तो अनुरोध के यूआरएल पाथ में मैन्युअल तरीके से बदलाव करने की ज़रूरत नहीं है. ज़्यादातर एपीआई क्लाइंट ऐसा property पैरामीटर देते हैं जो properties/GA4_PROPERTY_ID के तौर पर स्ट्रिंग होना चाहिए. क्लाइंट लाइब्रेरी को इस्तेमाल करने के उदाहरणों के लिए, आसानी से सिखाने वाली गाइड देखें.

तारीख सीमाएं

Reporting API v4 और Data API v1, दोनों में तारीख की एक से ज़्यादा सीमाएं इस्तेमाल की जा सकती हैं. ये सीमाएं, रिपोर्टिंग अनुरोध में dateRanges फ़ील्ड का इस्तेमाल करके तय की जाती हैं. दोनों एपीआई एक ही तारीख का इनपुट फ़ॉर्मैट शेयर करते हैं. इनमें तारीख के लिए बिलकुल सही वैल्यू YYYY-MM-DD या मिलती-जुलती तारीख , जैसे कि yesderday, today, 7daysAgo वगैरह को स्वीकार की जाती हैं.

Data API v1 के अनुरोध में तारीख की चार सीमाएं हो सकती हैं. वहीं, Reporting API v4 में एक रिपोर्ट के अनुरोध में तारीख की दो सीमाएं शामिल की जा सकती हैं.

Data API v1 के हर dateRange में एक वैकल्पिक name फ़ील्ड हो सकता है. इसका इस्तेमाल, जवाब में तारीख की सीमा की जानकारी देने के लिए किया जा सकता है. अगर name नहीं दिया जाता है, तो तारीख की सीमा का नाम अपने-आप जनरेट हो जाता है.

जब Data API v1 के किसी अनुरोध में तारीख की एक से ज़्यादा सीमाएं दी जाती हैं, तो रिस्पॉन्स में एक नया dateRange डाइमेंशन अपने-आप जुड़ जाता है. साथ ही, डाइमेंशन की वैल्यू के तौर पर तारीख की सीमा के नाम का इस्तेमाल किया जाता है. ध्यान रखें कि यह तरीका Reporting API v4 से अलग होता है. यह सुविधा, तारीख की सीमा के लिए हर लाइन में मेट्रिक वैल्यू के ग्रुप के तौर पर डेटा दिखाती है.

Data API v1 अनुरोध

अनुरोध में हर dateRange वैल्यू के लिए, एक name फ़ील्ड का इस्तेमाल करना ज़रूरी नहीं होता. तारीख की इस सीमा के नाम का इस्तेमाल, रिस्पॉन्स में dateRange डाइमेंशन की वैल्यू के तौर पर किया जाएगा.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "country"
    }
  ],
  "dateRanges": [
    {
      "startDate": "2020-01-01",
      "endDate": "2020-01-31",
      "name": "year_ago"
    },
    {
      "startDate": "2021-01-01",
      "endDate": "2021-01-31",
      "name": "current_year"
    }
  ]
}

Data API v1 रिस्पॉन्स

जवाब में एक और dateRange डाइमेंशन अपने-आप शामिल हो जाता है. dateRange डाइमेंशन के मान में तारीख की सीमा का नाम होता है. यह सीमा या तो dateRange.name फ़ील्ड से मिलती है या अपने-आप जनरेट होती है.

....

"dimensionHeaders": [
  {
    "name": "country"
  },
  {
    "name": "dateRange"
  }
],

....

"rows": [

....

  {
    "dimensionValues": [
      {
        "value": "Japan"
      },
      {
        "value": "year_ago"
      }
    ],
    "metricValues": [
      {
        "value": "253286"
      }
    ]
  },
  {
    "dimensionValues": [
      {
        "value": "Japan"
      },
      {
        "value": "current_year"
      }
    ],
    "metricValues": [
      {
        "value": "272582"
      }
    ]
  },

....

Reporting API v4 अनुरोध

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [
        {
          "startDate": "2020-01-01",
          "endDate": "2020-01-31",
        },
        {
          "startDate": "2021-01-01",
          "endDate": "2021-01-31",
        }
      ],
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:country"
        }
      ]
    }
  ]
}

Reporting API v4 रिस्पॉन्स

Reporting API v4 में, तारीख की हर सीमा की वैल्यू को metrics फ़ील्ड में ग्रुप किया जाता है:

{
  "dimensions": [
    "Japan"
  ],
  "metrics": [
    {
      "values": [
        "253286"
      ]
    },
    {
      "values": [
        "272582"
      ]
    }
  ]
},

क्रम से लगाना

Data API v1 रिपोर्ट क्वेरी के ऑर्डर करने के व्यवहार को orderBys फ़ील्ड का इस्तेमाल करके कंट्रोल किया जा सकता है. यह फ़ील्ड, Reporting API v4 के orderBys फ़ील्ड की तरह ही काम करता है.

Data API v1 में OrderBy की खास जानकारी बदल गई है. हर OrderBy में, इनमें से कोई एक चीज़ हो सकती है:

  • DimensionOrderBy, नतीजों को डाइमेंशन की वैल्यू के हिसाब से क्रम में लगाता है.
  • MetricOrderBy, मेट्रिक की वैल्यू के मुताबिक नतीजों को क्रम से लगाता है.
  • PivotOrderBy, इसका इस्तेमाल पिवट क्वेरी में करता है और यह पिवट कॉलम ग्रुप में मेट्रिक की वैल्यू के हिसाब से नतीजों को क्रम से लगाता है.

Reporting API v4 के साथ काम करने वाले DELTA, SMART, HISTOGRAM_BUCKET ऑर्डर टाइप को, Data API v1 में लागू नहीं किया गया है.

Data API v1 का OrderType.NUMERIC v1 का ऑर्डर करने का टाइप, Reporting API v4 की OrderType.DIMENSION_AS_INTEGER की वैल्यू के बराबर होता है.

Data API v1 अनुरोध

इस उदाहरण में एक सैंपल क्वेरी दिखाई गई है, जिसमें देश के हिसाब से सेशन की संख्या रिपोर्ट की गई है. इसमें पंक्तियों को sessions मेट्रिक के हिसाब से घटते क्रम में दिखाया गया है.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "country"
    }
  ],
  "dateRanges": [
    {
      "startDate": "yesterday",
      "endDate": "today"
    }
  ],
  "orderBys": [
    {
      "metric": {
        "metricName": "sessions"
      },
      "desc": true
    }
  ]
}

Data API v1 रिस्पॉन्स

{
  "dimensionHeaders": [
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "sessions",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "510449"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Japan"
        }
      ],
      "metricValues": [
        {
          "value": "283430"
        }
      ]
    },

....

  ],
  "totalSize": 212,
  "metadata": {}
}

Reporting API v4 अनुरोध

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [
        {
          "startDate": "yesterday",
          "endDate": "today"
        }
      ],
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:country"
        }
      ],
      "orderBys": [
        {
          "fieldName": "ga:sessions",
          "sortOrder": "DESCENDING"
        }
      ]
    }
  ]
}

Reporting API v4 रिस्पॉन्स

{
"reports": [
  {

....

    "data": {
      "rows": [
        {
          "dimensions": [
            "United States"
          ],
          "metrics": [
            {
              "values": [
                "510449"
              ]
            }
          ]
        },
        {
          "dimensions": [
            "Japan"
          ],
          "metrics": [
            {
              "values": [
                "283430"
              ]
            }
          ]
        },

....

    }
  ]
}

फ़िल्टर करना

Data API v1 के dimensionFilter और metricFilter क्लॉज़ का इस्तेमाल करके, एपीआई को सिर्फ़ खास डाइमेंशन या मेट्रिक वैल्यू का डेटा दिखाने के लिए कहा जा सकता है. यह Reporting API v4 के dimensionFilterClauses और metricFilterClauses की तरह है.

Data API v1, Reporting API v4 के filtersExpression क्लॉज़ जैसी फ़िल्टर एक्सप्रेशन स्ट्रिंग के साथ काम नहीं करता. इन एक्सप्रेशन को dimensionFilter और metricFilter क्लॉज़ का इस्तेमाल करके फिर से लिखा जाना चाहिए.

Data API v1 अनुरोध

अनुरोध का यह नमूना, उपयोगकर्ताओं के विज़िट किए गए कुछ पेज पाथ के लिए सेशन की गिनती की सूची दिखाता है.

dimensionFilter क्लॉज़ का इस्तेमाल सिर्फ़ उन लाइनों को दिखाने के लिए किया जाता है जिनमें pagePath डाइमेंशन वैल्यू हों, जो /webstore/ से शुरू होती हों और जिनमें action=a12345 स्ट्रिंग हो.

metricFilter क्लॉज़, runReport तरीके से सिर्फ़ वे लाइन दिखाने के लिए कहता है जिनमें sessions मेट्रिक वैल्यू 1,000 से ज़्यादा हों.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "pagePath"
    }
  ],
  "dimensionFilter": {
    "andGroup": {
      "expressions": [
        {
          "filter": {
            "stringFilter": {
              "value": "/webstore/",
              "matchType": "BEGINS_WITH"
            },
            "fieldName": "pagePath"
          }
        },
        {
          "filter": {
            "stringFilter": {
              "matchType": "CONTAINS",
              "value": "action=a12345"
            },
            "fieldName": "pagePath"
          }
        }
      ]
    }
  },
  "metricFilter": {
    "filter": {
      "numericFilter": {
        "value": {
          "int64Value": 1000
        },
        "operation": "GREATER_THAN"
      },
      "fieldName": "sessions"
    }
  },
  "dateRanges": [
    {
      "startDate": "yesterday",
      "endDate": "today"
    }
  ]
}

Reporting API v4 अनुरोध

सैंपल अनुरोध, Data API v1 के उदाहरण से मिलता-जुलता है. यह उन पेज पाथ के लिए सेशन की गिनती की सूची दिखाता है जिन पर उपयोगकर्ता जाते हैं.

dimensionFilterClauses फ़ील्ड का इस्तेमाल सिर्फ़ /webstore/ से शुरू होने वाली pagePath डाइमेंशन वैल्यू वाली लाइन को दिखाने के लिए किया जाता है, जिसमें action=a12345 स्ट्रिंग होती है.

metricFilterClauses फ़ील्ड का इस्तेमाल सिर्फ़ उन पंक्तियों को दिखाने के लिए किया जाता है जिनमें ga:sessions मेट्रिक की वैल्यू 1,000 से ज़्यादा होती हैं.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:pagePath"
        }
      ],
      "metricFilterClauses": [
        {
          "filters": [
            {
              "metricName": "ga:sessions",
              "operator": "GREATER_THAN",
              "comparisonValue": "1000"
            }
          ]
        }
      ],
      "dimensionFilterClauses": [
        {
          "filters": [
            {
              "dimensionName": "ga:pagePath",
              "operator": "BEGINS_WITH",
              "expressions": [
                "/webstore/"
              ]
            },
            {
              "dimensionName": "ga:pagePath",
              "operator": "PARTIAL",
              "expressions": [
                "action=a12345"
              ]
            }
          ],
          "operator": "AND"
        }
      ],
      "dateRanges": [
        {
          "startDate": "yesterday",
          "endDate": "today"
        }
      ]
    }
  ]
}

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

Data API v1 में कई पेजों के रिस्पॉन्स के तौर पर नतीजे दिखाने के लिए, limit और offset फ़ील्ड का इस्तेमाल किया जाता है. वहीं, Reporting API v4 में pageToken और pageSize का इस्तेमाल किया जाता है.

Data API v1 के पिवट अनुरोधों के लिए, हर पिवट के पेज पर अलग-अलग पेज नंबर लागू करने के लिए, पिवट ऑब्जेक्ट के limit और offset फ़ील्ड का इस्तेमाल किया जाना चाहिए. अब हर पिवट ऑब्जेक्ट के लिए limit फ़ील्ड ज़रूरी है.

डिफ़ॉल्ट रूप से, Data API v1 इवेंट डेटा की ज़्यादा से ज़्यादा पहली 10,000 लाइनें दिखाता है, जबकि Reporting API v4 की डिफ़ॉल्ट वैल्यू 1,000 लाइनें होती हैं.

क्वेरी से मेल खाने वाली पंक्तियों की कुल संख्या, Data API v1 के रिस्पॉन्स में rowCount फ़ील्ड का इस्तेमाल करके दिखाई जाती है, जो Reporting API v4 की तरह है.

Data API v1 अनुरोध

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [

....

  ],
  "metrics": [

....

  ],
  "dimensions": [

....

  ],
  "limit": 5,
  "offset": 15
}

Data API v1 रिस्पॉन्स

{
  "dimensionHeaders": [

....

  ],
  "metricHeaders": [

....

  ],
  "rows": [

....

  ],
  "rowCount": 228,
}

Reporting API v4 अनुरोध

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [

....

      ],
      "metrics": [

....

      ],
      "dimensions": [

....

      ],
      "pageSize": 5,
      "pageToken": "5"

    }
  ]
}

Reporting API v4 रिस्पॉन्स

{
  "reports": [
    {

....

      "data": {
        "rows": [

....

        ],

....

        "rowCount": 225,
      },
      "nextPageToken": "15"
    }
  ]
}

मेट्रिक एग्रीगेशन

Data API v1 सिर्फ़ तब एग्रीगेशन वैल्यू कैलकुलेट करता है, जब किसी अनुरोध में metricAggregations फ़ील्ड के बारे में बताया गया हो. वहीं दूसरी ओर, Reporting API v4 हर मेट्रिक के लिए डिफ़ॉल्ट रूप से कुल, कम से कम, और ज़्यादा से ज़्यादा वैल्यू दिखाता है. हालांकि, ऐसा तब तक होता है, जब तक hideTotals और hideValueRanges फ़ील्ड को true पर सेट नहीं किया जाता.`

Data API v1 अनुरोध

एग्रीगेशन का हिसाब सिर्फ़ तब लगाया जाएगा, जब किसी अनुरोध में metricAggregations फ़ील्ड के बारे में बताया गया हो.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "metricAggregations": [
    "TOTAL",
    "MAXIMUM",
    "MINIMUM"
  ],
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "country"
    }
  ],
  "dateRanges": [
    {
      "startDate": "yesterday",
      "endDate": "today"
    }
  ]
}

Data API v1 रिस्पॉन्स

मेट्रिक की एग्रीगेट की गई लाइनें, किसी रिस्पॉन्स के totals, minimum, और maximum फ़ील्ड में दिखती हैं. एग्रीगेट की गई मेट्रिक लाइनों के लिए, dimensionValues फ़ील्ड में RESERVED_TOTAL, RESERVED_MAX या RESERVED_MIN जैसी खास वैल्यू होती है.

{
  "dimensionHeaders": [

  ....

  ],
  "metricHeaders": [

  ....

  ],
  "rows": [

  ....

  ],
  "totals": [
    {
      "dimensionValues": [
        {
          "value": "RESERVED_TOTAL"
        },
        {
          "value": "RESERVED_TOTAL"
        }
      ],
      "metricValues": [
        {
          "value": "6026053"
        }
      ]
    }
  ],
  "maximums": [
    {
      "dimensionValues": [
        {
          "value": "RESERVED_MAX"
        },
        {
          "value": "RESERVED_MAX"
        }
      ],
      "metricValues": [
        {
          "value": "493655"
        }
      ]
    }
  ],
  "minimums": [
    {
      "dimensionValues": [
        {
          "value": "RESERVED_MIN"
        },
        {
          "value": "RESERVED_MIN"
        }
      ],
      "metricValues": [
        {
          "value": "1"
        }
      ]
    }
  ],

....

}

Reporting API v4 अनुरोध

देश के हिसाब से सेशन की संख्या दिखाने के लिए सैंपल अनुरोध.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [
        {
          "startDate": "yesterday",
          "endDate": "today"
        }
      ],
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:country"
        }
      ],
    }
  ]
}

Reporting API v4 रिस्पॉन्स

Reporting API v4 के रिस्पॉन्स में totals, minimums, और maximums फ़ील्ड डिफ़ॉल्ट रूप से मौजूद होते हैं.

{
  "reports": [
    {
      "columnHeader": {

         ....

      },
      "data": {
        "rows": [

         ....

        ],

       ....

        "totals": [
          {
            "values": [
              "4493363"
            ]
          }
        ],
        "minimums": [
          {
            "values": [
              "1"
            ]
          }
        ],
        "maximums": [
          {
            "values": [
              "684005"
            ]
          }
        ]

      }
    }
  ]
}

पिवट

Data API v1 का इस्तेमाल करके, runPivotReport में पिवट फ़ंक्शन का इस्तेमाल किया जा सकता है. साथ ही, यह batchRunPivotReports रिपोर्टिंग के तरीकों में भी काम करती है.

Reporting API v4, batchGet तरीके का इस्तेमाल करके रिपोर्टिंग क्वेरी में पिवट शामिल करने की अनुमति देता है.

Data API v1 में पिवट को Reporting API v4 की तुलना में, इस तरह से लागू किया जाता है कि हर रिस्पॉन्स लाइन, टेबल की एक ही सेल को दिखाती हो. वहीं, Reporting API v4 में एक रिस्पॉन्स वाली पंक्ति, पूरी टेबल लाइन को दिखाती है.

Data API v1

नीचे runPivotReport की क्वेरी के लिए, Data API v1 रिस्पॉन्स का एक फ़्रैगमेंट दिया गया है. पिवटिंग रिपोर्ट का हर सेल अलग-अलग दिखाया जाता है:

    "rows": [
      {
        "dimensionValues": [
          {
            "value": "Albania"
          },
          {
            "value": "Edge"
          }
        ],
        "metricValues": [
          {
            "value": "1701"
          }
        ]
      },

Reporting API v4

नीचे batchGet क्वेरी के लिए Reporting API v4 रिस्पॉन्स का एक फ़्रैगमेंट दिया गया है. एक जवाब वाली पंक्ति, पूरी टेबल लाइन को दिखाती है. इसमें, pivotValueRegions में पिवट के लिए सभी मेट्रिक वैल्यू शामिल होती हैं:

      "data": {
        "rows": [
          {
            "dimensions": [
              "Albania"
            ],
            "metrics": [
              {
                "values": [
                  "42394"
                ],
                "pivotValueRegions": [
                  {
                    "values": [
                      "24658",
                      "17208",
                      "132"
                    ]
                  }
                ]
              }
            ]
          },

Data API v1 में, runPivotReport या batchRunPivotReports क्वेरी का हर डाइमेंशन, पिवट ऑब्जेक्ट में तय किया जाना चाहिए. अगर किसी पिवट क्वेरी के किसी भी पिवट में डाइमेंशन का इस्तेमाल नहीं किया जाता है, तो वह रिपोर्ट में नहीं दिखेगा.

Data API v1 के पिवटिंग कॉलम की जानकारी, Reporting API v4 के dimensions फ़ील्ड के बजाय fieldNames फ़ील्ड का इस्तेमाल करके दी गई है.

अगर Data API v1 रिपोर्टिंग के अनुरोध में डाइमेंशन को फ़िल्टर करना है, तो अनुरोध के स्कोप वाले डाइमेंशन फ़िल्टर का इस्तेमाल करना ज़रूरी है. यह Reporting API v4 से अलग है, जो किसी पिवट ऑब्जेक्ट में dimensionFilterClauses की जानकारी को स्वीकार करता है.

Data API v1 का offset फ़ील्ड, Reporting API v4 के startGroup फ़ील्ड की तरह ही काम करता है.

Data API v1 की सीमा फ़ील्ड, Reporting API v4 के maxGroupCount से मिलता-जुलता है. इसका इस्तेमाल, रिपोर्ट के एलिमेंट की संख्या को सीमित करने के लिए किया जाना चाहिए.

जब तक हर पिवट के लिए limit पैरामीटर का प्रॉडक्ट 1,00,000 से ज़्यादा नहीं होता, तब तक Data API v1 कई पिवट के साथ काम करता है. Reporting API v4, सिर्फ़ एक पिवट डाइमेंशन के साथ काम करता है.

डिफ़ॉल्ट रूप से, Data API v1 रिपोर्ट की पहली मेट्रिक के ज़रिए पिवट में डाइमेंशन को ऑर्डर करता है. यह तरीका Reporting API v4 से अलग है. इस वर्शन में, पिवट का क्रम, अनुरोध की गई मेट्रिक की "कुल" के घटते क्रम में तय किया जाता है. Data API v1 में क्रम से लगाने के लिए, पिवट स्पेसिफ़िकेशन के orderBys फ़ील्ड का इस्तेमाल करें.

Data API v1 अनुरोध

यह Data API v1 पिवट क्वेरी, देश के हिसाब से सेशन की संख्या की रिपोर्ट बनाती है. यह रिपोर्ट browser डाइमेंशन के हिसाब से बनाई जाती है. ध्यान दें कि क्वेरी में orderBys, limit, offset फ़ील्ड का इस्तेमाल होता है. इससे, Reporting API v4 की मिलती-जुलती क्वेरी के व्यवहार को फिर से दिखाने के लिए, क्वेरी के क्रम और पेज पर नंबर डालने की सेटिंग को सुरक्षित रखा जाता है.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runPivotReport

{
  "dateRanges": [
    {
      "startDate": "2021-01-01",
      "endDate": "2021-01-30"
    }
  ],
  "pivots": [
    {
      "fieldNames": [
        "country"
      ],
      "limit": 250,
      "orderBys": [
        {
          "dimension": {
            "dimensionName": "country"
          }
        }
      ]
    },
    {
      "fieldNames": [
        "browser"
      ],
      "offset": 3,
      "limit": 3,
      "orderBys": [
        {
          "metric": {
            "metricName": "sessions"
          },
          "desc": true
        }
      ]
    }
  ],
  "metrics": [
    {
      "name": "sessions"
    }
  ],
  "dimensions": [
    {
      "name": "country"
    },
    {
      "name": "browser"
    }
  ]
}

Data API v1 रिस्पॉन्स

{
  "pivotHeaders": [
    {
      "pivotDimensionHeaders": [
        {
          "dimensionValues": [
            {
              "value": "(not set)"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Albania"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Algeria"
            }
          ]
        }
      ],
      "rowCount": 234
    },
    {
      "pivotDimensionHeaders": [
        {
          "dimensionValues": [
            {
              "value": "Safari"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Edge"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Opera"
            }
          ]
        }
      ],
      "rowCount": 124
    }
  ],
  "dimensionHeaders": [
    {
      "name": "country"
    },
    {
      "name": "browser"
    }
  ],
  "metricHeaders": [
    {
      "name": "sessions",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        },
        {
          "value": "Safari"
        }
      ],
      "metricValues": [
        {
          "value": "2531"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        },
        {
          "value": "Edge"
        }
      ],
      "metricValues": [
        {
          "value": "1701"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "(not set)"
        },
        {
          "value": "Opera"
        }
      ],
      "metricValues": [
        {
          "value": "1564"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Albania"
        },
        {
          "value": "Safari"
        }
      ],
      "metricValues": [
        {
          "value": "2531"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Albania"
        },
        {
          "value": "Edge"
        }
      ],
      "metricValues": [
        {
          "value": "1701"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Albania"
        },
        {
          "value": "Opera"
        }
      ],
      "metricValues": [
        {
          "value": "1564"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Algeria"
        },
        {
          "value": "Safari"
        }
      ],
      "metricValues": [
        {
          "value": "237"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Algeria"
        },
        {
          "value": "Edge"
        }
      ],
      "metricValues": [
        {
          "value": "44"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Algeria"
        },
        {
          "value": "Opera"
        }
      ],
      "metricValues": [
        {
          "value": "22"
        }
      ]
    },

....

  ],

....

}

Reporting API v4 अनुरोध

यह Reporting API v4 पिवट क्वेरी, देश के हिसाब से सेशन की संख्या की रिपोर्ट बनाती है. यह रिपोर्ट ga:browser डाइमेंशन के हिसाब से जनरेट की जाती है.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dateRanges": [
        {
          "startDate": "2021-01-01",
          "endDate": "2021-01-30"
        }
      ],
      "metrics": [
        {
          "expression": "ga:sessions"
        }
      ],
      "dimensions": [
        {
          "name": "ga:country"
        }
      ],
      "pivots": [
        {
          "dimensions": [
            {
              "name": "ga:browser"
            }
          ],
          "startGroup": 3,
          "maxGroupCount": 3,
          "metrics": [
            {
              "expression": "ga:sessions"
            }
          ]
        }
      ]
    }
  ]
}

Reporting API v4 रिस्पॉन्स

{
  "reports": [
    {
      "columnHeader": {
        "dimensions": [
          "ga:country"
        ],
        "metricHeader": {
          "metricHeaderEntries": [
            {
              "name": "ga:sessions",
              "type": "INTEGER"
            }
          ],
          "pivotHeaders": [
            {
              "pivotHeaderEntries": [
                {
                  "dimensionNames": [
                    "ga:browser"
                  ],
                  "dimensionValues": [
                    "Edge"
                  ],
                  "metric": {
                    "name": "ga:sessions",
                    "type": "INTEGER"
                  }
                },
                {
                  "dimensionNames": [
                    "ga:browser"
                  ],
                  "dimensionValues": [
                    "Opera"
                  ],
                  "metric": {
                    "name": "ga:sessions",
                    "type": "INTEGER"
                  }
                },
                {
                  "dimensionNames": [
                    "ga:browser"
                  ],
                  "dimensionValues": [
                    "Samsung Internet"
                  ],
                  "metric": {
                    "name": "ga:sessions",
                    "type": "INTEGER"
                  }
                }
              ],
              "totalPivotGroupsCount": 19
            }
          ]
        }
      },
      "data": {
        "rows": [
          {
            "dimensions": [
              "(not set)"
            ],
            "metrics": [
              {
                "values": [
                  "781283"
                ],
                "pivotValueRegions": [
                  {
                    "values": [
                      "6923",
                      "1385",
                      "66"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "dimensions": [
              "Albania"
            ],
            "metrics": [
              {
                "values": [
                  "42394"
                ],
                "pivotValueRegions": [
                  {
                    "values": [
                      "24658",
                      "17208",
                      "132"
                    ]
                  }
                ]
              }
            ]
          },
          {
            "dimensions": [
              "Algeria"
            ],
            "metrics": [
              {
                "values": [
                  "23208"
                ],
                "pivotValueRegions": [
                  {
                    "values": [
                      "19252",
                      "66",
                      "1582"
                    ]
                  }
                ]
              }
            ]
          },

  ....

        ],

  ....

      }
    }
  ]
}

एक जैसे उपयोगकर्ताओं का ग्रुप

Data API v1 में एक जैसे उपयोगकर्ताओं की रिपोर्ट कॉन्फ़िगर करने के लिए, CohortSpec का इस्तेमाल किया जाता है. यह Reporting API v4 के CohortGroup की जानकारी से मिलता-जुलता है.

फ़िलहाल, Data API v1 में उपलब्ध सभी मेट्रिक, कोहॉर्ट क्वेरी के साथ काम करती हैं. वहीं Reporting API v4 में, सिर्फ़ खास मेट्रिक के सबसेट को कोहॉर्ट क्वेरी में इस्तेमाल करने की अनुमति मिलती है.

Data API v1 कोहॉर्ट के अनुरोध में, cohortActiveUsers मेट्रिक का होना ज़रूरी है.

Data API v1 और Reporting API v4, दोनों के लिए एक ही अनुरोध में 12 कोहॉर्ट की अनुमति दी जा सकती है.

फ़िलहाल, लाइफ़टाइम वैल्यू (लाइफ़टाइम वैल्यू) मेट्रिक, Data API v1 में काम नहीं करतीं.

कोहॉर्ट मेट्रिक की तुलना

Reporting API v4 में तय की गई ज़्यादातर कोहॉर्ट मेट्रिक को एक्सप्रेशन से बदला जा सकता है, ताकि Data API v1 में एक जैसा नतीजा मिल सके. ऐसा नीचे दिए गए चार्ट के मुताबिक किया गया है.

Reporting API v4 मेट्रिक का नाम Data API v1 मेट्रिक का नाम या एक्सप्रेशन
ga:cohortActiveUsers cohortActiveUsers
ga:cohortTotalUsers cohortTotalUsers
ga:cohortRetentionRate "expression": "cohortActiveUsers/cohortTotalUsers" को शामिल करें
ga:cohortRevenuePerUser "expression": "totalRevenue/cohortActiveUsers"
ga:cohortVisitDurationPerUser "expression": "userengagementDuration/cohortActiveUsers"
ga:cohortAppviewsPerUser "expression": "screenPageViews/cohortActiveUsers"
ga:cohortPageviewsPerUser "expression": "screenPageViews/cohortActiveUsers"
ga:cohortSessionsPerUser "expression": "सेशन/cohortActiveUsers"
ga:cohortGoalCompletionsPerUser "expression": "eventCount/cohortActiveUsers" साथ कर दिया जाता है. साथ ही, लक्ष्य पूरा होने के मनचाहे इवेंट के हिसाब से eventName के हिसाब से डाइमेंशन फ़िल्टर लगाया जा सकता है.

Data API v1 अनुरोध

सैंपल क्वेरी, जो उन उपयोगकर्ताओं के ग्रुप को कॉन्फ़िगर करती है जिनका पहला सेशन 03-01-2021 के हफ़्ते में हुआ था. सक्रिय उपयोगकर्ताओं की संख्या और उपयोगकर्ता को अपने साथ जोड़े रखने की दर का पता लगाने के लिए, पांच हफ़्तों तक कोहॉर्ट के लिए रखा जाता है. इसमें WEEKLY जानकारी का इस्तेमाल किया जाता है.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "name": "cohort",
        "dateRange": {
          "startDate": "2021-01-03",
          "endDate": "2021-01-09"
        }
      }
    ],
    "cohortsRange": {
      "startOffset": 0,
      "endOffset": 4,
      "granularity": "WEEKLY"
    }
  },
  "metrics": [
    {
      "name": "cohortActiveUsers"
    },
    {
      "expression": "cohortActiveUsers/cohortTotalUsers",
      "name": "cohortRetentionRate"
    }
  ],
  "dimensions": [
    {
      "name": "cohort"
    },
    {
      "name": "cohortNthWeek"
    }
  ]
}

Data API v1 रिस्पॉन्स

{
  "dimensionHeaders": [
    {
      "name": "cohort"
    },
    {
      "name": "cohortNthWeek"
    }
  ],
  "metricHeaders": [
    {
      "name": "cohortActiveUsers",
      "type": "TYPE_INTEGER"
    },
    {
      "name": "cohortRetentionRate",
      "type": "TYPE_FLOAT"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0000"
        }
      ],
      "metricValues": [
        {
          "value": "4268816"
        },
        {
          "value": "0.999913800857494"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0001"
        }
      ],
      "metricValues": [
        {
          "value": "241580"
        },
        {
          "value": "0.056586926213534013"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0002"
        }
      ],
      "metricValues": [
        {
          "value": "159390"
        },
        {
          "value": "0.037335003597877253"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0003"
        }
      ],
      "metricValues": [
        {
          "value": "131512"
        },
        {
          "value": "0.030804950079453122"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "cohort"
        },
        {
          "value": "0004"
        }
      ],
      "metricValues": [
        {
          "value": "96793"
        },
        {
          "value": "0.022672482610259947"
        }
      ]
    }
  ],
  "totalSize": 5,
  "metadata": {}
}

Reporting API v4 अनुरोध

सैंपल क्वेरी, जो उन उपयोगकर्ताओं के ग्रुप को कॉन्फ़िगर करती है जिनका पहला सेशन 03-01-2021 के हफ़्ते में हुआ था. सक्रिय उपयोगकर्ताओं की संख्या और उपयोगकर्ता को अपने साथ जोड़े रखने की दर का पता लगाने के लिए, WEEKLY की जानकारी का इस्तेमाल करके, पांच हफ़्तों तक कोहॉर्ट के लिए रखा जाता है.

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests": [
    {
      "viewId": "UA_VIEW_ID",
      "dimensions": [
        {
          "name": "ga:cohort"
        },
        {
          "name": "ga:cohortNthWeek"
        }
      ],
      "metrics": [
        {
          "expression": "ga:cohortActiveUsers"
        },
        {
          "expression": "ga:cohortRetentionRate"
        }
      ],
      "cohortGroup": {
        "cohorts": [
          {
            "name": "cohort",
            "type": "FIRST_VISIT_DATE",
            "dateRange": {
              "startDate": "2021-01-03",
              "endDate": "2021-01-09"
            }
          }
        ]
      }
    }
  ]
}

Reporting API v4 रिस्पॉन्स

{
  "reports": [
    {
      "columnHeader": {
        "dimensions": [
          "ga:cohort",
          "ga:cohortNthWeek"
        ],
        "metricHeader": {
          "metricHeaderEntries": [
            {
              "name": "ga:cohortActiveUsers",
              "type": "INTEGER"
            },
            {
              "name": "ga:cohortRetentionRate",
              "type": "PERCENT"
            }
          ]
        }
      },
      "data": {
        "rows": [
          {
            "dimensions": [
              "cohort",
              "0000"
            ],
            "metrics": [
              {
                "values": [
                  "40793",
                  "100.0"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0001"
            ],
            "metrics": [
              {
                "values": [
                  "3883",
                  "9.518789988478416"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0002"
            ],
            "metrics": [
              {
                "values": [
                  "2165",
                  "5.307283112298679"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0003"
            ],
            "metrics": [
              {
                "values": [
                  "1703",
                  "4.174735861544873"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0004"
            ],
            "metrics": [
              {
                "values": [
                  "1484",
                  "3.637879047875861"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0005"
            ],
            "metrics": [
              {
                "values": [
                  "1103",
                  "2.7038952761503197"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0006"
            ],
            "metrics": [
              {
                "values": [
                  "933",
                  "2.28715711028853"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "cohort",
              "0007"
            ],
            "metrics": [
              {
                "values": [
                  "336",
                  "0.8236707278209496"
                ]
              }
            ]
          }
        ],
        "totals": [
          {
            "values": [
              "52400",
              "16.056676390557204"
            ]
          }
        ],
        "rowCount": 8,
        "minimums": [
          {
            "values": [
              "336",
              "0.8236707278209496"
            ]
          }
        ],
        "maximums": [
          {
            "values": [
              "40793",
              "100.0"
            ]
          }
        ],
        "isDataGolden": true
      }
    }
  ]
}

सैंपलिंग

जब Data API v1 को यह अनुमान होता है कि एलिमेंट की संख्या की सीमा से डेटा क्वालिटी खराब हो जाएगी, तो Data API v1 अपने-आप डेटा सैंपलिंग का इस्तेमाल करता है. अगर तारीख की सीमा के लिए नतीजे का सैंपल लिया गया है, तो RunReportResponse के metadata में, SamplingMetadata से जुड़ी जानकारी होगी. यह रिपोर्टिंग API v4 में मौजूद samplingLevel फ़ील्ड की तरह होगी.

डेटा फ़्रेशनेस यानी डेटा अपडेट होने की फ़्रीक्वेंसी

Data API, Reporting API v4 के isDataGolden फ़ील्ड की वैल्यू नहीं देता. इसका इस्तेमाल यह बताने के लिए किया जाता है कि किसी रिपोर्ट के सभी हिट की प्रोसेसिंग पूरी हो गई है या नहीं. हालांकि, बाद की तारीख पर जब अतिरिक्त प्रोसेसिंग की वजह से क्वेरी की जाती है, तो एक ही रिपोर्ट अलग-अलग नतीजे दिखा सकती है.

(समर्थित नहीं) सेगमेंट

फ़िलहाल, Data API v1 में सेगमेंट का इस्तेमाल नहीं किया जा सकता.

रीयल-टाइम रिपोर्टिंग

Google Analytics 4 प्रॉपर्टी के लिए रीयल-टाइम रिपोर्ट जनरेट करने के लिए, Data API v1 के properties.runRealtimeReport तरीके का इस्तेमाल करें. Universal Analytics प्रॉपर्टी के लिए रीयल-टाइम रिपोर्टिंग की सुविधा, Google Analytics API v3 के data.realtime.get तरीके से दी गई थी.

Data API रीयल-टाइम रिपोर्टिंग स्कीमा, Analytics API v3 के रीयल-टाइम रिपोर्टिंग स्कीमा से अलग होता है. इसकी वजह, Universal Analytics और Google Analytics 4 के सिद्धांत में अंतर है.

Data API v1 अनुरोध

नीचे दिए गए उदाहरण में, Google Analytics API v3 के डिफ़ॉल्ट सॉर्टिंग व्यवहार को बनाए रखने के लिए, Data API v1 क्वेरी के नमूने में एक वैकल्पिक orderBy एलिमेंट जोड़ा गया था.

POST  https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runRealtimeReport
{
  "dimensions": [{ "name": "country" }],
  "metrics": [{ "name": "activeUsers" }],
  "orderBys": [
     {
       "dimension": {
         "dimensionName": "country"
         }
     }
   ]
}

Data API v1 रिस्पॉन्स

{
  "dimensionHeaders": [
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": ""
        }
      ],
      "metricValues": [
        {
          "value": "199"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Afghanistan"
        }
      ],
      "metricValues": [
        {
          "value": "4"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Albania"
        }
      ],
      "metricValues": [
        {
          "value": "136"
        }
      ]
    },

    ....

  ],
  "rowCount": 172
}

Google Analytics API v3 अनुरोध

GET https://analytics.googleapis.com/analytics/v3/data/realtime?ids=ga:UA_VIEW_ID&metrics=rt:activeUsers&dimensions=rt:country

Google Analytics API v3 रिस्पॉन्स

{
  "kind": "analytics#realtimeData",
  "id": "https://www.googleapis.com/analytics/v3/data/realtime?ids=ga:UA_VIEW_ID&dimensions=rt:country&metrics=rt:activeUsers",
  "query": {
    "ids": "ga:UA_VIEW_ID",
    "dimensions": "rt:country",
    "metrics": [
      "rt:activeUsers"
    ],
    "max-results": 10
  },
  "totalResults": 178,
  "profileInfo": {
    "profileId": "XXXXXX",
    "accountId": "XXXXXX",
    "webPropertyId": "UA-XXXXXX",
    "profileName": "View Name",
  },
  "columnHeaders": [
    {
      "name": "rt:country",
      "columnType": "DIMENSION",
      "dataType": "STRING"
    },
    {
      "name": "rt:activeUsers",
      "columnType": "METRIC",
      "dataType": "INTEGER"
    }
  ],
  "totalsForAllResults": {
    "rt:activeUsers": "80351"
  },
  "rows": [
    [
      "(not set)",
      "97"
    ],
    [
      "Afghanistan",
      "2"
    ],
    [
      "Albania",
      "78"
    ],

  ....

  ]
}

(यह विकल्प काम नहीं करता) उपयोगकर्ता गतिविधि की रिपोर्टिंग

फ़िलहाल, Data API v1 में हर उपयोगकर्ता की गतिविधि की रिपोर्ट करने की ऐसी सुविधा काम नहीं करती जो रिपोर्टिंग एपीआई v4 के userActivity.search तरीके से मिलती है.

एपीआई कोटा में बदलाव

मुख्य और रीयल-टाइम कोटा कैटगरी

कोटा के लिए, Data API में अनुरोध की दो कैटगरी होती हैं: मुख्य और रीयल-टाइम. मुख्य रिपोर्टिंग के तरीकों (runReport, getMetadata, runPivotReport, batchRunReports, batchRunPivotReports) के एपीआई अनुरोध, मुख्य कोटे से तय करते हैं. runRealtimeReport तरीके के एपीआई अनुरोध, रीयल-टाइम कोटा के लिए शुल्क लेते हैं.

टोकन कोटा

प्रोजेक्ट के कोटे के अलावा, हर अनुरोध के लिए प्रॉपर्टी के टोकन कोटा का इस्तेमाल किया जाता है. इनसे क्वेरी की जटिलता के आधार पर शुल्क लिया जाता है. एपीआई के कोटा और उसकी सीमाओं के बारे में ज़्यादा जानकारी के लिए, कृपया Data API v1 कोटा से जुड़ा दस्तावेज़ देखें.

किसी Analytics प्रॉपर्टी के लिए सभी कोटे की मौजूदा स्थिति जानने के लिए, कोर या रीयल-टाइम रिपोर्टिंग अनुरोध में returnPropertyQuota को true पर सेट करने की सुविधा होती है. कोटा की स्थिति को PropertyQuota में दिखाया जाएगा.

(समर्थित नहीं) संसाधन आधारित कोटा

Google Analytics 4 की सभी मुख्य रिपोर्ट, पूरे डेटा पर आधारित होती हैं. इसलिए, Reporting API v4 में दिया गया रिसॉर्स आधारित कोटा अब लागू नहीं होता. साथ ही, Data API v1 रिपोर्टिंग अनुरोध में मौजूद useResourceQuotas फ़ील्ड मौजूद नहीं है.

(समर्थित नहीं) अनुरोध प्रति दृश्य (प्रोफ़ाइल) प्रति दिन का कोटा

Google Analytics 4 में कोई व्यू नहीं है, इसलिए requests per view (profile) per day कोटा Data API v1 में मौजूद नहीं है और उसे टोकन कोटा से बदल दिया गया है.