التقسيم

يمكن تنفيذ التقسيم، المتاح في واجهة مستخدم "إعلانات Google" كقائمة منفصلة، في Google Ads API من خلال إضافة الحقل المناسب إلى طلب البحث. على سبيل المثال، عند إضافة السمة segments.device إلى طلب بحث، يتم إنشاء تقرير يتضمّن صفًا لكل مجموعة من الأجهزة والمورد المحدَّد في عبارة FROM، وتقسيم القيم الإحصائية (مرات الظهور والنقرات والإحالات الناجحة وما إلى ذلك) بينهما.

بينما لا يمكن استخدام سوى شريحة واحدة في كل مرة في واجهة مستخدم "إعلانات Google"، يمكنك من خلال واجهة برمجة التطبيقات تحديد شرائح متعددة في طلب البحث نفسه.

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

ستبدو نتائج إرسال هذا الطلب إلى GoogleAdsService.SearchStream على النحو التالي: سلسلة JSON:

{
  "results":[
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"10922"
      },
      "segments":{
        "device":"MOBILE"
      }
    },
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"28297"
      },
      "segments":{
        "device":"DESKTOP"
      }
    },
    ...
  ]
}

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

التقسيم الضمني

يتم تقسيم كل تقرير في البداية حسب المورد المحدّد في عبارة FROM. يتم عرض حقل resources_name للمورد في عبارة FROM ويتم تقسيم المقاييس حسبه، حتى إذا لم يتم تضمين الحقل resources_name بشكل صريح في طلب البحث. على سبيل المثال، عند تحديد ad_group كمورد في عبارة FROM، سيتم عرض ad_group.resource_name تلقائيًا وسيتم تقسيم المقاييس إليه ضمنًا على مستوى المجموعة الإعلانية.

لذلك بالنسبة لهذا الاستعلام،

SELECT metrics.impressions
FROM ad_group

فستحصل على سلسلة JSON مثل هذه:

{
  "results":[
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/2222222222"
      },
      "metrics":{
        "impressions":"237"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/33333333333"
      },
      "metrics":{
        "impressions":"15"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/44444444444"
      },
      "metrics":{
        "impressions":"0"
      }
    }
  ]
}

يُرجى العِلم أنّه يتم دائمًا عرض الحقل resource_name في adGroup بسبب تحديد ad_group كمورد في عبارة FROM.

حقول الأقسام القابلة للاختيار

ليست كل حقول الأقسام قابلة للاختيار لمورد معيَّن في عبارة FROM. على سبيل المثال، سنواصل إجراء طلبات البحث من المرجع ad_group. ليكون حقل الشريحة قابلاً للاختيار من مورد "المجموعة الإعلانية"، يجب توفُّر هذا الحقل في قائمة "Segments" للمجموعة الإعلانية. قائمة Segments هي الجزء الأصفر من جدول الحقول المتاحة على صفحة البيانات الوصفية لمورد ad_group.

تقسيم الموارد

عند الاختيار من بين بعض الموارد، قد يتوفّر لك خيار الانضمام ضمنيًا إلى الموارد ذات الصلة من خلال اختيار حقولها إلى جانب حقول المورد في عبارة FROM. ويمكن العثور على هذه الموارد ذات الصلة في قائمة "Attributed Resources" على المورد ضمن صفحة البيانات الوصفية الخاصة بالعبارة FROM. في حال استخدام المورد ad_group، سيكون بإمكانك أيضًا اختيار حقول من المرجع campaign. وسيتم تلقائيًا عرض حقل resources_name لأي Attributed Resources يتضمن حقلاً واحدًا على الأقل في عبارة SELECT، حتى إذا لم يتم تضمين حقلresource_name بشكل صريح في طلب البحث.

مثلما تختار حقول Attributed Resource، يمكنك أيضًا اختيار حقول Segmenting Resource. إذا تضمّن مورد معيّن قائمة Segmenting Resources على صفحة البيانات الوصفية الخاصة به، سيؤدي اختيار الحقول من أحد هذه الموارد المدرَجة إلى تقسيم طلب البحث حسب resources_name المعروض الخاص بـ Segmenting Resource. على سبيل المثال، ستجد أنّ مورد campaign مُدرج على أنّه Segmenting Resource لمورد campaign_budget. عند اختيار أيّ حقل حملة، مثل campaign.name، من مورد campaign_Budget، لن يؤدّي اختيار حقل campaign.name فقط إلى إرجاع الحقل campaign.resource_name وتقسيمه.

