نظرة عامة

يتيح لك الإصدار الأول من Google Analytics Data API إنشاء جداول محورية. محورية والجداول هي أداة لتلخيص البيانات تصور البيانات عن طريق إعادة ترتيب المعلومات في الجدول من خلال تمحور (تدوير) بياناتك على قاعدة واحدة أو متعددة الأبعاد.

كمثال، اطّلِع على جدول البيانات الأولية التالي:

جدول البيانات الأولية

باستخدام هذه البيانات، يمكن إنشاء جدول محوري، ويحلل بيانات الجلسات حسب المتصفح، مع اختيار سمات البلد واللغة محورية إضافية.

جدول البيانات المحورية

الميزات المشتركة مع "التقارير الأساسية"

تحتوي طلبات إعداد التقارير المحورية على الدلالات نفسها مع طلبات التقارير الأساسية والعديد من الميزات المشتركة. على سبيل المثال: تقسيم النتائج على عدّة صفحات، وفلاتر الأبعاد، والمستخدم تعمل المواقع بالطريقة نفسها في "التقارير المحورية" التي تعمل بها التقارير الأساسية. هذا النمط على ميزات إعداد التقارير المحورية. للتعرف على Core لوظائف إعداد التقارير في الإصدار 1 من Data API، واطّلِع على دليل أساسيات إعداد التقارير. بالإضافة إلى دليل حالات الاستخدام المتقدّمة

طرق إعداد التقارير المحورية

يتوافق الإصدار الأول من Data API مع الوظائف المحورية في طرق إعداد التقارير التالية:

  • runPivotReport باستخدام هذه الطريقة تقريرًا محوريًا مخصّصًا لبيانات أحداثك في "إحصاءات Google". على كل عمود محوري يصف أعمدة وصفوف السمات المرئية في استجابة التقرير.

  • batchRunPivotReports هذا هو إصدار مجمّع من طريقة runPivotReport التي تتيح إنشاء تقارير متعددة باستخدام طلب بيانات واحد من واجهة برمجة التطبيقات.

اختيار عنصر إعداد التقارير

تتطلّب جميع طرق استخدام الإصدار الأول من Data API معرّف الموقع على "إحصاءات Google". أن يتم تحديدها داخل مسار طلب عنوان URL في شكل properties/GA_PROPERTY_ID، مثل:

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

سيتم إنشاء التقرير الناتج استنادًا إلى بيانات الأحداث على "إحصاءات Google". التي يتم جمعها في الموقع المحدّد على "إحصاءات Google"

إذا كنت تستخدم إحدى مكتبات برامج واجهة برمجة التطبيقات للبيانات، معالجة مسار عنوان URL للطلب يدويًا. معظم عملاء واجهة برمجة التطبيقات توفير مَعلمة property التي تتوقع الحصول على سلسلة على شكل properties/GA_PROPERTY_ID الاطّلاع على دليل البدء السريع للحصول على أمثلة على استخدام مكتبات العملاء.

طلب تقرير محوري

لإنشاء طلب باستخدام جدول محوري، استخدم إما runPivotReport أو batchRunPivotReports .

لطلب بيانات محورية، يمكنك إنشاء RunPivotReportRequest. الخاص بك. نقترح البدء بمعلمات الطلب التالية:

في ما يلي نموذج طلب يتضمّن الحقول المقترَحة:

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 السمة المرئية. الأعمدة والصفوف في استجابة التقرير.

يتوافق الإصدار الأول من Data API مع عمليات عرض محورية متعددة ما دام ناتج الحدّ الأقصى. لكل معلمة لكل محور 100000.

في ما يلي مقتطف يوضح استخدام pivots لإنشاء تقرير عن عدد الجلسات حسب البلد، بدءًا من السمة browser. لاحظ كيف يستخدم طلب البحث الحقل orderBys والفرز، والحد حقول الإزاحة لتنفيذ التقسيم على صفحات.

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

الأبعاد

تصف السمات بيانات الأحداث وتجمّعها موقع الويب أو التطبيق. وعلى سبيل المثال، تشير سمة city إلى المدينة ("القاهرة" أو "نيويورك") التي نشأ منها كل حدث. في طلب الإبلاغ، يمكنك تحديد صفر أو أكثر من الأبعاد.

يجب تحديد الأبعاد داخل السمات في نص الطلب. لكي تظهر هذه السمات في أي تقرير، يجب أيضًا أن أن يتم إدراجها في fieldNames في الكائن Pivot. لن تظهر إحدى السمات في التقرير إذا لم يتم استخدامها في أي محورية للاستعلام المحوري. لا يجب أن تكون كل بُعد موجودة في المحور fieldNames يمكن استخدام السمات في الفلاتر حصريًا وليس في fieldNames من أي جدول محوري.

في ما يلي مقتطف يوضّح استخدام حقلَي dimension وfieldNames. بالنسبة إلى جدول يحتوي على عناصر محورية browser وcountry وlanguage:

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

  }

تقسيم النتائج على عدّة صفحات

على غرار طرق إعداد التقارير الأساسية، تتيح لك الطلبات المحورية لتحديد الحدّ الأقصى والإزاحة في الكائن محوري لتنفيذ التقسيم على صفحات. يتم تطبيق إعدادات التقسيم على صفحات على كل جدول محوري على حدة. يجب ملء الحقل limit لكل عنصر Pivot للحدّ من الإبلاغ عن عدد القيم الفريدة للسمة.

يوفّر الإصدار الأول من Data API العديد من عمليات العرض المحورية ما دام منتج limit. لكل معلمة لكل محور 100000.

في ما يلي مقتطف يوضّح استخدام حقلَي offset وlimit من أجل عرض أبعاد language الخمسة التالية بإزاحة 10:

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

الفلترة

على غرار وظيفة إعداد التقارير الأساسية فلتر السمات على مستوى الطلب يجب استخدامه إذا كانت فلترة السمات مطلوبة في إعداد التقارير المحوري طلبك.

ترتيب

يمكن التحكم في سلوك ترتيب طلبات بحث التقارير المحورية لكل محوري بشكل فردي باستخدام دالة orderBys في الكائن Pivot، والذي يحتوي على قائمة كائنات OrderBy

يمكن أن يحتوي كل OrderBy على أحد ما يلي:

يعرض هذا المثال مقتطفًا لتعريف المحوري الذي يعرض التقرير المحوري في السمة 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 = Y'OUR-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: 2'021-01-01,'
          endDate: 2'021-01-30,'
        },
      ],
      pivots: [
        {
          fieldNames: [c'ountry]',
          limit: 250,
          orderBys: [
            {
              dimension: {
                dimensionName: c'ountry,'
              },
            },
          ],
        },
        {
          fieldNames: [b'rowser]',
          offset: 3,
          limit: 3,
          orderBys: [
            {
              metric: {
                metricName: s'essions,'
              },
              desc: true,
            },
          ],
        },
      ],
      metrics: [
        {
          name: s'essions,'
        },
      ],
      dimensions: [
        {
          name: c'ountry,'
        },
        {
          name: b'rowser,'
        },
      ],
    });
    printPivotReportResponse(response);
  }

  runPivotReport();

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

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

تطبيق تجريبي

الاطّلاع على العرض التوضيحي للتقرير المحوري للإصدار الأول من Google Analytics API التطبيق للحصول على مثال حول كيفية إنشاء تقرير محوري وعرضه باستخدام JavaScript.