Kể từ ngày 8 tháng 9 năm 2025, mỗi mục hàng mới sẽ cần phải khai báo xem mục hàng đó có phân phát quảng cáo chính trị ở Liên minh Châu Âu (EU) hay không. Display & Video 360 API và các tệp SDF được tải lên mà không cung cấp thông tin khai báo sẽ không thành công. Hãy xem trang thông báo về những nội dung không dùng nữa để biết thêm thông tin về cách cập nhật quy trình tích hợp để đưa ra nội dung khai báo này.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Nhiều phương thức API Display & Video 360 thực hiện các thao tác phức tạp có thể mất nhiều hơn vài giây để hoàn tất. Đôi khi, các yêu cầu đối với các phương thức này có thể vượt quá độ trễ dự kiến, gây ra lỗi ở phía API hoặc máy khách. Trang này liệt kê các phương pháp xử lý các vấn đề do độ trễ yêu cầu kéo dài.
Tăng thời gian chờ mặc định trong thư viện ứng dụng
Một số phương thức cụ thể đã được gắn nhãn trong tài liệu tham khảo của chúng là thường xuyên vượt quá độ trễ dự kiến. Các phương thức khác cũng có thể hiển thị hành vi có độ trễ cao theo định kỳ.
Giới hạn thời gian chờ mặc định cho một số thư viện ứng dụng khách có thể dẫn đến lỗi khi thực hiện các yêu cầu có độ trễ cao. Thời gian chờ mặc định cho một số thư viện ứng dụng khách được hỗ trợ là:
Java: 20 giây
Python: 60 giây
PHP: 60 giây
Bạn có thể tránh thời gian chờ phía máy khách bằng cách tăng thời gian chờ mặc định này. Làm theo hướng dẫn này để điều chỉnh thời gian chờ mặc định cho thư viện ứng dụng trong thời gian chạy:
/** * 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);}};}
Gọi hàm khi tạo ứng dụng API Display & Video 360.
// 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();
Python
Nhập mô-đun http của thư viện ứng dụng Google API Python.
# Build the API service.service=discovery.build('displayvideo','v3',discoveryServiceUrl=discovery_url,credentials=credentials)
PHP
Tải và cài đặt thư viện Guzzle HTTP bằng Composer.
composerrequireguzzlehttp/guzzle:^7.0
Tạo ứng dụng khách HTTP Guzzle, chỉ định giá trị thời gian chờ.
$httpClient = new \GuzzleHttp\Client(['timeout' => http-timeout-in-seconds]);
Tạo ứng dụng Google và chỉ định ứng dụng HTTP Guzzle.
$client = new Google_Client();$client->setHttpClient($httpClient);
Xử lý lỗi hết thời gian chờ API
Trong một số ít trường hợp, các yêu cầu hoàn tất các thao tác phức tạp có thể vượt quá thời gian chờ phía máy chủ là 180 giây, khiến API trả về phản hồi lỗi 408 hoặc 504.
[null,null,["Cập nhật lần gần đây nhất: 2025-07-25 UTC."],[[["\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)."]]