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

Tìm nạp thông tin tham khảo đế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à đòi hỏi bạn phải có hiểu biết nội tại về API hoặc thường xuyên chuyển đổi ngữ cảnh để tham khảo các giao thức 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 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 các ứng dụng dịch vụ. get_type được sử dụng cho bất kỳ đối tượng nào khác. Các lớp ứng dụng dịch vụ được xác định trong mã trong đường dẫn phiên bản google/ads/googleads/v*/services/services/ và tất cả được xác định theo các danh mục đối tượng khác nhau, google/ads/googleads/v*/common|enums|errors|resources|services/types/ Tất cả mã trong thư mục phiên bản đều được tạo, vì vậy đây là cách tốt nhất sử dụng các phương pháp này thay vì nhập trực tiếp đố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 v17 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v17")
googleads_service = client.get_service("GoogleAdsService")

Dưới đâ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="v17")
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 phương thức Thực thể GoogleAdsClient cũng có một thuộc tính enums tự động tải các Enum bằng cơ chế tương tự như phương thức get_type. Giao diện này nhằm đơn giản và dễ đọc hơn so với sử dụng get_type:

client = GoogleAdsClient.load_from_storage(version=v17)

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ị bằng Python bởi thuộc tính gốc enum. Đ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 từ ví dụ trước trong một bản sao lưu Python:

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

Đôi khi, sẽ rất hữu ích nếu biết tên của trường tương ứng với giá trị enum như đã hiển thị ở trên. Bạn có thể truy cập vào thông tin này bằng name thuộc tính:

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

Việc tương tác với enum là khác nhau tuỳ thuộc vào việc bạn có use_proto_plus cấu hình được đặt thành true hoặc false. Để biết chi tiết về hai giao diện, 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 lúc. Trong khi v17 có thể là phiên bản mới nhất, các phiên bản trước đó vẫn là phiên bản cũ cho đến khi mặt trời lặn. Thư viện này sẽ bao gồm các proto riêng biệt các lớp thông báo tương ứng với từng phiên bản API đang hoạt động. Để truy cập vào thông báo cho một phiên bản cụ thể 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ề thực thể từ phiên bản đã cho phiên bản:

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

Bạn cũng có thể chỉ định phiên bản khi gọi get_serviceget_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 v17 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v17")

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

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. Danh sách cập nhật về các phiên bản 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 trên Tài liệu về Tài liệu tham khảo API.