Phương thức getter dịch vụ và loại

Việc tìm nạp các tham chiếu đến tất cả các lớp proto cần thiết để sử dụng API trong Python có thể dài dòng và yêu cầu bạn phải hiểu rõ về API hoặc thường xuyên chuyển đổi ngữ cảnh để tham chiếu đến các proto hoặc tài liệu.

Các phương thức get_serviceget_type của ứng dụng

Hai phương thức getter này cho phép bạn truy xuất mọi đối tượng dịch vụ hoặc đối tượng loại trong API. Phương thức get_service được dùng để truy xuất các ứng dụng dịch vụ. get_type được dùng cho mọi đối tượng khác. Các lớp ứng dụng dịch vụ được xác định trong mã theo đường dẫn phiên bản google/ads/googleads/v*/services/services/ và tất cả các loại đều được xác định theo nhiều danh mục đối tượng, google/ads/googleads/v*/common|enums|errors|resources|services/types/. Tất cả mã bên dưới thư mục phiên bản đều được tạo, vì vậy, bạn nên sử dụng các phương thức này thay vì nhập trực tiếp các đối tượng, trong trường hợp cấu trúc của cơ sở mã thay đổi.

Sau đây là ví dụ về cách dùng phương thức get_service để truy xuất một phiên bản của ứng dụng GoogleAdsService.

from google.ads.googleads.client import GoogleAdsClient

# "load_from_storage" loads your API credentials from disk so they
# can be used for service initialization. Providing the optional `version`
# parameter means that the v20 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v20")
googleads_service = client.get_service("GoogleAdsService")

Sau đây là ví dụ về cách sử dụng phương thức get_type để truy xuất một thực thể Campaign.

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v20")
campaign = client.get_type("Campaign")

Enum

Mặc dù bạn có thể sử dụng phương thức get_type để truy xuất Enum, nhưng mỗi thực thể GoogleAdsClient cũng có một thuộc tính enums tải Enum một cách linh động bằng cơ chế tương tự như phương thức get_type. Giao diện này đơn giản và dễ đọc hơn so với việc sử dụng get_type:

client = GoogleAdsClient.load_from_storage(version=v20)

campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED

Các trường đối tượng Proto là enum được biểu thị trong Python bằng loại enum gốc. Điều đó có nghĩa là bạn có thể dễ dàng đọc giá trị của thành viên. Làm việc với thực thể campaign trong ví dụ trước trong một repl Python:

>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3

Đôi khi, bạn nên biết tên của trường tương ứng với giá trị enum như minh hoạ ở trên. Bạn có thể truy cập vào thông tin này bằng thuộc tính name:

>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>

Cách tương tác với các enum sẽ khác nhau tuỳ thuộc vào việc bạn đặt cấu hình use_proto_plus thành true hay false. Để biết thông tin chi tiết về 2 giao diện này, hãy xem tài liệu về thông báo protobuf.

Lập phiên bản

Nhiều phiên bản của API được duy trì cùng một lúc. Mặc dù v20 có thể là phiên bản mới nhất, nhưng bạn vẫn có thể truy cập vào các phiên bản cũ hơn cho đến khi chúng ngừng hoạt động. Thư viện sẽ bao gồm các lớp thông báo proto riêng biệt tương ứng với từng phiên bản API đang hoạt động. Để truy cập vào một lớp thông báo cho một phiên bản cụ thể, hãy cung cấp tham số từ khoá version khi khởi tạo một ứng dụng để ứng dụng đó luôn trả về phiên bản từ phiên bản đã cho:

client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v20/")
# The Campaign instance will be from the v20 version of the API.
campaign = client.get_type("Campaign")

Bạn cũng có thể chỉ định phiên bản khi gọi các phương thức get_serviceget_type. Thao tác này sẽ thay thế phiên bản được cung cấp khi khởi tạo ứng dụng:

client = GoogleAdsService.load_from_storage()
# This will load the v20 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v20")

client = GoogleAdsService.load_from_storage(version="v20")
# This will load the v18 version of a Campaign.
campaign = client.get_type("Campaign", version="v18")

Nếu không có tham số từ khoá version nào được cung cấp, thì thư viện sẽ mặc định sử dụng phiên bản mới nhất. Bạn có thể xem danh sách mới nhất và các phiên bản khác hiện có trong phần điều hướng bên trái của tài liệu Tài liệu tham khảo API.