فراداده پاسخ

کتابخانه کلاینت PHP به طور پیش‌فرض، فراداده‌های پاسخ، شامل شناسه درخواست، را ثبت می‌کند . به عنوان یک روش جایگزین، می‌توانید فراداده‌های پاسخ را به صورت برنامه‌نویسی شده هنگام فراخوانی متدهای سرویس کلاینت با تنظیم پارامتر اختیاری withResponseMetadata به true دریافت کنید.

پس از فراخوانی متدهای سرویس کلاینت، می‌توانید بسته به متدی که فراخوانی می‌کنید، یک نمونه از GoogleAdsResponseMetadata را از شیء مربوطه (مانند یک سرویس کلاینت یا یک جریان) دریافت کنید. این شیء getMetadata() و getRequestId() را ارائه می‌دهد که به ترتیب آرایه کامل فراداده پاسخ و شناسه درخواست فراخوانی API را برمی‌گردانند. متد getMetadata() آرایه‌ای با ساختار مشابه خروجی زیر را برمی‌گرداند:

object(Google\Ads\GoogleAds\Lib\V25\GoogleAdsResponseMetadata)#51 (1) {
  ["metadata":"Google\Ads\GoogleAds\Lib\V25\GoogleAdsResponseMetadata":private]=>
  array(17) {
    ["content-disposition"]=>
    array(1) {
      [0]=>
      string(10) "attachment"
    }
    ["request-id"]=>
    array(1) {
      [0]=>
      string(22) "REQUEST_ID"
    }
    ...
  }
}

متد getRequestId() استخراج شناسه درخواست از آرایه متادیتا را بدون تجزیه دستی کلیدهای آرایه، ساده می‌کند.

بخش‌های زیر نحوه بازیابی GoogleAdsResponseMetadata را برای هر نوع روش توضیح می‌دهند.

جریان جستجو

برای دریافت یک شیء GoogleAdsResponseMetadata برای یک فراخوانی استریمینگ، پس از پیمایش (iteration) روی استریم، تابع getResponseMetadata() را روی شیء استریم فراخوانی کنید:

$stream = $googleAdsServiceClient->searchStream(
    SearchGoogleAdsStreamRequest::build($customerId, $query),
    ['withResponseMetadata' => true]
);

foreach ($stream->iterateAllElements() as $googleAdsRow) {
    // Process each row...
}

// Outputs the request ID.
echo $stream->getResponseMetadata()?->getRequestId() . PHP_EOL;

$stream->getResponseMetadata() ‎ یک شیء از GoogleAdsResponseMetadata ‎ را برمی‌گرداند.

روش‌های جستجو و جهش

برای دریافت یک شیء GoogleAdsResponseMetadata برای فراخوانی‌های تکی، تابع getResponseMetadata() را روی شیء سرویس گیرنده فراخوانی کنید:

// Retrieves objects.
$response = $googleAdsServiceClient->search(
    SearchGoogleAdsRequest::build($customerId, $query),
    ['withResponseMetadata' => true]
);

// Outputs the request ID.
echo $googleAdsServiceClient->getResponseMetadata()?->getRequestId() . PHP_EOL;

// Mutates campaigns.
$response = $campaignServiceClient->mutateCampaigns(
    MutateCampaignsRequest::build($customerId, $campaignOperations),
    ['withResponseMetadata' => true]
);

// Outputs the request ID.
echo $campaignServiceClient->getResponseMetadata()?->getRequestId() . PHP_EOL;

هر دو $campaignServiceClient->getResponseMetadata() و $googleAdsServiceClient->getResponseMetadata() یک شیء GoogleAdsResponseMetadata برمی‌گردانند.