از 8 سپتامبر 2025 ، هر مورد خط جدید باید اعلام کند که آیا تبلیغات سیاسی اتحادیه اروپا (EU) را ارائه می دهد یا خیر. Display & Video 360 API و بارگذاریهای SDF که اعلانها را ارائه نمیکنند با شکست مواجه میشوند. برای جزئیات بیشتر در مورد نحوه به روز رسانی یکپارچه سازی خود برای ایجاد این اعلامیه، به صفحه لغو اعتبار ما مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
بسیاری از روشهای Display & Video 360 API عملیات پیچیدهای را انجام میدهند که ممکن است بیش از چند ثانیه طول بکشد. درخواستها برای این روشها گاهی اوقات میتواند از تأخیر مورد انتظار فراتر رود و باعث ایجاد خطا در سمت API یا مشتری شود. این صفحه شیوه هایی را برای رسیدگی به مشکلات ناشی از تاخیر طولانی درخواست فهرست می کند.
افزایش زمان پیشفرض در کتابخانه مشتری
تعداد انگشت شماری از روشهای خاص در مستندات مرجع خود بهعنوان بیش از تأخیر مورد انتظار به طور منظم برچسبگذاری شدهاند. روشهای دیگر نیز میتوانند به صورت دورهای رفتار با تأخیر بالا از خود نشان دهند.
محدودیت زمانی پیشفرض برای برخی از کتابخانههای سرویس گیرنده میتواند منجر به خطا در هنگام درخواستهای با تأخیر بالا شود. زمان های پیش فرض برای زیر مجموعه ای از کتابخانه های سرویس گیرنده پشتیبانی شده عبارتند از:
جاوا : 20 ثانیه
پایتون : 60 ثانیه
PHP : 60 ثانیه
با افزایش این مهلتهای پیشفرض میتوان از وقفههای زمانی سمت مشتری جلوگیری کرد. برای تنظیم مهلت زمانی پیشفرض برای کتابخانه مشتری خود در طول زمان اجرا، این دستورالعملها را دنبال کنید:
/** * Adjusts HTTP timeout values used by the provided request initializer. * * @param requestInitializer The {@link HttpRequestInitializer} used to authorize requests. * @param newHttpTimeout The HTTP timeout for requests in seconds. * @return An {@link HttpRequestInitializer} with modified HTTP timeout values. */privatestaticHttpRequestInitializersetHttpTimeout(finalHttpRequestInitializerrequestInitializer,finalintnewHttpTimeout){returnnewHttpRequestInitializer(){@Overridepublicvoidinitialize(HttpRequesthttpRequest)throwsIOException{requestInitializer.initialize(httpRequest);httpRequest.setConnectTimeout(newHttpTimeout*1_000);httpRequest.setReadTimeout(newHttpTimeout*1_000);}};}
هنگام ایجاد کلاینت Display & Video 360 API عملکرد فراخوانی را انجام دهید.
// Create authorized API client with non-default timeouts.DisplayVideoservice=newDisplayVideo.Builder(credential.getTransport(),credential.getJsonFactory(),setHttpTimeout(credential,http-timeout-in-seconds)).setApplicationName("displayvideo-java-installed-app-sample").build();
پایتون
ماژول http کتابخانه کلاینت Google API Python را وارد کنید.
# Build the API service.service=discovery.build('displayvideo','v3',discoveryServiceUrl=discovery_url,credentials=credentials)
PHP
کتابخانه HTTP Guzzle را با استفاده از Composer دانلود و نصب کنید.
composerrequireguzzlehttp/guzzle:^7.0
کلاینت Guzzle HTTP را ایجاد کنید و مقدار وقفه زمانی را تعیین کنید.
$httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
کلاینت Google ایجاد کنید و سرویس گیرنده Guzzle HTTP را اختصاص دهید.
$client = new Google_Client();$client->setHttpClient($httpClient);
خطاهای مهلت زمانی API را مدیریت کنید
در موارد نادر، درخواستهایی که عملیات پیچیده را انجام میدهند، ممکن است از 180 ثانیه پایان زمان سمت سرور فراتر رود و باعث شود API یک پاسخ خطای 408 یا 504 را برگرداند.
اگر درخواستی با یکی از این کدهای خطا پاسخ میدهد، توصیه میکنیم با استفاده از استراتژی عقبنشینی نمایی دوباره این درخواستها را امتحان کنید.
اگر خطا ادامه داشت، با استفاده از فرم تماس با پشتیبانی تماس بگیرید.
تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eSome Display & Video 360 API methods might take longer to complete, potentially leading to errors due to request latency.\u003c/p\u003e\n"],["\u003cp\u003eYou can increase the default timeout in your client library (Java, Python, or PHP) to avoid client-side timeout errors.\u003c/p\u003e\n"],["\u003cp\u003eThe Display & Video 360 API has a server-side timeout of 180 seconds, after which it will return a \u003ccode\u003e408\u003c/code\u003e or \u003ccode\u003e504\u003c/code\u003e error.\u003c/p\u003e\n"],["\u003cp\u003eIf a request exceeds the server-side timeout, retry it using exponential backoff and contact support if the issue persists.\u003c/p\u003e\n"]]],["The core issue addressed is managing request latency with the Display & Video 360 API, where some operations may take longer than expected. To prevent client-side timeout errors, it is recommended to increase the default timeout in the client library. The provided examples show how to adjust timeout settings in Java, Python, and PHP. In the rare case that requests exceed the API's 180-second server-side timeout, resulting in `408` or `504` errors, the advice is to retry with exponential backoff and contact support if problems continue.\n"],null,["# Configure timeouts and retries\n\nMany Display \\& Video 360 API methods perform complex operations that might take longer than\na few seconds to complete. Requests to these methods can sometimes exceed\nexpected latency, causing errors on the API or client side. This page lists\npractices for handling issues caused by extended request latency.\n\nIncrease default timeout in client library\n------------------------------------------\n\nA handful of specific methods have been labeled in their reference documentation\nas regularly exceeding expected latency. Other methods could also exhibit\nhigh-latency behavior periodically.\n\nThe default timeout limits for some client libraries could result in errors when\nmaking high-latency requests. Default timeouts for a subset of supported client\nlibraries are:\n\n- **Java**: 20 seconds\n- **Python**: 60 seconds\n- **PHP**: 60 seconds\n\nClient-side timeouts can be avoided by raising these default timeouts. Follow\nthese instructions to adjust the default timeout for your client library during\nruntime:\n**Caution:** The Display \\& Video 360 API has a server-side timeout value of 180 seconds. If a request lasts longer than 180 seconds, the API will return an error. \n\n### Java\n\n1. **Import necessary resources.**\n\n import com.google.api.client.http.HttpRequest;\n import com.google.api.client.http.HttpRequestInitializer;\n import java.io.IOException;\n\n2. **Build function for setting HTTP timeout.**\n\n /**\n * Adjusts HTTP timeout values used by the provided request initializer.\n *\n * @param requestInitializer The {@link HttpRequestInitializer} used to authorize requests.\n * @param newHttpTimeout The HTTP timeout for requests in seconds.\n * @return An {@link HttpRequestInitializer} with modified HTTP timeout values.\n */\n private static HttpRequestInitializer setHttpTimeout(\n final HttpRequestInitializer requestInitializer,\n final int newHttpTimeout) {\n return new HttpRequestInitializer() {\n @Override\n public void initialize(HttpRequest httpRequest) throws IOException {\n requestInitializer.initialize(httpRequest);\n httpRequest.setConnectTimeout(newHttpTimeout * 1_000);\n httpRequest.setReadTimeout(newHttpTimeout * 1_000);\n }\n };\n }\n\n3. **Call function when creating the Display \\& Video 360 API client.**\n\n // Create authorized API client with non-default timeouts.\n DisplayVideo service =\n new DisplayVideo.Builder(\n credential.getTransport(),\n credential.getJsonFactory(),\n setHttpTimeout(credential, \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003ehttp\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003etimeout\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003ein\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003eseconds\u003c/span\u003e\u003c/var\u003e)\n )\n .setApplicationName(\"displayvideo-java-installed-app-sample\")\n .build();\n\n### Python\n\n1. **Import Google API Python client library http module.**\n\n from googleapiclient import http\n\n2. **Update default timeout constant.**\n\n http.DEFAULT_HTTP_TIMEOUT_SEC = \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003ehttp\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003etimeout\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-ow\"\u003ein\u003c/span\u003e\u003cspan class=\"devsite-syntax-o\"\u003e-\u003c/span\u003e\u003cspan class=\"devsite-syntax-n\"\u003eseconds\u003c/span\u003e\u003c/var\u003e\n\n3. **Build API service.**\n\n # Build the API service.\n service = discovery.build(\n 'displayvideo',\n 'v3',\n discoveryServiceUrl=discovery_url,\n credentials=credentials)\n\n### PHP\n\n1. **Download and install the Guzzle HTTP library using\n [Composer](//getcomposer.org/).**\n\n composer require guzzlehttp/guzzle:^7.0\n\n2. **Create Guzzle HTTP client, assigning timeout value.**\n\n $httpClient = new \\GuzzleHttp\\Client(['timeout' =\u003e \u003cvar translate=\"no\"\u003ehttp-timeout-in-seconds\u003c/var\u003e]);\n\n3. **Create Google client and assign Guzzle HTTP client.**\n\n $client = new Google_Client();\n $client-\u003esetHttpClient($httpClient);\n\nHandle API timeout errors\n-------------------------\n\nIn rare cases, requests completing complex operations could exceed the\nserver-side timeout of 180 seconds, causing the API to return a `408` or `504`\nerror response.\n\nIf a request responds with either of these error codes, we recommend that you\nretry these requests using the [exponential backoff strategy](/display-video/api/guides/how-tos/upload#exp-backoff).\n\nIf the error persists, reach out to support using the [contact form](/display-video/api/support/contact)."]]