إمكانية الاختيار بين الشرائح والمقاييس

وقد لا يكون حقل شريحة معيّن متوافقًا مع بعض حقول الأقسام الأخرى أو مع بعض حقول المقاييس. لتحديد حقول الأقسام المتوافقة مع بعضها، يمكنك مراجعة قائمة selectable_with للأقسام في عبارة SELECT.

وفي حال استخدام المورد ad_group، يتوفّر أكثر من 50 شريحة يمكنك اختيارها. في المقابل، تشمل قائمة selectable_with الخاصة بـ segments.hotel_check_in_date مجموعة أصغر بكثير من الشرائح المتوافقة. وهذا يعني أنّك إذا أضفت الحقل segments.hotel_check_in_date إلى عبارة SELECT، ستقتصر على الشرائح المتاحة التي يتبقّى لتحديدها عند تقاطع هاتين القائمتين.

عند إضافة بعض الشرائح، قد تنخفض المقاييس في صف الملخّص
عند إضافة segments.keyword.info.match_type إلى طلب بحث باستخدام FROM ad_group_ad، تطلب هذه الشريحة من طلب البحث الحصول فقط على صفوف البيانات التي تحتوي على كلمات رئيسية وإزالة أي صف غير مرتبط بكلمة رئيسية. في هذه الحالة، ستكون المقاييس أقل لأنّها ستستبعد أي مقاييس غير متعلّقة بالكلمات الرئيسية.

قواعد المقاطع في عبارة WHERE

عند تضمين مقطع في عبارة WHERE، يجب أن يكون أيضًا ضمن عبارة SELECT. وتُستثنى من هذه القاعدة شرائح التاريخ التالية، والتي يُشار إليها باسم شرائح التاريخ الأساسي:

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

قواعد حقول شريحة التاريخ الأساسي

وظائف الشرائح segments.date وsegments.week وsegments.month وsegments.quarter وsegments.year على النحو التالي:

  • يمكن فلترة هذه المقاطع في عبارة WHERE بدون ظهورها في البند SELECT.

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

أمثلة

غير صالح: بما أنّ السمة segments.date مضمّنة في الفقرة SELECT، يجب تحديد نطاق زمني محدّد في البند WHERE لكل من segments.date أو segments.week أو segments.month أو segments.quarter أو segments.year.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
صالح: يعرض طلب البحث هذا أسماء الحملات والنقرات التي تم تسجيلها خلال النطاق الزمني. يُرجى العِلم أنّ العلامة segments.date لا تحتاج إلى الظهور في عبارة SELECT.
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
صالح: يعرض طلب البحث هذا أسماء الحملات والنقرات مقسّمة حسب التاريخ لجميع الأيام في النطاق الزمني.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
صالح: يعرض طلب البحث هذا أسماء الحملات والنقرات مقسّمة حسب الشهر لجميع الأيام في النطاق الزمني.
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
صالح: يعرض طلب البحث هذا أسماء الحملات والنقرات مقسّمة حسب ربع السنة ثم حسب الشهر لجميع الأشهر في نطاق السنة.
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2015
  AND segments.year < 2020

search_term_view

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

{
  "results":[
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"3"
      },
      "segments":{
        "date":"2015-06-15"
      }
    },
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"2"
      },
      "segments":{
        "date":"2015-06-15"
      }
    }
  ]
}

رغم أن العنصرين المعروضين في هذا المثال يبدو أنهما مكرّران، فإن أسماء مواردهما مختلفة في الواقع، لا سيما في الجزء "المجموعة الإعلانية". وهذا يعني أن عبارة البحث "صور Google" تُنسب إلى المجموعتين الإعلانيتين (المعرّف 2222222222 و33333333333) في التاريخ نفسه (15-06-2015). وبالتالي، يمكننا أن نستنتج أن واجهة برمجة التطبيقات عملت على النحو المنشود ولم تعرض كائنات مكررة في هذه الحالة.