نقل البيانات إلى الإصدار الأول من Data API في Google Analytics

يقدّم هذا المستند تعليمات حول كيفية نقل الرمز الحالي من الإصدار 4 من Google Analytics Reporting API إلى الإصدار 1 من Google Analytics Data API ويقدّم نظرة عامة مختصرة على الاختلافات الرئيسية بين واجهتَي برمجة التطبيقات.

لماذا أحتاج إلى نقل البيانات؟

إذا كان تطبيقك يحتاج إلى الوصول إلى البيانات في موقع على "إحصاءات Google 4"، يجب تعديل الرمز لاستخدام الإصدار 1 من Data API، لأنّ الإصدار 4 من Reporting API لا يمكنه الوصول إلا إلى المواقع التي تم إنشاؤها باستخدام Universal Analytics.

المتطلبات الأساسية

يُرجى التعرّف على أساسيات الإصدار الأول من Data API باستخدام دليل البدء السريع.

الخطوات الأولى

للبدء، عليك إعداد موقع على "إحصاءات Google 4" وتفعيل الإصدار الأول من Data API، ثم إعداد مكتبة عملاء خاصة بواجهة برمجة التطبيقات مناسبة لنظامك الأساسي.

إعداد موقع على "إحصاءات Google 4"

قبل البدء في نقل بيانات الرمز لتوفير الإصدار 1 من Data API، عليك نقل موقعك الإلكتروني لاستخدام موقع على "إحصاءات Google 4". لا يمكن إضافة بيانات سابقة إلى موقع على "إحصاءات Google 4" باستخدام البيانات السابقة من موقع على Universal Analytics.

تفعيل واجهة برمجة التطبيقات

انقر على هذا الزر لتفعيل Data API v1 تلقائيًا في مشروع Google Cloud الذي اخترته.

تفعيل الإصدار 1 من Data API في "إحصاءات Google"

استخدام مكتبة برامج

تثبيت مكتبة برامج

إذا كنت تستخدم مكتبة برامج، عليك تثبيت الإصدار الأول من مكتبة برامج واجهة برمجة التطبيقات Data API للغة البرمجة.

إعداد مكتبة برامج

تم تصميم مكتبات عملاء الإصدار 1 من Data API لمساعدتك على البدء بسرعة. تحاول مكتبات العملاء العثور تلقائيًا على بيانات اعتماد حساب الخدمة.

تتوفّر طريقة سهلة لتوفير بيانات اعتماد حساب الخدمة من خلال ضبط متغيّر بيئة GOOGLE_APPLICATION_CREDENTIALS، وسيستخدم عميل واجهة برمجة التطبيقات قيمة هذا المتغيّر للعثور على ملف JSON لمفتاح حساب الخدمة.

على سبيل المثال، يمكنك ضبط بيانات اعتماد حساب الخدمة من خلال تنفيذ الأمر التالي واستخدام المسار إلى ملف JSON لحساب الخدمة:

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

وفي ما يلي مقتطفات الرموز الشائعة الاستخدام لإعداد مكتبات العميل للإصدار 1 من Data API.

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();

بدلاً من استخدام متغير بيئة، من الممكن أيضًا تمرير معلومات بيانات الاعتماد إلى مثيل عميل واجهة برمجة التطبيقات بشكل صريح أثناء التهيئة. في ما يلي المقتطفات المستخدمة لتهيئة مكتبات العميل للإصدار 1 من Data API من خلال تمرير بيانات الاعتماد صراحةً في الرمز.

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,
  });

عدم استخدام مكتبة برامج

إذا كنت تستخدم الإصدار 4 من Reporting API بدون مكتبة برامج وأردت مواصلة استخدام الإصدار 1 من Data API، لا يزال بإمكانك استخدام بيانات الاعتماد الخاصة بك.

عليك استخدام مستند نقطة نهاية HTTP الجديد والاكتشاف الذي توفّره واجهة برمجة التطبيقات Data API:

إذا كان الرمز البرمجي الخاص بك يستفيد من مستند Discovery، عليك تعديله إلى مستند Discovery المقدَّم من خلال الإصدار 1 من Data API:

بعد تعديل نقطة النهاية، عليك التعرّف على بنية الطلب الجديدة ومفاهيم Data API لتعديل طلب بحث JSON.

إعداد التقارير الأساسية

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

