Cải thiện hiệu suất

Tài liệu này bao gồm một số kỹ thuật mà bạn có thể sử dụng để cải thiện hiệu suất của ứng dụng của bạn. Trong một số trường hợp, ví dụ từ các API được triển khai khác sẽ được sử dụng để minh hoạ cho ý tưởng đã trình bày. Tuy nhiên, các khái niệm tương tự vẫn được áp dụng cho chiến dịch Hiển thị và API Video 360.

Xử lý các tài nguyên một phần

Một cách khác để cải thiện hiệu suất của lệnh gọi API là chỉ yêu cầu phần dữ liệu mà bạn quan tâm. Điều này cho phép ứng dụng của bạn tránh chuyển, phân tích cú pháp và lưu trữ các trường không cần thiết để có thể sử dụng các tài nguyên như mạng, CPU và bộ nhớ một cách hiệu quả hơn.

Phản hồi một phần

Theo mặc định, máy chủ sẽ gửi lại bản trình bày đầy đủ của tài nguyên sau đang xử lý yêu cầu. Để đạt được hiệu suất tốt hơn, bạn có thể yêu cầu máy chủ gửi chỉ những trường bạn thực sự cần và nhận phản hồi một phần.

Để yêu cầu phản hồi một phần, hãy sử dụng tham số yêu cầu fields để chỉ định các trường bạn muốn được trả về. Bạn có thể sử dụng thông số này với bất kỳ yêu cầu nào trả về dữ liệu phản hồi.

Ví dụ:

Ví dụ sau đây cho thấy cách sử dụng tham số fields với Hiển thị và API Video 360.

Yêu cầu đơn giản: Yêu cầu HTTP GET này bỏ qua tham số fields và sẽ trả về toàn bộ tài nguyên.

GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1

Phản hồi đầy đủ về tài nguyên: Dữ liệu tài nguyên đầy đủ bao gồm: cùng với nhiều trường khác đã bị bỏ qua để cho ngắn gọn.

200 OK

{
 "advertisers": [
  {
   "name": "advertisers/1",
   "advertiserId": "1",
   "partnerId": "1",
   "displayName": "Example Advertiser 1",
   "entityStatus": "ENTITY_STATUS_ACTIVE",
   "updateTime": "2019-01-01T00:00:00.000000Z",
   "generalConfig": {
    "domainUrl": "http://example.com",
    "timeZone": "America/New_York",
    "currencyCode": "USD",
    "address": {
    }
   },
   "adServerConfig": {
    "thirdPartyOnlyConfig": {
    }
   },
   "creativeConfig": {
   },
   "dataAccessConfig": {
    "sdfConfig": {
     "sdfConfig": {
      "version": "VERSION_3_1"
     }
    }
   },
   "integrationDetails": {
   }
  },
  {
   "name": "advertisers/2",
   "advertiserId": "2",
   "partnerId": "1",
   "displayName": "Example Advertiser 2",
   "entityStatus": "ENTITY_STATUS_ACTIVE",
   "updateTime": "2019-01-01T00:00:00.000000Z",
   "generalConfig": {
    "domainUrl": "http://example.com",
    "timeZone": "America/New_York",
    "currencyCode": "USD",
    "address": {
    }
   },
   "adServerConfig": {
    "thirdPartyOnlyConfig": {
    }
   },
   "creativeConfig": {
   },
   "dataAccessConfig": {
    "sdfConfig": {
     "sdfConfig": {
      "version": "VERSION_3_1"
     }
    }
   },
   "integrationDetails": {
   }
  },
  ...
 ],
 "nextPageToken": "..."
}

Yêu cầu phản hồi một phần: Yêu cầu sau đây cho cùng một tài nguyên này sử dụng tham số fields để giảm đáng kể lượng dữ liệu được trả về.

GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1&fields=advertisers(advertiserId,partnerId,displayName)

Phản hồi một phần: Để phản hồi yêu cầu trên, máy chủ sẽ gửi lại một chứa một mảng nhà quảng cáo tương đối nhỏ chỉ bao gồm mã nhận dạng nhà quảng cáo, tên hiển thị và thuộc tính mã đối tác của mỗi nhà quảng cáo, nếu hiện tại.

200 OK

{
 "advertisers": [
  {
   "advertiserId": "1",
   "partnerId": "1",
   "displayName": "Example Advertiser 1"
  },
  {
   "advertiserId": "2",
   "partnerId": "1",
   "displayName": "Example Advertiser 2"
  },
  ...
 ]
}

Lưu ý rằng phản hồi là đối tượng JSON chỉ bao gồm các trường đã chọn và các đối tượng mẹ đi kèm.

