खास जानकारी

Google Analytics Data API v1 की मदद से पिवट टेबल बनाई जा सकती हैं. पिवट टेबल, डेटा की खास जानकारी देने वाला ऐसा टूल है जो आपके डेटा को एक या उससे ज़्यादा डाइमेंशन पर पिवट (घुमाकर) करके टेबल में जानकारी को फिर से व्यवस्थित करके डेटा को विज़ुअलाइज़ करता है.

उदाहरण के लिए, नीचे दी गई रॉ डेटा टेबल देखें:

रॉ डेटा टेबल

इस डेटा का इस्तेमाल करके एक पिवट टेबल बनाई जा सकती है, जिसमें अलग से पिवट के रूप में देश और भाषा के डाइमेंशन चुनकर, ब्राउज़र के आधार पर सेशन के डेटा को बांटा जा सकता है.

पिवट की गई डेटा टेबल

मुख्य रिपोर्ट के साथ शेयर की गई सुविधाएं

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

पिवट रिपोर्टिंग के तरीके

Data API v1, रिपोर्टिंग के इन तरीकों में पिवट फ़ंक्शन के साथ काम करता है:

  • runPivotReport यह तरीका आपके Google Analytics इवेंट डेटा की कस्टमाइज़ की गई पिवट रिपोर्ट दिखाता है. हर पिवट, रिपोर्ट रिस्पॉन्स में दिखने वाले डाइमेंशन कॉलम और पंक्तियों की जानकारी देता है.

  • batchRunPivotReports runPivotReport तरीके का यह बैच वर्शन है. इसकी मदद से, एक एपीआई कॉल का इस्तेमाल करके कई रिपोर्ट जनरेट की जा सकती हैं.

रिपोर्टिंग इकाई चुनना

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

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

जनरेट की गई रिपोर्ट, आपकी तय की गई Google Analytics 4 प्रॉपर्टी में इकट्ठा किए गए Google Analytics के इवेंट डेटा के आधार पर जनरेट होगी.

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

पिवट रिपोर्ट का अनुरोध

पिवट टेबल की मदद से कोई अनुरोध बनाने के लिए, runPivotReport या batchRunPivotReports तरीके का इस्तेमाल करें.

पिवट किए गए डेटा का अनुरोध करने के लिए, RunPivotReportRequest ऑब्जेक्ट बनाया जा सकता है. हम इन अनुरोध पैरामीटर से शुरू करने का सुझाव देते हैं:

  • dateRanges फ़ील्ड में मान्य एंट्री.
  • डाइमेंशन फ़ील्ड में कम से कम एक मान्य एंट्री हो.
  • metrics फ़ील्ड में कम से कम एक मान्य एंट्री हो.
  • पिवट फ़ील्ड में कम से कम दो मान्य पिवट एंट्री.

यहां सुझाए गए फ़ील्ड के साथ अनुरोध का एक नमूना दिया गया है:

HTTP

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runPivotReport
  {
    "dateRanges": [{ "startDate": "2020-09-01", "endDate": "2020-09-15" }],
    "dimensions": [
        { "name": "browser" },
        { "name": "country" },
        { "name": "language" }
      ],
    "metrics": [{ "name": "sessions" }],
    "pivots": [
      {
        "fieldNames": [
          "browser"
        ],
        "limit": 5
      },
      {
        "fieldNames": [
          "country"
        ],
        "limit": 250
      },
      {
        "fieldNames": [
          "language"
        ],
        "limit": 15
      }
    ]
  }

पिवट

रिपोर्ट पिवट तय करने के लिए, अनुरोध के मुख्य हिस्से के pivot फ़ील्ड में पिवट ऑब्जेक्ट का इस्तेमाल करें. हर Pivot, रिपोर्ट रिस्पॉन्स में दिखने वाले डाइमेंशन कॉलम और पंक्तियों की जानकारी देता है.

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

नीचे एक स्निपेट दिया गया है, जो देश के हिसाब से सेशन की संख्या की रिपोर्ट बनाने के लिए, pivots के इस्तेमाल को दिखाता है. इस रिपोर्ट को browser डाइमेंशन के हिसाब से पिवट किया जाता है. ध्यान दें कि क्वेरी, क्रम से लगाने के लिए orderBys फ़ील्ड का इस्तेमाल कैसे करती है. साथ ही, पेज पर नंबर डालना लागू करने के लिए, limit और offset फ़ील्ड का इस्तेमाल करती है.

    "pivots": [
      {
        "fieldNames": [
          "country"
        ],
        "limit": 250,
        "orderBys": [
          {
            "dimension": {
              "dimensionName": "country"
            }
          }
        ]
      },
      {
        "fieldNames": [
          "browser"
        ],
        "offset": 3,
        "limit": 3,
        "orderBys": [
          {
            "metric": {
              "metricName": "sessions"
            },
            "desc": true
          }
        ]
      }
    ],
    ...

