تحديد المشاكل في الوقت الفعلي (RTB) وحلّها

يتناول هذا الدليل مراجع تحديد المشاكل في عروض الأسعار في الوقت الفعلي (RTB) وحلّها، والتي تسمح لك بالوصول آليًا إلى مقاييس الحملات المستندة إلى عروض الأسعار في الوقت الفعلي والتي تظهر أيضًا من خلال أداة عرض الأسعار في الوقت الفعلي في واجهة المستخدم ضمن برنامج "الشراة المعتمَدون". ويشمل ذلك bidders.filterSets وbidders.accounts.filterSets وجميع الموارد المندرجة ضمنها وفقًا لترتيب هرمي.

باستخدام مقاييس من مراجع تحديد المشاكل وحلّها في عرض الأسعار في الوقت الفعلي (RTB)، يمكنك الحصول على إحصاءات عن الفرص الضائعة لكسب مرات الظهور، والتي يمكن أن تساعدك في تحسين حملتك المستندة إلى عروض الأسعار في الوقت الفعلي.

تعديلات على بنية واجهة برمجة التطبيقات ونمطها

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

المراجع على مستوى مقدِّم عروض الأسعار وعلى مستوى الحساب

يتم تنظيم الموارد ضمن كل من bidders وbidders.accounts. وهي تتيح لك تحديد ما إذا كان طلب البيانات من واجهة برمجة التطبيقات يستهدف مقدّم عروض أسعار (يُعرف أيضًا باسم حساب رئيسي) وجميع الحسابات الفرعية المرتبطة به أو حسابات "الشراة المعتمَدون" الفردية. في سياق تحديد المشاكل وحلّها في الوقت الفعلي، ستعرض الموارد المنظَّمة ضمن bidders.filterSets مقاييس مجمّعة لمقدّم عرض السعر المحدّد وجميع الحسابات الفرعية المرتبطة به. وفي المقابل، لن يعرض المستخدمون الذين تقلّ أعمارهم عن bidders.accounts.filterSets سوى المقاييس للحساب المحدّد بغض النظر عمّا إذا كان نظامًا لتقديم عروض الأسعار أو حسابًا فرعيًا.

ملاحظة: إنّ الحسابات التي تفوّض عروض أسعارها إلى مشترٍ آخر ليست حسابات تقدّم عروض أسعار، وبالتالي لا يمكنها الوصول إلى الموارد على مستوى مقدّم عروض الأسعار. بالإضافة إلى ذلك، لا يمكن للحسابات التي لا تستخدم عروض أسعار الوصول إلى موارد impressionMetrics وfilteredBidResponses وbidResponseErrors وbidResponsesWithoutBids على مستوى الحساب.

تقديم أسماء الموارد كمعرّفات فريدة

يتم استخدام أسماء الموارد كمعرّفات فريدة بدلاً من أرقام تعريف أعداد صحيحة أو سلسلة. عند إنشاء مثيل جديد لنوع معيّن من الموارد، عليك الآن تحديد اسم مورد ذي صلة باستخدام مسار معرّف الموارد المنتظم (URI) للمورد متبوعًا بمعرّف المورد المفضّل. وفي ما يلي أمثلة على الأسماء ذات الصلة بالموارد لتحديد المشاكل في عرض الأسعار في الوقت الفعلي (RTB) وحلّها:

المورد مثال على الاسم
bidders.filterSets bidders/12345678/filterSets/fset_1
bidders.accounts.filterSets bidders/12345678/accounts/87654321/filterSets/fset_2

ملاحظة: يجب أن يكون رقم تعريف المورد المحدّد للسمة bidders في الاسم هو رقم تعريف حساب "الشراة المعتمَدون" الخاص بنظام عرض السعر. بالنسبة إلى accounts، يجب أن يكون رقم تعريف المورد عبارة عن رقم تعريف حساب لمقدّم عرض الأسعار أو لحساب فرعي يديره. إذا كنت لا تعرف حسابات "الشراة المعتمَدون" المرتبطة بحسابك على Google، يمكنك استخدام طريقة accounts.list للعثور عليها.

