Việc tìm nạp các tệp tham chiếu đến tất cả các lớp proto cần thiết để sử dụng API trong Python có thể rất dài dòng và đòi hỏi bạn phải hiểu rõ về API hoặc thường xuyên chuyển đổi ngữ cảnh để tham chiếu các proto hoặc tài liệu.
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 bất kỳ dịch vụ hoặc đối tượng loại nào trong API. Phương thức get_service
được dùng để truy xuất ứ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ã
dưới đường dẫn phiên bản google/ads/googleads/v*/services/services/
và tất cả
các loại được xác định trong 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, tốt nhất 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.
Dưới đây là ví dụ về cách sử dụng phương thức get_service
để truy xuất một thực thể 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 v18 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v18")
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="v18")
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 Enums, nhưng mỗi thực thể GoogleAdsClient
cũng có một thuộc tính enums
tải linh động Enums bằng cơ chế tương tự như phương thức get_type
. Giao diện này được thiết kế để đơn giản và dễ đọc hơn so với việc sử dụng get_type
:
client = GoogleAdsClient.load_from_storage(version=v18)
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 phầ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 thông tin này bằng cách sử dụng thuộc tính name
:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
Việc tương tác với 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ề hai 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 API được duy trì cùng một lúc. Mặc dù v18
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ũ cho đến khi chúng ngừng hoạt động. Thư viện này 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 chạy ứng dụng để lớp này luôn trả về thực thể từ phiên bản đã cho đó:
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v18/")
# The Campaign instance will be from the v18 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ẽ ghi đè phiên bản được cung cấp khi khởi chạy ứng dụng:
client = GoogleAdsService.load_from_storage()
# This will load the v18 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v18")
client = GoogleAdsService.load_from_storage(version="v18")
# This will load the v16 version of a Campaign.
campaign = client.get_type("Campaign", version="v16")
Nếu bạn không cung cấp tham số từ khoá version
, 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 cập nhật các phiên bản mới nhất và các phiên bản khác có sẵn 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.