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_service
và get_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_service
và get_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.