مجموعات الفلاتر

تمثّل مجموعة الفلاتر خيارات الفلترة المتاحة، ويمكن إنشاؤها على مستوى نظام عرض الأسعار أو الحساب. ويتم استخدامه لفلترة نتائج قائمة موارد تحديد المشاكل وحلّها في الوقت الفعلي (RTB) والتي تسترد مقاييس حملات عروض الأسعار في الوقت الفعلي.

الفلتر الذي يتم تطبيقه عند استرداد المقاييس هو تقاطع كل فلتر في مجموعة الفلاتر المحدّدة. يتم تفسير فلاتر القوائم، مثل platforms، على أنها اتحاد لكل عنصر في القائمة.

تكون مجموعات الفلاتر على مستوى الحساب ومقدِّم عروض الأسعار مختلفة ولا يمكن الوصول إليها إلا من مستوى الإنشاء، بغض النظر عن الحساب المستخدَم لإنشائها. يتم إنشاء مجموعات فلاتر مشاركة الحساب الفرعي ومقدِّم عرض السعر على مستوى الحساب، في حين يمكن لمقدّم عرض السعر فقط الوصول إلى الموارد على مستوى مقدّم عروض الأسعار. يلخّص الجدول التالي كيفية وصول نظام عروض الأسعار والحسابات الفرعية إلى الموارد على أي من المستويَين:

  bidders.filterSets bidders.accounts.filterSets
حساب مقدِّم عروض الأسعار يؤثر طلب بيانات من واجهة برمجة التطبيقات على مجموعات الفلاتر على مستوى مقدِّم عرض السعر فقط. يؤثر طلب بيانات من واجهة برمجة التطبيقات في مجموعات الفلاتر على مستوى الحساب فقط.
حساب فرعي سيعرِض طلب البيانات من واجهة برمجة التطبيقات هذا خطأً. يؤثر طلب بيانات من واجهة برمجة التطبيقات في مجموعات الفلاتر على مستوى الحساب فقط.

إنشاء مجموعة فلاتر

عند إنشاء مجموعة فلاتر، يجب تحديد نطاق زمني إما relativeDateRange أو absoluteDateRange أو realtimeTimeRange. وعند استرداد المقاييس، يكون السلوك التلقائي هو توفير جميع البيانات للنطاق الزمني بالكامل. إذا كنت تريد تلقّي تفاصيل السلسلة الزمنية خلال النطاق الزمني، يمكنك تحديد timeSeriesGranularity للإشارة إلى الفواصل الزمنية HOURLY أو DAILY.

إذا كنت تشترط ضبط فلتر لفترة زمنية قصيرة فقط، يمكنك ضبط معلَمة طلب البحث isTransient على true. وهذا يعني أن مجموعة الفلاتر مؤقتة، مما يعني أنها لن تستمر إلى أجل غير مسمى. ستكون مجموعات الفلاتر المؤقتة متاحة لمدة ساعة واحدة على الأقل بعد إنشائها، ولكن سيتم حذفها في النهاية. بشكل افتراضي، لا تكون مجموعات الفلاتر مؤقتة.

مثال على مستوى مقدِّم عروض الأسعار

لإنشاء مجموعة فلاتر جديدة على مستوى مقدِّم عرض السعر، أرسِل طلب POST إلى معرّف الموارد المنتظم (URI) لمورد bidders.filterSets، والذي يحتوي على التنسيق التالي:

https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets

تحذير: مجموعات الفلاتر على مستوى مقدِّم عروض الأسعار غير قادرة على الفلترة حسب أرقام تعريف تصميمات الإعلانات أو الصفقات. إذا حدّدت هذه الفلاتر عند إنشاء مجموعة فلاتر على مستوى مقدِّم عرض السعر، ستتلقّى رسالة خطأ.

طلب

