Cấu trúc API

Video: Xem buổi trò chuyện về Dịch vụ và Tài nguyên trong hội thảo năm 2019

Hướng dẫn này giới thiệu các thành phần chính tạo nên API Google Ads. API Google Ads bao gồm các tài nguyêndịch vụ. Tài nguyên đại diện cho một thực thể Google Ads, trong khi các dịch vụ truy xuất và sử dụng các thực thể Google Ads.

Hệ phân cấp đối tượng

Bạn có thể xem một tài khoản Google Ads dưới dạng một hệ phân cấp đối tượng.

Mô hình chiến dịch

  • Tài nguyên cấp cao nhất của 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 các quảng cáo của bạn thành các tập hợp hợp lý.

  • Quảng cáo trong nhóm quảng cáo đại diện cho quảng cáo mà bạn đang chạy. Ngoại trừ chiến dịch quảng cáo ứng dụng chỉ có thể có một quảng cáo ở cấp nhóm quảng cáo trong mỗi nhóm quảng cáo, mỗi nhóm quảng cáo sẽ chứa một hoặc nhiều quảng cáo trong nhóm quảng cáo.

Bạn có thể đính kèm một hoặc nhiều AdGroupCriterion hoặc CampaignCriterion vào một nhóm quảng cáo hoặc chiến dịch. Các nhóm này đại diện cho những tiêu chí giúp xác định cách quảng cáo được kích hoạt.

Có nhiều loại tiêu chí, chẳng hạn như từ khoá, độ tuổi và vị trí. Tiêu chí được xác định ở cấp chiến dịch ả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 và ngày cho toàn chiến dịch.

Cuối cùng, bạn có thể đính kèm phần mở rộng ở cấp tài khoản, chiến dịch hoặc nhóm quảng cáo. Phần mở rộng cho phép bạn cung cấp thêm thông tin vào quảng cáo của mình, chẳng hạn như số điện thoại, địa chỉ đường phố hoặc chương trình khuyến mãi.

Tài nguyên

Tài nguyên đại diện cho các thực thể trong tài khoản Google Ads của bạn. CampaignAdGroup 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ã nhận dạng trong số này là duy nhất trên toàn cầu trên tất cả các tài khoản Google Ads, trong khi một số khác chỉ là duy nhất trong một phạm vi giới hạn.

Mã đối tượng Phạm vi của tính riêng biệt Là duy nhất trên toàn cầu?
ID ngân sách Các khu vực nói tiếng Anh
Mã chiến dịch Các khu vực nói tiếng Anh
ID Nhóm Quảng cáo Các khu vực nói tiếng Anh
ID 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 hệ thống
ID tiêu chí nhóm quảng cáo Nhóm quảng cáo Không, nhưng cặp (AdGroupId, CriterionId) là duy nhất trên toàn hệ thống
ID tiêu chí chiến dịch Chiến dịch Không, nhưng cặp (CampaignId, CriterionId) là duy nhất trên toàn hệ thống
Phần mở rộng quảng cáo Chiến dịch Không, nhưng cặp (CampaignId, AdExtensionId) là duy nhất trên toàn hệ thống
ID nguồn cấp dữ liệu Các khu vực nói tiếng Anh
ID mục nguồn cấp dữ liệu Các khu vực nói tiếng Anh
ID thuộc tính nguồn cấp dữ liệu Nguồn cấp dữ liệu Không
Mã bản đồ nguồn cấp dữ liệu Các khu vực nói tiếng Anh
ID nhãn Các khu vực nói tiếng Anh
ID danh sách người dùng Các khu vực nói tiếng Anh

Các quy tắc mã nhận dạng này có thể hữu ích khi thiết kế bộ nhớ cục bộ cho các đối tượng Google Ads.

Một số đối tượng có thể dùng cho nhiều loại thực thể. Trong những trường hợp như vậy, đối tượng sẽ chứa trường type mô tả nội dung của đối tượng đó. Ví dụ: AdGroupAd có thể đề cập đến một đối tượng như quảng cáo dạng văn bản, quảng cáo khách sạn hoặc quảng cáo địa phương. Bạn có thể truy cập giá trị này thông qua trường AdGroupAd.ad.type và trả về một giá trị trong enum AdType.

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. Chuỗi này liên kết tài nguyên và thành phầ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, thì resource_name sẽ là:

customers/1234567/campaigns/987654

Dịch vụ

Các dịch vụ cho phép bạn truy xuất và sửa đổi các thực thể Google Ads của mình. Có 3 loại dịch vụ: sửa đổi, 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ụ này sửa đổi các bản sao của loại tài nguyên được liên kết bằng cách sử dụng yêu cầu mutate. Các lớp này cũng cung cấp yêu cầu get truy xuất một thực thể tài nguyên duy nhất. Điều này có thể hữu ích cho việc kiểm tra cấu trúc của tài nguyên.

Ví dụ về dịch vụ:

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 yêu cầu một hoặc nhiều thực thể của CampaignOperation. Vui lòng xem phần Thay đổi và kiểm tra đối tượng để biết nội dung thảo luận chi tiết về các thao tác.

Các thay đổi đồng thời

Bạn không thể sửa đổi đồng thời một đối tượng Google Ads vớ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 mình, hoặc nếu bạn đang thay đổi song song các đối tượng Google Ads 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ừ nhiều ứng dụng (ví dụ: ứng dụng của bạn và một phiên giao diện người dùng Google Ads đồng thời).

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 đồng thời một đối tượng, thì API sẽ đưa ra DatabaseError.CONCURRENT_MODIFICATION_ERROR.

Biến đổi không đồng bộ so với đồng bộ

Các phương pháp thay đổi API Google Ads có tính đồng bộ. Các lệnh gọi API chỉ trả về phản hồi sau khi các đối tượng bị thay đổi, yêu cầu bạn phải đợi 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 để lập trình, nhưng phương pháp này có thể tác độ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 đối tượng một cách không đồng bộ bằng BatchJobService. Phương pháp này thực hiện hàng loạt thao tác trên nhiều dịch vụ mà không cần chờ các thao tác đó hoàn tất. Sau khi gửi một lệnh hàng loạt, các máy chủ API Google Ads sẽ thực thi các thao tác một cách 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ể kiểm tra định kỳ trạng thái công việc để hoàn thành.

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 thi lệnh gọi dựa trên 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 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. Sau đó, yêu cầu sẽ được xác thực đầy đủ như thể nó sẽ được thực thi nhưng lần thực thi cuối cùng sẽ bị bỏ qua. Nếu không tìm thấy lỗi nào, thì một phản hồi trống sẽ được trả về. Nếu xác thực không thành công, các thông báo lỗi trong phản hồi sẽ chỉ ra các điểm lỗi.

validate_only đặc biệt hữu ích khi thử nghiệm quảng cáo cho các lỗi vi phạm chính sách phổ biến. Quảng cáo sẽ tự động bị từ chối nếu vi phạm các chính sách như có từ, dấu câu, cách viết hoa hoặc độ dài cụ thể. Một quảng cáo không hợp lệ cũng có thể khiến toàn bộ lô gặp lỗi. Việc thử nghiệm một quảng cáo mới trong yêu cầu validate_only có thể phát hiện mọi lỗi vi phạm như vậy. Hãy tham khảo ví dụ về mã để xử lý các lỗi vi phạm chính sách để xem ví dụ thực tế.

Nhận số liệu thống kê về đối tượng và hiệu suất

GoogleAdsService là dịch vụ hợp nhất, duy 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ả yêu cầu SearchSearchStream cho GoogleAdsService đều phải có truy vấn chỉ định tài nguyên cần truy vấn, thuộc tính tài nguyên và chỉ số hiệu suất cần truy xuất, thuộc tính dùng để lọc yêu cầu và các phân đoạn cần dùng để phân tích 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 của 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 API Google Ads, 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 đó.

Dịch vụ này cung cấp thông tin cần thiết để tạo truy vấn tới GoogleAdsService. Để thuận tiện, thông tin do GoogleAdsFieldService trả về cũng có trong tài liệu tham khảo về trường.