جستجو و SearchStream

Google Ads API دارای سازوکار گزارش‌دهی سنجه‌ها و بازیابی مشخصه یکپارچه است که به شما امکان می‌دهد بااستفاده از زبان پُرسمان Google Ads پُرسمان ایجاد کنید. این کار امکان اجرای پُرسمان‌های پیچیده را فراهم می‌کند که می‌توانند حجم زیادی از داده‌ها را درباره حساب‌های Google Ads تکی برگردانند.

می‌توانید بااستفاده از روش‌های Search یا SearchStream پُرسمان ایجاد کنید. هر دو روش از پُرسمان‌های یکسانی پشتیبانی می‌کنند و نتایج یکسانی را برمی‌گردانند. روش Search داده‌ها را در صفحه‌هایی با اندازه ثابت ۱۰٬۰۰۰ ردیف برمی‌گرداند و به شما امکان می‌دهد بااستفاده از صفحه‌بندی، روی مجموعه نتایج تکرار کنید. این امر می‌تواند در شرایط پهنای باند کم یا شبکه غیرقابل‌اعتماد مفید باشد، برای مثال، برای تقسیم یک مجموعه نتیجه بزرگ به پاسخ‌های کوچک‌تر که درصورت قطع اتصال می‌توانند دوباره واکشی شوند. ازسوی‌دیگر، روش SearchStream کل مجموعه نتایج را در یک پاسخ واحد جاری‌سازی می‌کند که می‌تواند برای بازیابی انبوه داده‌ها کارآمدتر باشد.

Search و SearchStream از نشانی وب پایه یکسانی استفاده می‌کنند:

    https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds
POST /v26/customers/CUSTOMER_ID/googleAds:search HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN

{
"query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'"
}

اگر بیش‌از ۱۰٬۰۰۰ ردیف در نتایج وجود داشته باشد، nextPageToken در پاسخ برگردانده می‌شود:

{
  "results": [
    // ...
    // ...
    // ...
  ],
  "nextPageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B",
  "fieldMask": "adGroupCriterion.keyword.text,adGroupCriterion.status"
}

تکرار همان پُرسمان با pageToken اضافه‌شده با مقادیر درخواست قبلی، صفحه بعدی نتایج را واکشی می‌کند:

POST /v26/customers/CUSTOMER_ID/googleAds:search HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN

{
"query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'",
"pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B"
}

برای استفاده از روش SearchStream که همه نتایج را در یک پاسخ جاری‌شده برمی‌گرداند، روش سرویس را در نشانی وب به searchStream تغییر دهید (pageToken برای SearchStream لازم نیست):

POST /v26/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN

{
    "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'"
}