وقد وفّر الإصدار الرابع من Reporting API طريقة واحدة batchGet للوصول إلى وظيفة إعداد التقارير الأساسية، يوفر الإصدار الأول من Data API العديد من طرق إعداد التقارير الأساسية للاختيار من بينها:

  • runReport تعرض هذه الطريقة تقريرًا مخصصًا لبيانات أحداثك في "إحصاءات Google". ولا تدعم الوظيفة المحورية وهي طريقة مفضلة لاستعلامات التقارير البسيطة.
  • runPivotReport هذه الطريقة تعرض تقريرًا محوريًا مخصّصًا لبيانات أحداثك في "إحصاءات Google". على غرار المنصّات المحورية في الإصدار 4 من Reporting API، يصف كلّ محوري أعمدة السمات والصفوف الظاهرة في استجابة التقرير.
  • batchRunReports عبارة عن إصدار مجمّع من طريقة runReport التي تسمح بإنشاء تقارير متعددة باستخدام طلب واحد من واجهة برمجة التطبيقات.
  • batchRunPivotReports هو إصدار مجمّع من طريقة runPivotReport يسمح بإنشاء تقارير متعدّدة باستخدام طلب بيانات واحد من واجهة برمجة التطبيقات.

إنّ الغرض من استخدام عدّة طرق لإعداد التقارير هو في الغالب سهولة الاستخدام، مع بعض الطرق التي تدعم ميزات أكثر تعقيدًا من غيرها (النقاط المحورية، التجميع)، ولكنها تشترك في بنية طلب مماثلة.

التغييرات في مخطط واجهة برمجة التطبيقات

يتم تحديد إمكانات إعداد التقارير لكل من Reporting API وData API بشكل أساسي من خلال المخطط، أي السمات والمقاييس المتوافقة في طلبات البحث عن التقارير. هناك اختلافات كبيرة في مخططات واجهة برمجة التطبيقات بين وحدتَي برمجة التطبيقات، بسبب الاختلافات المفاهيمية بين Universal Analytics و"إحصاءات Google 4".

  • اطّلِع على قائمة السمات والمقاييس الحالية المتوافقة مع Data API. في الوقت الحالي، تكون جميع السمات والمقاييس متوافقة مع بعضها البعض، لذلك ليست هناك حاجة لاستخدام مستكشف السمات والمقاييس لتحديد مجموعات متوافقة. سيتغير هذا السلوك في المستقبل.
  • يمكن الوصول إلى السمات المخصّصة في "إحصاءات Google 4" باستخدام بنية السمات المخصّصة في الإصدار 1 من Data API، والتي يجب استخدامها بدلاً من خانات السمات ga:dimensionXX في الإصدار 4 من Reporting API.
  • يمكن الوصول إلى المقاييس المخصّصة في "إحصاءات Google 4" باستخدام بنية المقاييس المخصّصة للإصدار 1 من Data API، ويجب استخدامها بدلاً من خانات المقاييس ga:metricXX في الإصدار 4 من Reporting API.
  • وتمتلك بعض السمات والمقاييس الواردة في Universal Analytics ما يعادل ذلك بشكل مباشر في "إحصاءات Google 4". اطّلِع على الرسم البياني لتكافؤ مخطّط واجهة برمجة التطبيقات في UA/"إحصاءات Google 4" للحصول على مزيد من المعلومات.
  • لم تعُد أسماء السمات والمقاييس تحتوي على البادئة ga: في "إحصاءات Google 4".
  • لا تتوفّر بعض الوظائف المتوفّرة في Universal Analytics بعد في "إحصاءات Google 4" (مثل دمج "مدير الحملة" و"مساحة العرض والفيديو 360" و"إعلانات شبكة البحث 360"). بعد تنفيذ هذه الوظيفة في "إحصاءات Google 4"، ستوفّر Data API هذه الوظيفة، وستتم إضافة سمات ومقاييس جديدة إلى مخطط واجهة برمجة التطبيقات.

عدد العناصر

لا يتوفّر مفهوم للملفات الشخصية في "إحصاءات Google 4" في Universal Analytics. ونتيجةً لذلك، لا تتوفّر مَعلمة viewId في أي مكان في طلبات إعداد التقارير الخاصة بالإصدار 1 من Data API. بدلاً من ذلك، يجب تحديد رقم تعريف رقمي لموقع "إحصاءات Google 4" في مسار عنوان URL للطلب عند استدعاء طرق الإصدار 1 من Data API. يختلف هذا السلوك عن الإصدار 4 من Reporting API من خلال الاعتماد على أرقام تعريف الملفات الشخصية (الملفات الشخصية) لتحديد الجهة القائمة بالإبلاغ.

