Hướng dẫn này giới thiệu các thành phần chính tạo nên Google Ads API. Google Ads API bao gồm tài nguyên và dịch vụ. Tài nguyên đại diện cho một thực thể Google Ads, trong khi dịch vụ truy xuất và thao tác với các thực thể Google Ads.
Hệ phân cấp đối tượng
Bạn có thể xem tài khoản Google Ads dưới dạng hệ phân cấp đối tượng.

Tài nguyên cấp cao nhất của một tài khoản là khách hàng.
Mỗi khách hàng chứa một hoặc nhiều chiến dịch đang hoạt động .
Mỗi chiến dịch chứa một hoặc nhiều nhóm quảng cáo, dùng để nhóm quảng cáo thành các tập hợp logic.
Quảng cáo nhóm quảng cáo đại diện cho một quảng cáo mà bạn đang chạy trong một nhóm quảng cáo. Ngoại trừ Chiến dịch quảng cáo ứng dụng (chỉ có thể có một quảng cáo nhóm quảng cáo cho mỗi nhóm quảng cáo), mỗi nhóm quảng cáo chứa một hoặc nhiều quảng cáo nhóm quảng cáo.
Chiến dịch Tối đa hoá hiệu suất sử dụng một cấu trúc khác với các loại chiến dịch khác: thay vì nhóm quảng cáo và quảng cáo nhóm quảng cáo, một chiến dịch Tối đa hoá hiệu suất chứa các nhóm thành phần. Bạn
liên kết các thành phần mẫu quảng cáo với một nhóm thành phần bằng cách sử dụng
AssetGroupAsset và đính kèm tín hiệu đối tượng hoặc chủ đề tìm kiếm
bằng cách sử dụng AssetGroupSignal.
Bạn có thể đính kèm một hoặc nhiều AdGroupCriterion
hoặc CampaignCriterion tài nguyên vào một nhóm quảng cáo hoặc chiến dịch. Các tài nguyên này đại diện cho các tiêu chí xác định cách kích hoạt quảng cáo.
Có nhiều loại tiêu chí,
chẳng hạn như từ khoá, độ tuổi và vị trí. Các tiêu chí được xác định ở cấp chiến dịch sẽ ảnh hưởng đến tất cả các tài nguyên khác trong chiến dịch. Bạn cũng có thể chỉ định ngân sách cũng như ngày và giờ bắt đầu và kết thúc cho chiến dịch hoặc cho từng quảng cáo riêng lẻ bằng cách sử dụng AdGroupAd.start_date_time và AdGroupAd.end_date_time.
Cuối cùng, bạn có thể đính kèm các thành phần ở cấp tài khoản, chiến dịch, nhóm quảng cáo hoặc nhóm thành phần. Thành phần cho phép bạn cung cấp thêm thông tin cho quảng cáo, chẳng hạn như số điện thoại, địa chỉ đường phố hoặc chương trình khuyến mãi. Xem bài viết Tổng quan về thành phần.
Tài nguyên
Tài nguyên đại diện cho các thực thể trong tài khoản Google Ads.
Campaign và AdGroup là
hai ví dụ về tài nguyên.
Mã đối tượng
Mỗi đối tượng trong Google Ads được xác định bằng mã riêng. Một số mã này là duy nhất trên toàn cầu cho tất cả tài khoản Google Ads, trong khi một số mã khác chỉ duy nhất trong một phạm vi giới hạn.
| Mã đối tượng | Phạm vi duy nhất | Duy nhất trên toàn cầu? |
|---|---|---|
| Mã ngân sách | Toàn cầu | Có |
| Mã chiến dịch | Toàn cầu | Có |
| Mã nhóm quảng cáo | Toàn cầu | Có |
| Mã quảng cáo | Nhóm quảng cáo | Không, nhưng cặp (AdGroupId, AdId) là duy nhất trên toàn cầu. Bạn không được chia sẻ AdId trên nhiều nhóm quảng cáo. |
| Mã AdGroupCriterion | Nhóm quảng cáo | Không, nhưng cặp (AdGroupId, CriterionId) là duy nhất trên toàn cầu |
| Mã CampaignCriterion | Chiến dịch | Không, nhưng cặp (CampaignId, CriterionId) là duy nhất trên toàn cầu |
| Mã nhãn | Khách hàng | Không, nhưng cặp (CustomerId, LabelId) là duy nhất trên toàn cầu |
| Mã UserList | Toàn cầu | Có |
| Mã tài sản | Toàn cầu | Có |
Bạn có thể sử dụng các quy tắc về mã này khi thiết kế bộ nhớ cục bộ cho các đối tượng Google Ads.
Bạn có thể sử dụng một số đối tượng cho nhiều loại thực thể. Trong những trường hợp như vậy, đối tượng chứa một trường type mô tả nội dung của đối tượng đó. Ví dụ:
AdGroupAd có thể tham chiếu đến một đối tượng như quảng cáo tìm kiếm thích ứng, quảng cáo khách sạn hoặc quảng cáo Tạo nhu cầu. Bạn có thể truy cập vào giá trị này
thông qua trường AdGroupAd.ad.type và trả về một
giá trị trong enum AdType. Xin lưu ý rằng khả năng biến đổi có thể khác nhau tuỳ theo phiên bản (ví dụ: VideoResponsiveAdInfo trên Ad có thể thay đổi trong phiên bản 24 trở lên).
Tên tài nguyên
Mỗi tài nguyên được xác định duy nhất bằng một chuỗi resource_name nối tài nguyên và các tài nguyên mẹ của tài nguyên đó thành một đường dẫn. Ví dụ: tên tài nguyên chiến dịch có dạng:
customers/customer_id/campaigns/campaign_id
Vì vậy, đối với một chiến dịch có mã 987654 trong tài khoản Google Ads có mã khách hàng 1234567, resource_name sẽ là:
customers/1234567/campaigns/987654
Dịch vụ
Dịch vụ cho phép bạn truy xuất và sửa đổi các thực thể Google Ads. Có 3 loại dịch vụ: dịch vụ sửa đổi, dịch vụ truy xuất đối tượng và số liệu thống kê, cũng như dịch vụ truy xuất siêu dữ liệu.
Sửa đổi (thay đổi) đối tượng
Các dịch vụ dành riêng cho tài nguyên sẽ sửa đổi các thực thể của một loại tài nguyên được liên kết bằng cách sử dụng yêu cầu mutate. Bạn cũng có thể sử dụng
GoogleAdsService.Mutate để thực hiện các thay đổi nguyên tử
trên nhiều loại tài nguyên trong một yêu cầu (chẳng hạn như cùng nhau tạo ngân sách chiến dịch, chiến dịch và nhóm quảng cáo).
Ví dụ về các dịch vụ dành riêng cho tài nguyên:
CustomerServiceđể sửa đổi khách hàng.CampaignServiceđể sửa đổi chiến dịch.AdGroupServiceđể sửa đổi nhóm quảng cáo.
Mỗi yêu cầu mutate phải bao gồm các đối tượng operation tương ứng. Ví dụ: phương thức CampaignService.MutateCampaigns dự kiến sẽ có một hoặc nhiều
thực thể của CampaignOperation. Hãy xem
Thay đổi đối tượng để biết thông tin chi tiết về
các thao tác.
Thay đổi đồng thời
Không được sửa đổi một đối tượng Google Ads đồng thời bởi nhiều nguồn. Điều này có thể gây ra lỗi nếu bạn có nhiều người dùng cập nhật cùng một đối tượng bằng ứng dụng của bạn hoặc nếu bạn đang thay đổi các đối tượng Google Ads song song bằng nhiều luồng. Điều này bao gồm việc cập nhật đối tượng từ nhiều luồng trong cùng một ứng dụng hoặc từ các ứng dụng khác nhau (ví dụ: ứng dụng của bạn và một phiên đồng thời trên giao diện người dùng Google Ads).
API không cung cấp cách khoá một đối tượng trước khi cập nhật; nếu hai nguồn
cố gắng thay đổi một đối tượng cùng lúc, API sẽ đưa ra
DatabaseError.CONCURRENT_MODIFICATION_ERROR.
Thay đổi không đồng bộ so với thay đổi đồng bộ
Các phương thức thay đổi Google Ads API là đồng bộ. Các lệnh gọi API chỉ trả về phản hồi sau khi các đối tượng được thay đổi, yêu cầu bạn phải chờ phản hồi cho từng yêu cầu. Mặc dù phương pháp này tương đối đơn giản để viết mã, nhưng có thể ảnh hưởng tiêu cực đến việc cân bằng tải và lãng phí tài nguyên nếu các quy trình buộc phải chờ các lệnh gọi hoàn tất.
Một phương pháp thay thế là thay đổi các đối tượng không đồng bộ bằng cách sử dụng
BatchJobService, thực hiện các lô
thao tác trên nhiều dịch vụ mà không cần chờ hoàn tất. Sau khi gửi một công việc hàng loạt, máy chủ Google Ads API sẽ thực thi các thao tác không đồng bộ, giải phóng các quy trình để thực hiện các thao tác khác. Bạn có thể định kỳ kiểm tra trạng thái công việc để hoàn tất.
Hãy xem hướng dẫn Xử lý hàng loạt để biết thêm thông tin về quá trình xử lý không đồng bộ.
Xác thực thay đổi
Bạn có thể xác thực hầu hết các yêu cầu thay đổi mà không cần thực sự thực thi lệnh gọi đối với dữ liệu thực. Bạn có thể kiểm thử yêu cầu về các tham số bị thiếu và giá trị trường không chính xác mà không cần thực sự thực thi thao tác.
Để sử dụng tính năng này, hãy đặt trường boolean validate_only không bắt buộc của yêu cầu thành true. Yêu cầu được xác thực đầy đủ như thể sẽ được thực thi, nhưng quá trình thực thi cuối cùng sẽ bị bỏ qua. Nếu không tìm thấy lỗi nào, phản hồi sẽ được trả về mà không có kết quả thay đổi nào được điền sẵn (results trống). Nếu quá trình xác thực không thành công, yêu cầu sẽ không thành công với GoogleAdsFailure RPC lỗi theo mặc định (partial_failure = false) hoặc trả về phản hồi bình thường với các lỗi dành riêng cho thao tác trong partial_failure_error khi partial_failure = true.
validate_only đặc biệt hữu ích trong việc kiểm thử quảng cáo về các lỗi vi phạm chính sách thường gặp. Quảng cáo sẽ tự động bị từ chối nếu vi phạm các chính sách như có các từ, dấu câu, cách viết hoa hoặc độ dài cụ thể. Một quảng cáo kém chất lượng có thể khiến toàn bộ lô không thành công. Việc kiểm thử một quảng cáo mới trong yêu cầu validate_only có thể tiết lộ mọi lỗi vi phạm như vậy. Hãy tham khảo ví dụ về mã để xử lý
lỗi vi phạm chính sách để xem
cách hoạt động của tính năng này.
Xem các đối tượng và số liệu thống kê về hiệu suất
GoogleAdsService là dịch vụ duy nhất, hợp nhất để truy xuất các đối tượng và số liệu thống kê về hiệu suất.
Tất cả các yêu cầu Search và
SearchStream cho
GoogleAdsService đều yêu cầu một truy vấn chỉ định tài nguyên cần truy vấn, các thuộc tính tài nguyên và chỉ số hiệu suất
cần truy xuất, các vị từ cần sử dụng để lọc yêu cầu và các phân khúc
cần sử dụng để chia nhỏ thêm số liệu thống kê về hiệu suất. Để biết thêm thông tin về
định dạng truy vấn, hãy xem hướng dẫn về Ngôn ngữ truy vấn Google Ads.
Truy xuất siêu dữ liệu
GoogleAdsFieldService truy xuất siêu dữ liệu về các tài nguyên trong Google Ads API, chẳng hạn như các thuộc tính có sẵn cho một tài nguyên và loại dữ liệu của tài nguyên đó. Hãy xem hướng dẫn
về Siêu dữ liệu tài nguyên để biết thông tin chi tiết về cách truy vấn dịch vụ này.
Dịch vụ này cung cấp thông tin cần thiết để xây dựng truy vấn cho
GoogleAdsService. Để thuận tiện, thông tin do
GoogleAdsFieldService trả về cũng có
trong tài liệu tham khảo về các trường.