डाइमेंशन

डाइमेंशन आपकी वेबसाइट या ऐप्लिकेशन के लिए, इवेंट डेटा की जानकारी देते हैं और उनका ग्रुप बनाते हैं. उदाहरण के लिए, city डाइमेंशन से उस शहर ("पेरिस" या "न्यूयॉर्क") की जानकारी मिलती है जहां से हर इवेंट शुरू हुआ था. रिपोर्ट अनुरोध में, शून्य या ज़्यादा डाइमेंशन दिए जा सकते हैं.

डाइमेंशन को, अनुरोध के मुख्य हिस्से के डाइमेंशन फ़ील्ड में तय किया जाना चाहिए. किसी रिपोर्ट में दिखने के लिए, वे डाइमेंशन, Pivot ऑब्जेक्ट के fieldNames फ़ील्ड में भी शामिल होने चाहिए. अगर किसी पिवट क्वेरी के किसी भी पिवट में डाइमेंशन का इस्तेमाल नहीं किया जाता है, तो वह रिपोर्ट में नहीं दिखेगा. पिवट के fieldNames में हर डाइमेंशन मौजूद नहीं होना चाहिए. डाइमेंशन का इस्तेमाल खास तौर पर फ़िल्टर में किया जा सकता है, किसी पिवट के fieldNames में नहीं.

नीचे एक स्निपेट दिया गया है, जो browser, country, और language पिवट वाली टेबल के लिए, dimension और fieldNames फ़ील्ड के इस्तेमाल को दिखाता है:

    "pivots": [
      {
        "fieldNames": [
          "browser"
        ],
        "limit": 5,
        "orderBys": [
          {
            "metric": {
              "metricName": "sessions"
            },
            "desc": true
          }
        ]
      },
      {
        "fieldNames": [
          "country"
        ],
        "limit": 250,
        "orderBys": [
          {
            "dimension": {
              "dimensionName": "country"
            }
          }
        ]
      },
      {
        "fieldNames": [
          "language"
        ],
        "limit": 10
      }
    ],

मेट्रिक

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

पिवट रिपोर्ट के अनुरोधों में, मेट्रिक को अनुरोध के मुख्य हिस्से के metrics फ़ील्ड का इस्तेमाल करके तय किया जाता है. यह रिपोर्टिंग के मुख्य तरीकों की तरह ही होता है.

नीचे दिए गए उदाहरण में, किसी रिपोर्ट में मेट्रिक की वैल्यू के तौर पर इस्तेमाल की जाने वाली सेशन की संख्या की जानकारी दी गई है:

    "metrics": [
      {
        "name": "sessions"
      }
    ],

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

हर पिवट के लिए एग्रीगेट की गई मेट्रिक वैल्यू की गिनती करने के लिए, पिवट ऑब्जेक्ट के metricAggregations फ़ील्ड का इस्तेमाल करें.

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

नीचे एक क्वेरी का स्निपेट दिया गया है, जिसमें browser पिवट डाइमेंशन के लिए कुल वैल्यू का अनुरोध किया गया है:

"pivots": [
  {
    "fieldNames": [
      "browser"
    ],
    "limit": 10,
    "metricAggregations": [
      "TOTAL",
    ]
  },
  ...

कैलकुलेट की गई मेट्रिक, RunPivotReportResponse ऑब्जेक्ट के एग्रीगेट फ़ील्ड में दिखाई जाती हैं. एग्रीगेट की गई मेट्रिक लाइनों के लिए, dimensionValues फ़ील्ड में RESERVED_TOTAL, RESERVED_MAX या RESERVED_MIN जैसी खास वैल्यू होती है.

  "aggregates": [
    {
      "dimensionValues": [
        {
          "value": "Chrome"
        },
        {
          "value": "RESERVED_TOTAL"
        },
        {
          "value": "RESERVED_TOTAL"
        }
      ],
      "metricValues": [
        {
          "value": "4"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Firefox"
        },
        {
          "value": "RESERVED_TOTAL"
        },
        {
          "value": "RESERVED_TOTAL"
        }
      ],
      "metricValues": [
        {
          "value": "6"
        }
      ]
    },
  ....

  }

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

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

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

नीचे 10 के ऑफ़सेट के साथ अगले पांच language डाइमेंशन पाने के लिए offset और limit फ़ील्ड के इस्तेमाल को दिखाने वाला स्निपेट दिया गया है:

      {
        "fieldNames": [
          "language"
        ],
        "offset": 10,
        "limit": 5
      }

फ़िल्टर करना

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

क्रम से लगाना

पिवट रिपोर्ट क्वेरी के ऑर्डर के व्यवहार को पिवट ऑब्जेक्ट के orderBys फ़ील्ड का इस्तेमाल करके, अलग-अलग कंट्रोल किया जा सकता है. इस ऑब्जेक्ट में OrderBy ऑब्जेक्ट की सूची होती है.

हर OrderBy में, इनमें से कोई एक चीज़ हो सकती है:

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

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

      {
        "fieldNames": [
          "browser"
        ],
        "limit": 5,
        "orderBys": [
          {
            "metric": {
              "metricName": "sessions"
            },
            "desc": true
          }
        ]
      }

जवाब की शिकायत करें

पिवट रिपोर्ट एपीआई अनुरोध का पिवट रिपोर्ट रिस्पॉन्स, मुख्य रूप से एक हेडर और पंक्तियां होती है.

रिस्पॉन्स हेडर

पिवट रिपोर्ट के हेडर में PivotHeaders, DimensionHeaders और MetricHeaders को शामिल होने का विकल्प होता है, जो पिवट रिपोर्ट के कॉलम की सूची बनाते हैं.

उदाहरण के लिए, browser, country, और language पिवट डाइमेंशन वाली रिपोर्ट और sessions मेट्रिक के हेडर इस तरह दिखेंगे:

{
  "pivotHeaders": [
    {
      "pivotDimensionHeaders": [
        {
          "dimensionValues": [
            {
              "value": "Chrome"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Firefox"
            }
          ]
        },
        ...

      ],
      ...
    },
    {
      "pivotDimensionHeaders": [
        {
          "dimensionValues": [
            {
              "value": "United States"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "Canada"
            }
          ]
        },
        ...

      ],
      ...
    },
    {
      "pivotDimensionHeaders": [
        {
          "dimensionValues": [
            {
              "value": "English"
            }
          ]
        },
        {
          "dimensionValues": [
            {
              "value": "French"
            }
          ]
        },
        ...

      ],
      ...
    }
  ],
  "dimensionHeaders": [
    {
      "name": "browser"
    },
    {
      "name": "country"
    },
    {
      "name": "language"
    }
  ],
  "metricHeaders": [
    {
      "name": "sessions",
      "type": "TYPE_INTEGER"
    }
  ],
  ...

}

नीचे दिया गया चार्ट पिवट रिपोर्ट के हर एक कॉम्पोनेंट की भूमिका को दिखाता है, जो पिवट रिपोर्ट को रेंडर करने में मददगार है:

रॉ डेटा टेबल

जवाब वाली पंक्तियां

runPivotReport और batchRunPivotReports चैनल के पिवट रिपोर्ट रिस्पॉन्स, रिपोर्टिंग के मुख्य तरीकों, जैसे कि runReport और batchRunReports के रिस्पॉन्स से अलग होता है. इसमें हर पिवट रिपोर्ट रिस्पॉन्स लाइन, टेबल की एक सेल को दिखाती है, जबकि सामान्य रिपोर्ट में एक रिस्पॉन्स वाली लाइन, पूरी टेबल लाइन को दिखाती है.

यहां browser, country, और language पिवट डाइमेंशन के साथ-साथ sessions मेट्रिक वाली क्वेरी के लिए, पिवट रिपोर्ट में मिले रिस्पॉन्स का एक हिस्सा दिया गया है. पिवट रिपोर्ट का हर सेल अलग-अलग दिखाया जाता है:

  "rows": [
    {
      "dimensionValues": [
        {
          "value": "Chrome"
        },
        {
          "value": "United States"
        },
        {
          "value": "English"
        }
      ],
      "metricValues": [
        {
          "value": "1"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Firefox"
        },
        {
          "value": "Canada"
        },
        {
          "value": "French"
        }
      ],
      "metricValues": [
        {
          "value": "3"
        }
      ]
    },
    ...

  ]

यह डेटा, नीचे दी गई टेबल में हाइलाइट की गई दो सेल से जुड़ा होता है:

रॉ डेटा टेबल

क्लाइंट लाइब्रेरी

क्लाइंट लाइब्रेरी को इंस्टॉल और कॉन्फ़िगर करने के तरीके के बारे में जानने के लिए, क्विक स्टार्ट गाइड देखें.

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

PHP

use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\OrderBy;
use Google\Analytics\Data\V1beta\OrderBy\DimensionOrderBy;
use Google\Analytics\Data\V1beta\OrderBy\MetricOrderBy;
use Google\Analytics\Data\V1beta\Pivot;
use Google\Analytics\Data\V1beta\RunPivotReportRequest;
use Google\Analytics\Data\V1beta\RunPivotReportResponse;

/**
 * Runs a pivot query to build a report of session counts by country,
 * pivoted by the browser dimension.
 * @param string $propertyId Your GA-4 Property ID
 */
function run_pivot_report(string $propertyId)
{
    // Create an instance of the Google Analytics Data API client library.
    $client = new BetaAnalyticsDataClient();

    // Make an API call.
    $request = (new RunPivotReportRequest())
        ->setProperty('properties/' . $propertyId)
        ->setDateRanges([new DateRange([
            'start_date' => '2021-01-01',
            'end_date' => '2021-01-30',
            ]),
        ])
        ->setPivots([
            new Pivot([
                'field_names' => ['country'],
                'limit' => 250,
                'order_bys' => [new OrderBy([
                    'dimension' => new DimensionOrderBy([
                        'dimension_name' => 'country',
                    ]),
                ])],
            ]),
            new Pivot([
                'field_names' => ['browser'],
                'offset' => 3,
                'limit' => 3,
                'order_bys' => [new OrderBy([
                    'metric' => new MetricOrderBy([
                        'metric_name' => 'sessions',
                    ]),
                    'desc' => true,
                ])],
            ]),
        ])
        ->setMetrics([new Metric(['name' => 'sessions'])])
        ->setDimensions([
            new Dimension(['name' => 'country']),
            new Dimension(['name' => 'browser']),
        ]);
    $response = $client->runPivotReport($request);

    printPivotReportResponse($response);
}

/**
 * Print results of a runPivotReport call.
 * @param RunPivotReportResponse $response
 */
function printPivotReportResponse(RunPivotReportResponse $response)
{
    print 'Report result: ' . PHP_EOL;

    foreach ($response->getRows() as $row) {
        printf(
            '%s %s' . PHP_EOL,
            $row->getDimensionValues()[0]->getValue(),
            $row->getMetricValues()[0]->getValue()
        );
    }
}

Python

from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
    DateRange,
    Dimension,
    Metric,
    OrderBy,
    Pivot,
    RunPivotReportRequest,
)