الإصدار الأول من Data API

في حال استخدام الإصدار 1 من Data API، يجب تحديد رقم تعريف رقمي لموقع "إحصاءات Google 4" في مسار عنوان URL.

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

الإصدار 4 من Reporting API

يتطلّب الإصدار 4 من Reporting API تحديد رقم تعريف (الملف الشخصي) على Universal Analytics في نص طلب التقرير.

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

    ....

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

النطاقات الزمنية

يدعم كل من الإصدار 4 من Reporting API والإصدار الأول من Data API نطاقات زمنية متعددة تم تحديدها باستخدام الحقل dateRanges في طلب إعداد التقارير. تشترك كلتا الواجهتَين في تنسيق إدخال التاريخ نفسه، وتقبل قيم التاريخ المطلق في شكل YYYY-MM-DD، أو تواريخ نسبية مثل yesderday وtoday و7daysAgo وما إلى ذلك.

تقتصر طلبات الإصدار الأول من Data API على 4 نطاقات زمنية، في حين يتيح الإصدار 4 من Reporting API نطاقَين زمنيَين في طلب تقرير واحد.

قد يحتوي كل dateRange في الإصدار الأول من Data API على حقل name اختياري يمكن استخدامه للإشارة إلى النطاق الزمني المقابل في ردّ. إذا لم يتم تقديم name، يتم إنشاء اسم النطاق الزمني تلقائيًا.

عند تحديد نطاقات زمنية متعددة في طلب الإصدار 1 من Data API، تتم إضافة سمة dateRange جديدة تلقائيًا إلى الردّ ويتم استخدام اسم النطاق الزمني كقيمة سمة. تجدر الإشارة إلى أنّ هذا السلوك يختلف عن الإصدار 4 من Reporting API من خلال عرض بيانات نطاق زمني كمجموعة من قيم المقاييس ضمن كل صف.

طلب Data API v1

يتم استخدام حقل name اختياري لكل قيمة dateRange في الطلب. سيتمّ استخدام اسم النطاق الزمني هذا كقيمة للسمة 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

يتم تضمين سمة 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"
      }
    ]
  },

....

طلب الإصدار 4 من Reporting API

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

استجابة الإصدار 4 من Reporting API

في الإصدار 4 من Reporting API، يتم تجميع قيم كل نطاق زمني داخل الحقل metrics:

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

ترتيب

يمكن التحكّم في سلوك الترتيب لطلبات تقرير الإصدار 1 من Data API باستخدام الحقل orderBys، كما هو الحال في حقل orderBys من الإصدار 4 من Reporting API.

تم تغيير مواصفات OrderBy في الإصدار الأول من Data API. يمكن أن تحتوي كل OrderBy على ما يلي:

  • DimensionOrderBy، تعمل على ترتيب النتائج حسب قِيم السمة.
  • MetricOrderBy: ترتيب النتائج حسب قِيم المقياس.
  • PivotOrderBy، يُستخدم في طلبات البحث المحورية ويرتب النتائج حسب قيم المقياس ضمن مجموعة أعمدة محورية.

إنّ أنواع طلبات DELTA وSMART وHISTOGRAM_BUCKET المتوافقة مع الإصدار 4 من Reporting API لم يتم تنفيذها في الإصدار الأول من Data API.

يعادل نوع ترتيب OrderType.NUMERIC للإصدار الأول من Data API قيمة OrderType.DIMENSION_AS_INTEGER للإصدار 4 من Reporting API.

طلب 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

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

طلب الإصدار 4 من Reporting API

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

استجابة الإصدار 4 من Reporting API

{
"reports": [
  {

....

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

....

    }
  ]
}

الفلترة

يمكن استخدام العبارتَين dimensionFilter وmetricFilter من الإصدار الأول من Data API لطلب عرض بيانات لقيم سمات أو مقاييس معيّنة فقط من واجهة برمجة التطبيقات. وهذا يشبه السمة dimensionFilterClauses وmetricFilterClauses من الإصدار 4 من Reporting API.

لا يتيح الإصدار الأول من Data API استخدام سلاسل تعبيرات الفلاتر، مثل عبارة filtersExpression الخاصة بالإصدار 4 من Reporting API. يجب إعادة كتابة هذه التعبيرات باستخدام العبارتين 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"
    }
  ]
}