Thông tin chi tiết về cách định dạng tham số fields sẽ được trình bày trong phần tiếp theo, sau đó là thêm thông tin chi tiết về dữ liệu chính xác được trả về trong phản hồi.

Tóm tắt cú pháp tham số trường

Định dạng của giá trị tham số yêu cầu fields rộng rãi dựa trên kiếm của bạn. Cú pháp được hỗ trợ được tóm tắt bên dưới và các ví dụ khác là được cung cấp trong phần sau.

  • Sử dụng danh sách được phân tách bằng dấu phẩy để chọn nhiều trường.

  • Sử dụng a/b để chọn một trường b được lồng trong trường a; sử dụng a/b/c để chọn một trường c lồng trong b.

  • Sử dụng bộ chọn phụ để yêu cầu một tập hợp các trường phụ cụ thể của mảng hoặc bằng cách đặt biểu thức trong dấu ngoặc đơn "( )".

    Ví dụ: fields=advertisers(advertiserId,generalConfig/domainUrl) chỉ trả về mã nhận dạng nhà quảng cáo và URL miền cho mỗi phần tử trong nhà quảng cáo. Bạn cũng có thể chỉ định một trường phụ, nơi fields=advertisers(advertiserId) tương đương với fields=advertisers/advertiserId

Ví dụ khác về cách sử dụng thông số trường

Các ví dụ dưới đây bao gồm nội dung mô tả về cách giá trị thông số fields ảnh hưởng đến phản hồi.

Xác định những trường mà bạn muốn được trả về hoặc chọn trường.

Giá trị tham số yêu cầu fields là một danh sách các trường được phân tách bằng dấu phẩy và mỗi trường được chỉ định tương ứng với gốc của phản hồi. Do đó, nếu bạn đang thực hiện thao tác list, phản hồi là một tập hợp và thường bao gồm một mảng tài nguyên. Nếu bạn đang thực hiện một thao tác trả về một tài nguyên duy nhất, các trường sẽ được chỉ định tương ứng với tài nguyên đó nguồn. Nếu trường bạn chọn là (hoặc là một phần của) một mảng, máy chủ sẽ trả về phần đã chọn của tất cả các phần tử trong mảng.

Sau đây là một số ví dụ ở cấp bộ sưu tập:

Ví dụ: Hiệu quả
advertisers Trả về tất cả phần tử trong Mảng advertisers, bao gồm tất cả các trường trong mỗi phần tử, nhưng không có trường nào khác.
advertisers,nextPageToken Trả về cả nextPageToken và tất cả các phần tử trong Mảng advertisers.
advertisers/advertiserId Chỉ trả về advertiserId cho tất cả các phần tử trong Mảng advertisers.

Bất cứ khi nào một trường được lồng được trả về, phản hồi bao gồm các đối tượng mẹ đi kèm. Các trường mẹ không bao gồm bất kỳ trường con nào khác, trừ trường hợp họ cũng được chọn một cách rõ ràng.
advertisers/generalConfig/domainUrl Trả về trường domainUrl cho đối tượng generalConfig, được lồng trong Mảng advertisers.

Dưới đây là một số ví dụ ở cấp tài nguyên:

Ví dụ: Hiệu quả
advertiserId Trả về trường advertiserId của tài nguyên được yêu cầu.
generalConfig/domainUrl Trả về trường domainUrl cho đối tượng generalConfig trong tài nguyên được yêu cầu.
Chỉ yêu cầu các phần của những trường cụ thể bằng cách sử dụng lựa chọn phụ.

Theo mặc định, nếu yêu cầu của bạn chỉ định các trường cụ thể, máy chủ sẽ trả về toàn bộ các đối tượng hoặc phần tử mảng. Bạn có thể chỉ định một câu trả lời chỉ bao gồm một số trường phụ nhất định. Bạn thực hiện việc này bằng cách sử dụng "( )" như trong ví dụ dưới đây.

Ví dụ: Hiệu quả
advertisers(advertiserId,generalConfig/domainUrl) Chỉ trả về giá trị của advertiserId và GeneralConfig domainUrl cho mỗi phần tử trong advertisers .
Xử lý phản hồi một phần

Sau khi máy chủ xử lý yêu cầu hợp lệ bao gồm truy vấn fields thì nó sẽ gửi lại mã trạng thái HTTP 200 OK cùng với yêu cầu . Nếu tham số truy vấn fields có lỗi hoặc không hợp lệ, tham số máy chủ trả về mã trạng thái HTTP 400 Bad Request kèm theo một lỗi cho bạn biết lỗi trong việc chọn trường (ví dụ: "Invalid field selection a/b").