গুগল অ্যানালিটিক্স ডেটা এপিআই ভি১ আপনাকে পিভট টেবিল তৈরি করতে দেয়। পিভট টেবিল হলো ডেটা সংক্ষিপ্তকরণের একটি টুল, যা এক বা একাধিক ডাইমেনশনে আপনার ডেটাকে পিভট (ঘূর্ণন) করার মাধ্যমে টেবিলের তথ্য পুনর্বিন্যাস করে ডেটাকে ভিজ্যুয়ালাইজ করে।
উদাহরণস্বরূপ, নিম্নলিখিত কাঁচা ডেটা সারণিটি বিবেচনা করুন:

এই ডেটা ব্যবহার করে একটি পিভট টেবিল তৈরি করা সম্ভব, যেখানে ব্রাউজার অনুযায়ী সেশন ডেটাকে ভাগ করা হবে এবং দেশ ও ভাষার ডাইমেনশনগুলোকে অতিরিক্ত পিভট হিসেবে নির্বাচন করা হবে।

কোর রিপোর্টের সাথে শেয়ার করা বৈশিষ্ট্য
অনেক সাধারণ বৈশিষ্ট্যের ক্ষেত্রে পিভট রিপোর্টিং অনুরোধ এবং কোর রিপোর্ট অনুরোধের মধ্যে একই অর্থগত মিল রয়েছে। উদাহরণস্বরূপ, পেজিনেশন, ডাইমেনশন ফিল্টার এবং ইউজার প্রোপার্টি পিভট রিপোর্টে কোর রিপোর্টের মতোই কাজ করে। এই নির্দেশিকাটি পিভট রিপোর্টিং বৈশিষ্ট্যগুলির উপর আলোকপাত করে। ডেটা এপিআই ভি১-এর কোর রিপোর্টিং কার্যকারিতার সাথে পরিচিত হতে, রিপোর্টিং বেসিকস গাইড এবং অ্যাডভান্সড ইউজ কেসেস গাইড পড়ুন।
পিভট রিপোর্টিং পদ্ধতি
ডেটা এপিআই ভি১ নিম্নলিখিত রিপোর্টিং পদ্ধতিগুলিতে পিভট কার্যকারিতা সমর্থন করে:
runPivotReport এই মেথডটি আপনার গুগল অ্যানালিটিক্স ইভেন্ট ডেটার একটি কাস্টমাইজড পিভট রিপোর্ট রিটার্ন করে। প্রতিটি পিভট রিপোর্ট রেসপন্সে দৃশ্যমান ডাইমেনশন কলাম এবং সারিগুলো বর্ণনা করে।
batchRunPivotReports হলো
runPivotReportমেথডের একটি ব্যাচ সংস্করণ, যা একটিমাত্র এপিআই কলের মাধ্যমে একাধিক রিপোর্ট তৈরি করার সুযোগ দেয়।
একটি রিপোর্টিং সত্তা নির্বাচন করুন
Data API v1-এর সমস্ত পদ্ধতির জন্য একটি URL অনুরোধ পাথের মধ্যে Google Analytics প্রপার্টি আইডেন্টিফায়ারটি properties/GA_PROPERTY_ID আকারে উল্লেখ করতে হয়, যেমন:
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runPivotReport
নির্দিষ্ট গুগল অ্যানালিটিক্স প্রপার্টিতে সংগৃহীত গুগল অ্যানালিটিক্স ইভেন্ট ডেটার উপর ভিত্তি করে চূড়ান্ত রিপোর্টটি তৈরি করা হবে।
আপনি যদি ডেটা এপিআই ক্লায়েন্ট লাইব্রেরিগুলোর কোনো একটি ব্যবহার করেন, তাহলে রিকোয়েস্ট ইউআরএল পাথ ম্যানুয়ালি পরিবর্তন করার কোনো প্রয়োজন নেই। বেশিরভাগ এপিআই ক্লায়েন্ট একটি property প্যারামিটার প্রদান করে, যা properties/GA_PROPERTY_ID ফর্ম্যাটে একটি স্ট্রিং গ্রহণ করে। ক্লায়েন্ট লাইব্রেরিগুলো ব্যবহারের উদাহরণের জন্য কুইক স্টার্ট গাইড দেখুন।
পিভট রিপোর্ট অনুরোধ
পিভট টেবিল সহ একটি অনুরোধ তৈরি করতে, ` runPivotReport` অথবা ` batchRunPivotReports` মেথড ব্যবহার করুন।
পিভট করা ডেটার অনুরোধ করতে, আপনি একটি RunPivotReportRequest অবজেক্ট তৈরি করতে পারেন। আমরা এই অনুরোধ প্যারামিটারগুলো দিয়ে শুরু করার পরামর্শ দিই:
- dateRanges ফিল্ডে একটি বৈধ এন্ট্রি।
- ডাইমেনশন ফিল্ডে অন্তত একটি বৈধ এন্ট্রি থাকতে হবে।
- মেট্রিক্স ফিল্ডে অন্তত একটি বৈধ এন্ট্রি থাকতে হবে।
- pivots ফিল্ডে কমপক্ষে দুটি বৈধ পিভট এন্ট্রি থাকতে হবে।
এখানে প্রস্তাবিত ফিল্ডসহ একটি নমুনা অনুরোধ দেওয়া হলো:
HTTP
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_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 রিপোর্ট রেসপন্সে দৃশ্যমান ডাইমেনশন কলাম এবং সারিগুলো বর্ণনা করে।
ডেটা এপিআই ভি১ একাধিক পিভট সমর্থন করে, তবে শর্ত হলো প্রতিটি পিভটের লিমিট প্যারামিটারের গুণফল ১০০,০০০ অতিক্রম করবে না।
নিম্নলিখিত কোড স্নিপেটটি browser ডাইমেনশনের উপর ভিত্তি করে পিভট করে দেশ অনুযায়ী সেশন সংখ্যার একটি রিপোর্ট তৈরি করতে pivots ব্যবহার প্রদর্শন করে। লক্ষ্য করুন, কোয়েরিটি সর্টিংয়ের জন্য 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 এ নয়।
নিম্নলিখিত কোড স্নিপেটটি 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 অবজেক্টের aggregates ফিল্ডে ফেরত দেওয়া হয়। অ্যাগ্রিগেটেড মেট্রিক সারিগুলোর জন্য, 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 প্যারামিটারের গুণফল ১০০,০০০ অতিক্রম করবে না।
নিম্নলিখিত কোড স্নিপেটটি 10-এর অফসেট সহ পরবর্তী পাঁচটি language ডাইমেনশন পুনরুদ্ধার করতে offset এবং limit ফিল্ডের ব্যবহার প্রদর্শন করে:
{
"fieldNames": [
"language"
],
"offset": 10,
"limit": 5
}
ফিল্টারিং
কোর রিপোর্টিং কার্যকারিতার মতোই, কোনো পিভট রিপোর্টিং অনুরোধে ডাইমেনশন ফিল্টারিং করতে চাইলে একটি রিকোয়েস্ট স্কোপড ডাইমেনশন ফিল্টার ব্যবহার করতে হবে।
বাছাই
একটি Pivot অবজেক্টের 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"
}
]
},
...
]
এই ডেটাটি নিম্নলিখিত সারণিতে হাইলাইট করা দুটি সেলের সাথে সম্পর্কিত:

ক্লায়েন্ট লাইব্রেরি
ক্লায়েন্ট লাইব্রেরিগুলো কীভাবে ইনস্টল ও কনফিগার করতে হয়, তার ব্যাখ্যার জন্য কুইক স্টার্ট গাইডটি দেখুন।
নিম্নলিখিত উদাহরণগুলিতে ক্লায়েন্ট লাইব্রেরি ব্যবহার করে একটি পিভট কোয়েরি চালানো হয়, যা ব্রাউজার ডাইমেনশনের ভিত্তিতে পিভট করে দেশ অনুযায়ী সেশন সংখ্যার একটি রিপোর্ট তৈরি করে।
পিএইচপি
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() ); } }
পাইথন
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)
নোড.জেএস
// 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); }); }); }
ডেমো অ্যাপ্লিকেশন
জাভাস্ক্রিপ্ট ব্যবহার করে কীভাবে একটি পিভট রিপোর্ট তৈরি ও প্রদর্শন করতে হয়, তার উদাহরণের জন্য গুগল অ্যানালিটিক্স এপিআই ভি১ পিভট রিপোর্ট ডেমো অ্যাপ্লিকেশনটি দেখুন।