طلب الإصدار 4 من Reporting API

يتشابه نموذج الطلب هذا مع مثال الإصدار الأول من Data API. ويعرض قائمة بأعداد الجلسات لمسارات صفحات معيّنة زارها المستخدمون.

ويُستخدم الحقل dimensionFilterClauses لعرض الصفوف التي تحتوي على قيم السمة pagePath التي تبدأ بـ /webstore/ وتتضمّن السلسلة 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 حقلَي الحدّ الأقصى والإزاحة للتقسيم على صفحات من خلال نتائج الردّ التي تشمل صفحات متعدّدة، في حين يستخدم الإصدار 4 من Reporting API الإصدار pageToken وpageSize.

في ما يخص الطلبات المحورية في الإصدار الأول من Data API، يجب استخدام الحقلين limit وoffset في العنصر محور لتنفيذ عملية التقسيم على صفحات لكل محوري على حدة. أصبح الحقل limit مطلوبًا الآن لكل كائن محور.

يعرض الإصدار الأول من Data API تلقائيًا أول 10,000 صف من بيانات الأحداث، في حين أنّ القيمة التلقائية للإصدار 4 من Reporting API هي 1,000 صف.

يتم عرض إجمالي عدد الصفوف التي تطابق طلب البحث باستخدام الحقل rowCount في الاستجابة للإصدار الأول من Data API، والذي يشبه الإصدار 4 من Reporting API.

طلب Data API v1

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

....

  ],
  "metrics": [

....

  ],
  "dimensions": [

....

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

الاستجابة للإصدار الأول من Data API

{
  "dimensionHeaders": [

....

  ],
  "metricHeaders": [

....

  ],
  "rows": [

....

  ],
  "rowCount": 228,
}

طلب الإصدار 4 من Reporting API

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

....

      ],
      "metrics": [

....

      ],
      "dimensions": [

....

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

    }
  ]
}

استجابة الإصدار 4 من Reporting API

{
  "reports": [
    {

....

      "data": {
        "rows": [

....

        ],

....

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

تجميعات المقاييس

يحسب الإصدار 1 من Data API قيم التجميع فقط عند تحديد الحقل metricAggregations في طلب ما. في المقابل، يعرض الإصدار 4 من Reporting API القيم الإجمالية والحد الأدنى والحد الأقصى لكل مقياس بشكل تلقائي، ما لم يتم ضبط الحقلين 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

ويتم عرض صفوف المقاييس المجمَّعة في الحقول 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"
        }
      ]
    }
  ],

....

}

طلب الإصدار 4 من Reporting API

نموذج طلب لإرجاع الجلسات حسب البلد.

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

استجابة الإصدار 4 من Reporting API

تتوفّر الحقول totals وminimums وmaximums تلقائيًا في الإصدار الرابع من واجهة برمجة التطبيقات Reporting API.

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

         ....

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

         ....

        ],

       ....

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

      }
    }
  ]
}

النقاط المحورية

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

يتيح الإصدار 4 من Reporting API تضمين نقاط محورية في طلبات إعداد التقارير باستخدام طريقة batchGet.

يتم تنفيذ النقاط المحورية بشكل مختلف في الإصدار 1 من Data API مقارنةً بالإصدار 4 من Reporting API من خلال الطريقة التي يمثل فيها كل صف استجابة خلية واحدة من الجدول، بينما يمثل الإصدار 4 من Reporting API صف استجابة واحدًا سطرًا كاملاً للجدول.

الإصدار الأول من Data API

يوجد أدناه جزء من استجابة الإصدار 1 من Data API لطلب البحث runPivotReport. يتم عرض كل خلية في التقرير المحوري بشكل فردي:

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

الإصدار 4 من Reporting API

في ما يلي جزء من استجابة الإصدار 4 من Reporting API إلى طلب البحث batchGet. يمثل صف الاستجابة الفردي سطر جدول كاملاً يحتوي على جميع قيم المقاييس للمحور pivotValueRegions في العمود:

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

في الإصدار الأول من Data API، يجب تحديد كل سمة من سمات طلب البحث runPivotReport أو batchRunPivotReports داخل كائن محوري. لن تكون إحدى السمات مرئية في أي تقرير إذا لم يتم استخدامها في أي محورية في طلب بحث محوري.

يتم تحديد الأعمدة المحورية للإصدار 1 من Data API باستخدام الحقل fieldNames بدلاً من الحقل dimensions في الإصدار 4 من Reporting API.