في ما يلي مثال على طلب POST يؤدي إلى إنشاء مجموعة فلاتر جديدة على مستوى مقدِّم عروض الأسعار غير العابر:

POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets
Authorization: Bearer access token here
Content-Type: application/json

{
  "name": "bidders/12345678/filterSets/bidder-fs",
  "format": "DISPLAY",
  "environment": "APP",
  "platforms": ["TABLET", "MOBILE"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

الرد

وإذا نجح الطلب، فإن الخادم يستجيب برمز الحالة 200 OK. سيتضمّن نص الاستجابة مورد مجموعة الفلاتر الذي تم إنشاؤه، والذي سيكون مطابقًا لمجموعة الفلاتر المرسَلة في الطلب.

مثال على مستوى الحساب

لإنشاء مجموعة فلاتر جديدة على مستوى الحساب، أرسِل طلب POST إلى معرّف الموارد المنتظم (URI) لمورد bidders.accounts.filterSets، والذي يكون بالتنسيق التالي:

https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets

ملاحظة: يمكن أن يكون رقم تعريف المورد المحدّد للسمة accounts هو رقم تعريف الحساب لأي حساب من حسابات "الشراة المعتمَدين" يمكن الوصول إليه من خلال حساب مقدّم عرض السعر المحدّد في معرّف الموارد المنتظم (URI)، بما في ذلك حساب مقدِّم عرض السعر نفسه.

طلب

في ما يلي مثال على طلب POST يؤدي إلى إنشاء مجموعة فلاتر جديدة غير مؤقتة على مستوى الحساب:

POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets
Authorization: Bearer access token here
Content-Type: application/json

{
  "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
  "format": "VIDEO",
  "environment": "WEB",
  "platforms": ["DESKTOP"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}
الرد

وإذا نجح الطلب، فإن الخادم يستجيب برمز الحالة 200 OK. سيتضمّن نص الاستجابة المورد الذي تم إنشاؤه من مجموعة الفلاتر، والذي سيكون مطابقًا لمجموعة الفلاتر المرسَلة في الطلب.

الحصول على مجموعة فلاتر

لا يمكن أن تحصل طريقة get إلا على مجموعة فلاتر على المستوى نفسه الذي تم إنشاؤها فيه. على سبيل المثال، يجب أن يستخدم حساب نظام عروض الأسعار bidders.accounts.filterSets.get لاسترداد مجموعة فلاتر تم إنشاؤها على مستوى الحساب بدلاً من طريقة bidders.filterSets.get.

على مستوى مقدِّم عروض الأسعار

يمكنك استرداد مجموعة فلاتر على مستوى مقدّم عرض الأسعار من خلال إرسال طلب HTTP GET إلى معرّف الموارد المنتظم (URI) لمورد bidders.filterSets، والذي يحتوي على التنسيق التالي:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
طلب

وفي ما يلي مثال لذلك:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs
الرد

إذا نجح الطلب، يستجيب الخادم برمز حالة HTTP 200 OK ومجموعة الفلاتر التي تم استردادها:

{
  "name": "bidders/12345678/filterSets/bidder-fs",
  "format": "DISPLAY",
  "environment": "APP",
  "platforms": ["TABLET", "MOBILE"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

مستوى الحساب

يمكنك استرداد مجموعة فلاتر على مستوى الحساب من خلال إرسال طلب HTTP GET إلى معرّف الموارد المنتظم (URI) لمورد bidders.accounts.filterSets، والذي يكون بالتنسيق التالي:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
طلب

وفي ما يلي مثال لذلك:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs
الرد

إذا نجح الطلب، يستجيب الخادم برمز حالة HTTP 200 OK ومجموعة الفلاتر التي تم استردادها:

{
  "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
  "format": "VIDEO",
  "environment": "WEB",
  "platforms": ["DESKTOP"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

إدراج مجموعات فلاتر

ستعرض طريقة القائمة مجموعات الفلاتر التي يمكن الوصول إليها من المستوى الذي يتم استدعاؤه فقط. على سبيل المثال، لن يرى حساب مقدّم عروض الأسعار مجموعات الفلاتر التي تم إنشاؤها لنفسه من خلال bidders.accounts.filterSets.create عند طلب bidders.filterSets.list.

على مستوى مقدِّم عروض الأسعار

يمكنك استرداد كل مجموعات الفلاتر على مستوى مقدّم عرض السعر لمقدّم عرض سعر معيّن من خلال إرسال طلب HTTP GET إلى معرّف الموارد المنتظم (URI) لمورد bidders.filtersets الذي يحتوي على التنسيق التالي:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets
طلب

في ما يلي مثال يسرد جميع مجموعات الفلاتر على مستوى مقدِّم عرض السعر لأحد عروض الأسعار التي تحمل رقم التعريف 12345678:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets
الرد
{
  "filterSets": [{
      "filterSetId": "99994",
      "name": "bidders/12345678/filterSets/test-b-1",
      "relativeDateRange": {
        "durationDays": 30
      }
    },
    {
      "realtimeTimeRange": {
        "startTimeStamp": "2017-11-15T12:30:30.072831583Z"
      },
      "filterSetId": "99995",
      "name": "bidders/12345678/filterSets/test-b-2",
      "timeSeriesGranularity": "HOURLY"
    },
    {
      "absoluteDateRange": {
        "endDate": {
          "day": 12,
          "month": 3,
          "year": 2017
        },
        "startDate": {
          "day": 26,
          "month": 11,
          "year": 2017
        }
      },
      "filterSetId": "99996",
      "name": "bidders/12345678/filterSets/bidder-fs",
      "timeSeriesGranularity": "DAILY",
      "platforms": ["TABLET", "MOBILE"],
      "environment": "APP",
      "format": "DISPLAY"
    }
  ]
}

مستوى الحساب

يمكنك استرداد جميع مجموعات الفلاتر على مستوى الحساب لحساب معيّن من خلال إرسال طلب HTTP GET إلى معرّف الموارد المنتظم (URI) لمورد bidders.accounts.filtersets الذي يحتوي على التنسيق التالي:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets
طلب

في ما يلي مثال يتضمن كل مجموعات الفلاتر على مستوى الحساب لحساب فرعي رقم تعريف الحساب 87654321:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets
الرد
{
  "filterSets": [{
        "realtimeTimeRange": {
        "startTimeStamp": "2017-11-19T04:24:43.252893487Z"
      },
      "filterSetId": "99997",
      "name": "bidders/12345678/accounts/87654321/filterSets/test-a-1",
      "timeSeriesGranularity": "DAILY"
    },
    {
      "absoluteDateRange": {
        "endDate": {
          "day": 3,
          "month": 12,
          "year": 2017
        },
        "startDate": {
          "day": 26,
          "month": 11,
          "year": 2017
        }
      },
      "filterSetId": "99998",
      "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
      "timeSeriesGranularity": "DAILY",
      "platforms": ["DESKTOP"],
      "environment": "WEB",
      "format": "VIDEO"
    }
  ]
}

حذف مجموعة فلاتر

يمكنك استخدام الطريقة delete لإزالة أي مجموعات فلاتر غير عابرة لم تعُد ضرورية. يمكنها فقط إزالة مجموعات الفلاتر التي يمكن الوصول إليها من مستوى طلبها. على سبيل المثال، لا يمكن لحساب نظام عروض الأسعار حذف مجموعة فلاتر تم إنشاؤها باستخدام bidders.accounts.filterSets.create باستخدام bidders.filterSets.delete.

على مستوى مقدِّم عروض الأسعار

يمكنك حذف مجموعة فلاتر على مستوى مقدّم عروض الأسعار لحساب معيّن من خلال إرسال طلب HTTP DELETE إلى معرّف الموارد المنتظم (URI) لمورد bidders.filtersets، والذي يحتوي على التنسيق التالي:

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
طلب

في ما يلي مثال على حذف مجموعة فلاتر على مستوى نظام عروض الأسعار:

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/test-b-2
الرد

وفي حال نجاح هذا الإجراء، سيكون نص الطلب فارغًا. لن يكون من الممكن الوصول إلى مجموعة الفلاتر المحدّدة بعد الآن.

مستوى الحساب

يمكنك حذف مجموعة فلاتر على مستوى الحساب لحساب معيّن من خلال إرسال طلب HTTP DELETE إلى معرّف الموارد المنتظم (URI) لمورد bidders.accounts.filtersets، والذي يحتوي على التنسيق التالي:

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
طلب

في ما يلي مثال على حذف مجموعة فلاتر على مستوى الحساب:

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/test-a-1
الرد

وفي حال نجاح هذا الإجراء، سيكون نص الطلب فارغًا. لن يكون من الممكن الوصول إلى مجموعة الفلاتر المحدّدة بعد الآن.

استرداد مقاييس تحديد المشاكل في عروض الأسعار في الوقت الفعلي (RTB) وحلّها

تعمل جميع موارد تحديد المشاكل في عرض الأسعار في الوقت الفعلي (RTB) والمستخدَمة لتلقّي المقاييس بطريقة مشابهة، إذ تتضمّن طريقة واحدة لإدراج المقاييس لمجموعة الفلاتر المحدّدة من خلال مَعلمة مسار filterSetName. ستحدّد مجموعة الفلاتر المحدّدة الفلاتر والإعدادات التي سيتم تطبيقها عند إجراء طلبات بحث عن المقاييس. سيؤدي استدعاء هذه الموارد من مستوى مقدّم عروض الأسعار إلى عرض مقاييس مجمّعة من حساب مقدّم عرض السعر وجميع الحسابات الفرعية المرتبطة به، في حين ستعرض المكالمة من مستوى الحساب مقاييس لحساب فردي فقط.

مقاييس عروض الأسعار

يتم استخدام المورد bidMetrics لاسترداد المقاييس التي تُقاس بعدد عروض الأسعار. على سبيل المثال، يمكنك استخدام هذا المقياس لتحديد إجمالي عدد عروض الأسعار خلال نطاق زمني معيّن، وعدد عروض الأسعار التي لم تتم فلترتها من المزاد وحصدت مرة ظهور، وما إلى ذلك. وكما هو الحال مع جميع موارد تحديد المشاكل في عروض الأسعار في الوقت الفعلي (RTB) الأخرى المستخدَمة لجمع المقاييس، لا يتم استخدام سوى طريقة list.

إدراج مقاييس عروض الأسعار على مستوى مقدِّم عروض الأسعار

يمكنك إدراج مقاييس عروض الأسعار على مستوى مقدّم عروض الأسعار لفلتر معيّن من خلال إرسال طلب HTTP GET إلى معرّف الموارد المنتظم (URI) لمورد bidders.filtersets.bidMetrics الذي يحتوي على التنسيق التالي:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}/bidMetrics
طلب

في ما يلي مثال على مقاييس عروض الأسعار على مستوى نظام عروض الأسعار:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs/bidMetrics
الرد

إذا نجح الطلب، يستجيب الخادم برمز حالة 200 OK ونص يحتوي على صفوف المقاييس للأبعاد المحددة ودرجة الدقة.

{
  "bidMetricsRows": [{
        "bids": {
        "value": "6160"
      },
      "bidsInAuction": {
        "value": "5698"
      },
      "billedImpressions": {
        "value": "1196"
      },
      "impressionsWon": {
        "value": "2920"
      },
      "measurableImpressions": {
        "value": "1160"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-11-29T08:00:00Z",
          "startTime": "2017-11-28T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "683"
      }
    },
    {
      "bids": {
        "value": "104288"
      },
      "bidsInAuction": {
        "value": "94016"
      },
      "billedImpressions": {
        "value": "99"
      },
      "impressionsWon": {
        "value": "125"
      },
      "measurableImpressions": {
        "value": "94"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-11-30T08:00:00Z",
          "startTime": "2017-11-29T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "87"
      }
    },
    {
      "bids": {
        "value": "3999"
      },
      "bidsInAuction": {
        "value": "3631"
      },
      "billedImpressions": {
        "value": "618"
      },
      "impressionsWon": {
        "value": "1819"
      },
      "measurableImpressions": {
        "value": "604"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-01T08:00:00Z",
          "startTime": "2017-11-30T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "369"
      }
    },
    {
      "bids": {
        "value": "15"
      },
      "bidsInAuction": {
        "value": "3"
      },
      "billedImpressions": {},
      "impressionsWon": {
        "value": "3"
      },
      "measurableImpressions": {},
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-02T08:00:00Z",
          "startTime": "2017-12-01T08:00:00Z"
        }
      },
      "viewableImpressions": {}
    }
  ]
}

ملاحظة: لن تظهر في الاستجابة أيّ حقول تمّ ضبطها على 0 لمقياس معيّن. يشير مقياسا billedImpressions وmeasurableImpressions الفارغان أعلاه إلى أنّه تم ضبط القيمة والتباين بينهما على 0.

تحذير: بالنسبة إلى أيّ تصنيف للبيانات في الردّ، لن تتضمّن الاستجابة صفوفًا إذا لم تكن تحتوي على مقياس واحد غير صفري على الأقل. على سبيل المثال، عند تحديد timeSeriesGranularity، لن تتضمّن الاستجابة صفوفًا لأي timeInterval خلال النطاق الزمني المحدّد لمجموعة الفلاتر حيث تكون جميع المقاييس صفرًا.

سرد مقاييس عروض الأسعار على مستوى الحساب

يمكنك إدراج مقاييس عروض الأسعار على مستوى الحساب لمجموعة فلاتر معيّنة عن طريق إرسال طلب HTTP GET إلى معرّف الموارد المنتظم (URI) لمورد bidders.accounts.filtersets.bidMetrics، والذي يحتوي على التنسيق التالي:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}/bidMetrics
طلب

في ما يلي مثال لإدراج مقاييس عروض الأسعار على مستوى الحساب:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs/bidMetrics
الرد

إذا نجح الطلب، يستجيب الخادم برمز حالة 200 OK ونص يحتوي على صفوف المقاييس للأبعاد المحددة ودرجة الدقة.

{
  "bidMetricsRows": [{
      "bids": {
        "value": "1748"
      },
      "bidsInAuction": {
        "value": "1421"
      },
      "billedImpressions": {
        "value": "301"
      },
      "impressionsWon": {
        "value": "915"
      },
      "measurableImpressions": {
        "value": "298"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-01T08:00:00Z",
          "startTime": "2017-11-30T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "172"
      }
    },
    {
      "bids": {
        "value": "6"
      },
      "bidsInAuction": {
        "value": "2"
      },
      "billedImpressions": {},
      "impressionsWon": {
        "value": "1"
      },
      "measurableImpressions": {},
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-02T08:00:00Z",
          "startTime": "2017-12-01T08:00:00Z"
        }
      },
      "viewableImpressions": {}
    }
  ]
}

ملاحظة: لن تظهر في الاستجابة أيّ حقول تمّ ضبطها على 0 لمقياس معيّن. يشير مقياسا billedImpressions وmeasurableImpressions الفارغان أعلاه إلى أنّه تم ضبط كل من القيمة والتباين بينهما على 0.

تحذير: بالنسبة إلى أيّ تصنيف للبيانات في الردّ، لن تتضمّن الاستجابة صفوفًا إذا لم تكن تحتوي على مقياس واحد غير صفري على الأقل. على سبيل المثال، عند تحديد timeSeriesGranularity، لن تتضمّن الاستجابة صفوفًا لأي timeInterval خلال النطاق الزمني المحدّد لمجموعة الفلاتر حيث تكون جميع المقاييس صفرًا.