def run_sample():
    """Runs the sample."""
    # TODO(developer): Replace this variable with your Google Analytics 4
    #  property ID before running the sample.
    property_id = "YOUR-GA4-PROPERTY-ID"
    run_pivot_report(property_id)


def run_pivot_report(property_id="YOUR-GA4-PROPERTY-ID"):
    """Runs a pivot query to build a report of session counts by country,
    pivoted by the browser dimension."""
    client = BetaAnalyticsDataClient()

    request = RunPivotReportRequest(
        property=f"properties/{property_id}",
        date_ranges=[DateRange(start_date="2021-01-01", end_date="2021-01-30")],
        pivots=[
            Pivot(
                field_names=["country"],
                limit=250,
                order_bys=[
                    OrderBy(
                        dimension=OrderBy.DimensionOrderBy(dimension_name="country")
                    )
                ],
            ),
            Pivot(
                field_names=["browser"],
                offset=3,
                limit=3,
                order_bys=[
                    OrderBy(
                        metric=OrderBy.MetricOrderBy(metric_name="sessions"), desc=True
                    )
                ],
            ),
        ],
        metrics=[Metric(name="sessions")],
        dimensions=[Dimension(name="country"), Dimension(name="browser")],
    )
    response = client.run_pivot_report(request)
    print_run_pivot_report_response(response)


def print_run_pivot_report_response(response):
    """Prints results of a runPivotReport call."""
    print("Report result:")
    for row in response.rows:
        for dimension_value in row.dimension_values:
            print(dimension_value.value)

        for metric_value in row.metric_values:
            print(metric_value.value)


Node.js


  // TODO(developer): Uncomment this variable and replace with your
  // Google Analytics 4 property ID before running the sample.
  // propertyId = 'YOUR-GA4-PROPERTY-ID';

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

  // Initialize client that will be used to send requests. This client only
  // needs to be created once, and can be reused for multiple requests.
  const analyticsDataClient = new BetaAnalyticsDataClient();

  // Runs a pivot query to build a report of session counts by country, pivoted by the browser dimension.
  async function runPivotReport() {
    const [response] = await analyticsDataClient.runPivotReport({
      property: `properties/${propertyId}`,
      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',
        },
      ],
    });
    printPivotReportResponse(response);
  }

  runPivotReport();

  // Prints results of a runReport call.
  function printPivotReportResponse(response) {
    console.log('Report result:');
    response.rows.forEach(row => {
      row.dimensionValues.forEach(dimensionValue => {
        console.log(dimensionValue.value);
      });

      row.metricValues.forEach(metricValue => {
        console.log(metricValue.value);
      });
    });
  }

डेमो ऐप्लिकेशन

JavaScript का इस्तेमाल करके पिवट रिपोर्ट बनाने और दिखाने के उदाहरण के लिए Google Analytics एपीआई v1 पिवट रिपोर्ट डेमो ऐप्लिकेशन देखें.