يجب استخدام فلتر السمات على مستوى الطلب في حال كانت فلترة السمات مطلوبة في طلب إعداد تقارير Data API الإصدار 1. يختلف هذا عن الإصدار 4 من Reporting API التي تقبل مواصفات dimensionFilterClauses في عنصر محوري.

إنّ حقل الإزاحة في الإصدار 1 من Data API مشابه من الناحية العملية لحقل startGroup في الإصدار 4 من Reporting API.

يتشابه حقل الحدّ الأقصى في الإصدار 1 من Data API مع حقل maxGroupCount في الإصدار 4 من Reporting API، ويجب استخدامه للحدّ من عدد القيم الفريدة للسمة في التقرير.

يتيح الإصدار الأول من Data API استخدام عدّة عروض محورية ما دام ناتج المعلَمة limit لكل محوري هو 100,000. يتيح الإصدار 4 من Reporting API استخدام سمة محورية واحدة فقط

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

طلب Data API v1

ينشئ طلب البحث المحوري هذا للإصدار الأول من Data API تقريرًا بأعداد الجلسات حسب البلد، استنادًا إلى السمة browser. يُرجى العلم أنّ طلب البحث يستخدم حقول orderBys وlimit وoffset، لإعادة إنتاج سلوك طلب بحث مماثل من Reporting API من الإصدار 4 من أجل الحفاظ على إعدادات الترتيب والتقسيم على صفحات.

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

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

....

  ],

....

}

طلب الإصدار 4 من Reporting API

ينشئ طلب البحث المحوري هذا للإصدار 4 من Reporting API تقريرًا عن عدد الجلسات حسب البلد، استنادًا إلى السمة 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"
            }
          ]
        }
      ]
    }
  ]
}

استجابة الإصدار 4 من Reporting API

{
  "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 مواصفات CohortSpec لإعداد تقارير المجموعات النموذجية. يشبه هذا مواصفات CohortGroup للإصدار 4 من Reporting API.

إنّ جميع المقاييس المتوفّرة في الإصدار الأول من Data API متوافقة حاليًا مع طلبات البحث في المجموعة النموذجية، في حين يتيح الإصدار 4 من Reporting API فقط استخدام مجموعة فرعية من المقاييس الخاصة في طلب بحث في مجموعة نموذجية.

في طلب المجموعة النموذجية للإصدار 1 من Data API، يكون المقياس "cohortActiveUsers" مطلوبًا.

يتيح الإصدار الأول من Data API والإصدار الرابع من Reporting API إنشاء ما يصل إلى 12 مجموعة نموذجية في طلب واحد.

لا يتم حاليًا دعم مقاييس القيمة الدائمة في الإصدار 1 من Data API.

تكافؤ مقاييس المجموعات النموذجية

يمكن استبدال معظم مقاييس المجموعة النموذجية المحدّدة في الإصدار 4 من Reporting API بتعبير لتحقيق نتيجة مكافئة في الإصدار 1 من Data API، وفقًا للرسم البياني أدناه.

اسم المقياس للإصدار 4 من Reporting API اسم أو تعبير المقياس 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": "sessions/cohortActiveUsers"
ga:cohortGoalCompletionsPerUser "expression": "eventCount/cohortActiveUsers"، بالإضافة إلى فلتر سمات بقيمة eventName يتوافق مع حدث إكمال الهدف المطلوب.

طلب Data API v1

نموذج طلب بحث يضبط مجموعة نموذجية من المستخدمين الذين حدثت جلستهم الأولى في أسبوع من 01-01-2021. يتم احتساب عدد المستخدمين النشطين ومعدّل الحفاظ على المستخدمين للمجموعة النموذجية على مدار 5 أسابيع، باستخدام درجة الدقة الأسبوعية.

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

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

طلب الإصدار 4 من Reporting API

نموذج طلب بحث يضبط مجموعة نموذجية من المستخدمين الذين حدثت جلستهم الأولى في أسبوع من 01-01-2021. يتم احتساب عدد المستخدمين النشطين ومعدّل الحفاظ على المستخدمين للمجموعة النموذجية على مدار 5 أسابيع، باستخدام دقة 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"
            }
          }
        ]
      }
    }
  ]
}

استجابة الإصدار 4 من Reporting API

{
  "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 تلقائيًا طريقة تحليل عيّنات البيانات عندما تتوقّع أنّ الحدّ الأقصى لعدد القيم الفريدة للسمة سيؤدي إلى تقليل جودة البيانات. إذا تم أخذ عيّنات من نتائج نطاق زمني، ستحتوي metadata للسمة RunReportResponse على حقل SamplingMetadata مقابل، على غرار حقل samplingLevel الذي كان متوفّرًا في الإصدار 4 من Reporting API.

حداثة البيانات

لا توفر Data API أي مكافئ للحقل isDataGolden للإصدار 4 من Reporting API، والذي كان يُستخدم للإشارة إلى ما إذا كانت جميع نتائج التقرير قد انتهت من المعالجة. لا يزال من الممكن أن يعرض التقرير نفسه نتائج مختلفة عند الاستعلام عنه في تاريخ لاحق بسبب المعالجة الإضافية.

الشرائح (غير متاحة)

الشرائح غير متاحة حاليًا في الإصدار 1 من Data API.

إعداد التقارير في الوقت الفعلي

استخدِم طريقة properties.runRealtimeReport للإصدار الأول من Data API لإنشاء تقارير في الوقت الفعلي لمواقع "إحصاءات Google 4". تم توفير وظيفة إعداد التقارير في الوقت الفعلي لمواقع Universal Analytics من خلال طريقة data.realtime.get في الإصدار 3 من Google Analytics API.

يختلف مخطط إعداد التقارير في الوقت الفعلي لـ Data API عن مخطط إعداد التقارير في الوقت الفعلي للإصدار 3 من Analytics API، بسبب الاختلافات في المفاهيم بين Universal Analytics و"إحصاءات Google 4".

طلب Data API v1

في المثال التالي، للحفاظ على سلوك الترتيب التلقائي للإصدار 3 من Google Analytics API، تمّت إضافة عنصر orderBy اختياري إلى نموذج طلب البحث Data API v1.

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

الاستجابة للإصدار الأول من Data API

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

طلب الإصدار 3 من Google Analytics API

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

الاستجابة للإصدار 3 من Google Analytics API

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

  ....

  ]
}

(غير متوافق) إعداد تقارير نشاط المستخدم

لا يتيح الإصدار 1 من Data API حاليًا إمكانية الإبلاغ عن نشاط مستخدم فردي بالطريقة نفسها التي تتّبعها في الإصدار 4 من Reporting API من userActivity.search.

تغييرات حصص واجهة برمجة التطبيقات

فئات الحصص الأساسية وفي الوقت الفعلي

لأغراض الحصة، تحتوي Data API على فئتين للطلب: "الأساسية" و"الوقت الفعلي". يتم تحصيل رسوم من الحصص الأساسية في طلبات البيانات من واجهة برمجة التطبيقات إلى طرق إعداد التقارير الأساسية (runReport وgetMetadata وrunPivotReport وbatchRunReports وbatchRunPivotReports). طلبات البيانات من واجهة برمجة التطبيقات لطريقة runRealtimeReport لتحصيل الرسوم من الحصص في الوقت الفعلي.

حصص الرموز المميّزة

بالإضافة إلى حصص المشاريع، يستهلك كل طلب حصص الرموز المميّزة للمواقع التي يتم تحصيلها بناءً على مدى تعقيد طلب البحث. يُرجى الاطّلاع على مستندات الحصص الإصدار الأول من واجهة برمجة التطبيقات للاطّلاع على وصف تفصيلي لحصص وحدود واجهة برمجة التطبيقات.

من الممكن الحصول على الحالة الحالية لجميع الحصص لموقع "إحصاءات Google" من خلال ضبط returnPropertyQuota على true في طلب إعداد تقارير أساسي أو في الوقت الفعلي. سيتم عرض حالة الحصة في PropertyQuota.

(غير متوافق) الحصة المستندة إلى الموارد

بما أنّ جميع التقارير الأساسية في "إحصاءات Google 4" تستند إلى بيانات غير مستندة إلى عيّنات، لم يعُد هناك ما يعادل حقل useResourceQuotas المتوفّر في طلب إعداد التقارير في الإصدار 1 من واجهة برمجة التطبيقات Data API.

(غير متاح) الحصة اليومية لطلبات لكل مشاهدة (الملف الشخصي)

بسبب عدم توفّر ملفات شخصية في "إحصاءات Google 4"، لا تتوفّر حصة requests per view (profile) per day في الإصدار الأول من Data API، وقد تم استبدالها بحصص الرموز المميّزة.