Google Ads: Hướng dẫn tối ưu chiến dịch quảng cáo hiệu quả

Google Ads là một công cụ quảng cáo trực tuyến mạnh mẽ, giúp doanh nghiệp tiếp cận đúng khách hàng mục tiêu. Tuy nhiên, để khai thác tối đa hiệu quả, bạn cần hiểu cách sử dụng ngôn ngữ truy vấn Google Ads (GAQL). Trong bài viết này, chúng tôi sẽ hướng dẫn chi tiết cách viết truy vấn, lựa chọn dữ liệu, và tối ưu hóa chiến dịch quảng cáo của bạn một cách chuyên nghiệp.

Hệ thống có khả năng gửi các truy vấn liên quan đến các trường tài nguyên, phân đoạn và chỉ số thông qua GoogleAdsService Search hoặc SearchStream. Để tạo truy vấn trong ngôn ngữ truy vấn Google Ads (Google Ads Query Language – GAQL), bạn cần sử dụng cú pháp đặc biệt của ngôn ngữ này. Mỗi truy vấn sẽ được xây dựng từ các mệnh đề cơ bản:

  • SELECT: Lựa chọn các trường cần truy vấn.
  • FROM: Xác định tài nguyên chính để truy vấn.
  • WHERE: Thiết lập điều kiện lọc dữ liệu.
  • ORDER BY: Quy định thứ tự sắp xếp kết quả.
  • LIMIT: Giới hạn số lượng kết quả trả về.
  • PARAMETERS: Cấu hình tham số bổ sung cho truy vấn.

Các mệnh đề này sử dụng tên trường, tên tài nguyên, toán tử, điều kiện và sắp xếp để đảm bảo lựa chọn đúng dữ liệu. Sau khi hoàn chỉnh, truy vấn có thể được thực thi thông qua API Google Ads.

Lưu ý quan trọng: GoogleAdsFieldService cung cấp một danh mục các tài nguyên và trường, bao gồm phân đoạn và chỉ số, cùng với siêu dữ liệu chi tiết. Danh mục này giúp bạn xác định các mối quan hệ giữa các trường, mức độ khả dụng trong từng mệnh đề và các quy tắc tương ứng. Để hiểu rõ hơn, bạn nên tham khảo tài liệu chính thức của GoogleAdsField.

Mệnh đề trong Google Ads Query Language (GAQL)

Mệnh đề SELECT

Mệnh đề SELECT được sử dụng để xác định tập hợp các trường cần nạp trong yêu cầu. SELECT trả về danh sách các trường tài nguyên, trường phân đoạn và chỉ số, được phân cách bằng dấu phẩy. Đây là một mệnh đề bắt buộc trong mọi truy vấn.

Ví dụ: Truy vấn dưới đây chọn các thuộc tính cơ bản của tài nguyên chiến dịch:

SELECT
campaign.id,
campaign.name
FROM campaign

Bạn cũng có thể chọn nhiều loại trường khác nhau trong cùng một yêu cầu:

SELECT
campaign.id,
campaign.name,
bidding_strategy.id,
bidding_strategy.name,
segments.device,
segments.date,
metrics.impressions,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

Các loại trường:

  1. Trường tài nguyên:
    • campaign.id
    • campaign.name
    • bidding_strategy.id
    • bidding_strategy.name
  2. Trường phân đoạn:
    • segments.device
    • segments.date
  3. Chỉ số (metrics):
    • metrics.impressions
    • metrics.clicks

Không phải tất cả các trường đều có thể được sử dụng trong mệnh đề SELECT. Một số hạn chế bao gồm:

  • Không thể chọn các trường không cho phép truy vấn: Các trường này được đánh dấu với thuộc tính siêu dữ liệu Selectable = false.
  • Không thể chọn các trường lặp lại: Các trường có thuộc tính siêu dữ liệu isRepeated = true không thể được chọn.
  • Không thể chọn các trường không liên quan đến tài nguyên trong mệnh đề FROM: Chỉ một tập hợp con của chỉ số và phân đoạn được áp dụng cho tài nguyên cụ thể trong mệnh đề FROM.
  • Không thể chọn các trường phân đoạn hoặc chỉ số không tương thích: Để biết thêm chi tiết, hãy tham khảo phần hướng dẫn về phân đoạn.

Để kiểm tra tính khả dụng của các trường hoặc các hạn chế liên quan, bạn có thể tham khảo tài liệu chính thức hoặc sử dụng dịch vụ GoogleAdsFieldService. Dịch vụ này giúp xác định các trường có thể chọn được và các thuộc tính liên quan, giúp tối ưu hóa truy vấn trong Google Ads API.

Mệnh đề FROM

Mệnh đề FROM trong Google Ads API xác định tài nguyên chính sẽ được truy vấn và trả về trong phản hồi. Tài nguyên chỉ định trong mệnh đề FROM quyết định các trường nào có thể được sử dụng trong các mệnh đề khác của truy vấn. Chỉ có thể chỉ định một tài nguyên trong mệnh đề FROM, và đây là một phần bắt buộc khi sử dụng các phương thức như GoogleAdsService.Search hoặc SearchStream. Tuy nhiên, mệnh đề FROM không cần thiết khi sử dụng phương thức GoogleAdsFieldService.

Dù mệnh đề FROM chỉ cho phép một tài nguyên duy nhất trong mỗi truy vấn, các trường của các tài nguyên liên quan (tài nguyên được phân bổ) có thể được sử dụng. Những tài nguyên này được tự động liên kết với tài nguyên chính trong mệnh đề FROM, và bạn chỉ cần chỉ định thuộc tính trong mệnh đề SELECT để trả về dữ liệu tương ứng. Tuy nhiên, không phải tất cả tài nguyên đều được phân bổ.

Ví dụ sau minh họa cách truy vấn cả mã nhóm quảng cáo và mã chiến dịch từ tài nguyên nhóm quảng cáo (ad_group):

SELECT
campaign.id,
ad_group.id
FROM ad_group

Trường resource_name của tài nguyên chính trong mệnh đề FROM luôn được bao gồm trong phản hồi, ngay cả khi không được chỉ định rõ ràng trong mệnh đề SELECT. Ví dụ:

SELECT ad_group.id
FROM ad_group

Trong truy vấn trên, trường ad_group.resource_name sẽ tự động được đưa vào phản hồi.

Tương tự, nếu truy vấn chọn bất kỳ thuộc tính nào từ một tài nguyên liên quan, resource_name của tài nguyên đó cũng sẽ được trả về. Ví dụ:

SELECT
campaign.id,
ad_group.id
FROM ad_group

Trong truy vấn trên, cả campaign.resource_namead_group.resource_name sẽ được bao gồm trong phản hồi, mặc dù không được chỉ định trực tiếp.

Một lưu ý quan trọng là khi tài nguyên được chỉ định trong mệnh đề FROM liên quan đến một tài nguyên khác được định nghĩa là segment, việc chọn bất kỳ thuộc tính nào từ tài nguyên đó sẽ khiến nó hoạt động như một phân đoạn. Điều này cần được cân nhắc khi thiết kế truy vấn để tránh xung đột hoặc truy vấn không hợp lệ.

Mệnh đề WHERE (Ở đâu?)

Mệnh đề WHERE trong Google Ads API được sử dụng để chỉ định các điều kiện lọc dữ liệu trong truy vấn. Mệnh đề này cho phép lọc dữ liệu dựa trên một hoặc nhiều điều kiện, với các điều kiện được kết hợp bằng toán tử AND. Mỗi điều kiện phải tuân theo cú pháp: field_name Operator value. Mệnh đề WHERE không bắt buộc trong một truy vấn, nhưng khi được sử dụng, nó có thể giúp tập trung vào dữ liệu quan trọng.

Ví dụ cơ bản về mệnh đề WHERE:

Trong ví dụ dưới đây, mệnh đề WHERE được sử dụng để lọc các chỉ số trong khoảng thời gian 30 ngày qua:

SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

Bạn có thể kết hợp nhiều điều kiện bằng cách sử dụng AND để lọc dữ liệu chi tiết hơn. Ví dụ sau đây trả về số lần nhấp (clicks) cho các chiến dịch hiển thị trên thiết bị di động trong 30 ngày qua và có ít nhất một lượt hiển thị:

SELECT
campaign.id,
campaign.name,
segments.device,
metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
AND segments.device = MOBILE
AND segments.date DURING LAST_30_DAYS

Các phân đoạn được sử dụng trong mệnh đề WHERE phải được liệt kê trong mệnh đề SELECT, ngoại trừ các phân đoạn thời gian chính (core date segments). Các phân đoạn thời gian chính bao gồm:

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

Trong ví dụ sau, segments.date được sử dụng cả trong mệnh đề SELECTWHERE, cho phép lọc dữ liệu trong khoảng thời gian 30 ngày qua:

SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

Nếu bạn chọn bất kỳ phân đoạn thời gian chính nào (ví dụ: segments.week, segments.month), ít nhất một phân đoạn thời gian phải được sử dụng trong mệnh đề WHERE để đảm bảo tính hợp lệ của truy vấn.

Lưu ý khi sử dụng mệnh đề WHERE:

  1. Toán tử hợp lệ
    Bạn chỉ có thể sử dụng toán tử AND để kết hợp các điều kiện. Không được sử dụng AND trong cùng một điều kiện toán tử. Ví dụ:

    • Hợp lệ: WHERE segments.device != "DESKTOP" AND segments.device != "MOBILE"
    • Không hợp lệ: WHERE segments.device != "DESKTOP" AND "MOBILE"
  2. Phân biệt chữ hoa và chữ thường
    Google Ads API phân biệt chữ hoa chữ thường trong toán tử và giá trị. Điều này có thể ảnh hưởng đến cách truy vấn hoạt động, vì vậy hãy đảm bảo kiểm tra kỹ giá trị trước khi sử dụng.
  3. Danh sách toán tử hỗ trợ
    Để xem danh sách đầy đủ các toán tử có thể sử dụng trong mệnh đề WHERE, bạn có thể tham khảo tài liệu chính thức về ngôn ngữ ngữ pháp của Google Ads API.

Mệnh đề ORDER BY

Mệnh đề ORDER BY được sử dụng để chỉ định thứ tự hiển thị của kết quả trả về. Nó cho phép sắp xếp dữ liệu theo thứ tự tăng dần (ASC) hoặc giảm dần (DESC) dựa trên một hoặc nhiều trường. Nếu không chỉ định rõ ASC hoặc DESC, thứ tự mặc định sẽ là tăng dần (ASC). Mệnh đề ORDER BY không bắt buộc trong truy vấn.

Ví dụ dưới đây minh họa cách sắp xếp kết quả chiến dịch theo số lần nhấp (metrics.clicks) từ cao đến thấp:

SELECT
campaign.name,
metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC

Bạn có thể sắp xếp kết quả theo nhiều trường bằng cách liệt kê các trường, cách nhau bởi dấu phẩy. Các trường sẽ được sắp xếp theo thứ tự mà chúng xuất hiện trong truy vấn. Ví dụ sau sắp xếp kết quả theo tên chiến dịch (campaign.name) tăng dần, số lượt hiển thị (metrics.impressions) giảm dần, và số lượt nhấp (metrics.clicks) giảm dần:

SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks
FROM ad_group
ORDER BY
campaign.name,
metrics.impressions DESC,
metrics.clicks DESC

Mệnh đề LIMIT

Mệnh đề LIMIT được sử dụng để giới hạn số lượng kết quả trả về trong một truy vấn. Điều này rất hữu ích khi bạn chỉ cần lấy một tập hợp nhỏ dữ liệu hoặc tạo bản tóm tắt.

Ví dụ sau minh họa cách giới hạn số lượng kết quả trả về ở mức 50:

SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50

Lưu ý quan trọng khi sử dụng LIMIT:

  1. Giới hạn số lượng kết quả
    Mệnh đề LIMIT chỉ giới hạn số lượng kết quả trả về trong một truy vấn, không liên quan đến việc xử lý danh sách kết quả lớn.
  2. Sử dụng page_size với GoogleAdsService.Search
    Nếu bạn cần xử lý danh sách kết quả lớn, hãy sử dụng trường page_size trong API thay vì chỉ dựa vào LIMIT. page_size giúp chia nhỏ dữ liệu thành các trang, tối ưu hóa quá trình truy vấn và giảm tải cho hệ thống.

Mệnh đề PARAMETERS (Thông số)

Mệnh đề PARAMETERS được sử dụng để chỉ định các tham số meta trong truy vấn, cho phép điều chỉnh dữ liệu trả về theo các yêu cầu cụ thể. Hiện tại, hai tham số meta được hỗ trợ là include_draftsomit_unselected_resource_names.

Tham số include_drafts

Tham số include_drafts được sử dụng để bao gồm các thực thể nháp trong kết quả trả về. Mặc định, giá trị của tham số này là false. Khi thiết lập include_drafts = true, các thực thể nháp sẽ được trả về cùng với các thực thể khác.

Ví dụ: Truy vấn sau tìm nạp cả chiến dịch nháp và chiến dịch thông thường:

SELECT campaign.name
FROM campaign
PARAMETERS include_drafts = true

Tham số omit_unselected_resource_names

Tham số omit_unselected_resource_names kiểm soát việc trả về trường resource_name của các tài nguyên trong phản hồi. Khi thiết lập omit_unselected_resource_names = true, tên tài nguyên sẽ không được trả về nếu không được yêu cầu rõ ràng trong mệnh đề SELECT. Mặc định, giá trị của tham số này là false.

Lưu ý quan trọng:

  • Nếu bạn có ý định sử dụng tài nguyên trả về để thực hiện thao tác cập nhật hoặc xóa, hãy giữ giá trị omit_unselected_resource_names = false, vì các thao tác này yêu cầu tên tài nguyên (resource_name).
  • Khi thiết lập omit_unselected_resource_names = true, hãy đảm bảo rằng bạn đã yêu cầu cụ thể resource_name trong mệnh đề SELECT.

Ví dụ sử dụng omit_unselected_resource_names

Trường hợp mặc định (omit_unselected_resource_names = false):

SELECT
campaign.name,
customer.id
FROM campaign

Kết quả trả về:

  • campaign.resource_name
  • customer.resource_name

omit_unselected_resource_names mặc định là false, tất cả trường resource_name sẽ được bao gồm trong phản hồi.

Trường hợp omit_unselected_resource_names = true và không yêu cầu rõ ràng resource_name:

SELECT
campaign.name,
customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true

Kết quả trả về:

  • Không có trường resource_name nào được trả về vì chúng không được yêu cầu rõ ràng trong mệnh đề SELECT.

Trường hợp omit_unselected_resource_names = true và yêu cầu rõ ràng resource_name:

SELECT
campaign.name,
campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true

Kết quả trả về:

  • campaign.resource_name được bao gồm trong phản hồi vì nó được yêu cầu cụ thể trong mệnh đề SELECT.

Quy tắc ngôn ngữ bổ sung trong Google Ads API

Ngoài các ví dụ cơ bản về các mệnh đề, ngôn ngữ truy vấn trong Google Ads API cung cấp các hành vi linh hoạt và mạnh mẽ để tối ưu hóa dữ liệu truy vấn. Dưới đây là một số quy tắc và ứng dụng cụ thể:

1. Không bắt buộc phải chọn trường tài nguyên chính trong mệnh đề SELECT

Bạn có thể bỏ qua trường tài nguyên chính trong mệnh đề SELECT và chỉ sử dụng một hoặc nhiều trường tài nguyên khác để lọc dữ liệu. Điều này giúp tối giản truy vấn nếu chỉ cần điều kiện lọc cụ thể.

Ví dụ: Truy vấn sau chỉ lọc các nhóm quảng cáo (ad_group) có trạng thái bị tạm dừng (PAUSED):

SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED

2. Chọn riêng các chỉ số mà không cần trường tài nguyên

Bạn có thể chỉ định các chỉ số (metrics) của một tài nguyên cụ thể mà không cần chọn bất kỳ trường tài nguyên nào khác trong truy vấn. Điều này hữu ích khi bạn chỉ muốn phân tích hiệu suất.

Ví dụ: Truy vấn sau trả về số lần hiển thị, số lượt nhấp, và chi phí của các chiến dịch:

SELECT
metrics.impressions,
metrics.clicks,
metrics.cost_micros
FROM campaign

3. Chọn trường phân đoạn mà không cần trường tài nguyên hoặc chỉ số

Truy vấn có thể bao gồm các trường phân đoạn (segments) mà không cần bổ sung các trường tài nguyên hoặc chỉ số. Điều này cho phép bạn tập trung vào các đặc điểm phân đoạn cụ thể.

Ví dụ: Truy vấn sau chọn thiết bị (segments.device) được sử dụng trong chiến dịch:

SELECT segments.device
FROM campaign

4. Sử dụng resource_name để lọc hoặc sắp xếp dữ liệu

Trường resource_name của một tài nguyên có thể được sử dụng để lọc hoặc sắp xếp kết quả. Đây là cách hiệu quả để truy xuất các tài nguyên cụ thể bằng cách sử dụng định danh duy nhất của chúng.

Ví dụ: Truy vấn sau lọc một chiến dịch cụ thể bằng resource_name:

SELECT
campaign.id,
campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'

Việc sử dụng ngôn ngữ truy vấn Google Ads không chỉ giúp bạn khai thác hiệu quả dữ liệu mà còn tiết kiệm thời gian và tăng hiệu quả chiến dịch. Hy vọng hướng dẫn này sẽ giúp bạn tự tin hơn trong việc quản lý và tối ưu hóa các chiến dịch quảng cáo của mình. Đừng quên thực hành thường xuyên để nắm vững các kỹ năng cần thiết và đạt được kết quả tốt nhất.

Facebook
X
LinkedIn
Tumblr
Threads
logo_v4seowebsite

V4SEO là đội ngũ SEO & Web xuất phát từ Nha Trang, triển khai dự án cho doanh nghiệp trên toàn quốc. Chúng tôi cung cấp Dịch vụ SEO Nha Trang theo chuẩn Google, kết hợp kỹ thuật, nội dung và entity để tăng trưởng bền vững. Song song, Dịch vụ thiết kế website Nha Trang tối ưu UX, tốc độ và Core Web Vitals nhằm tối đa chuyển đổi; báo cáo minh bạch, hỗ trợ dài hạn.

Nội dung được sự cố vấn của chuyên gia SEO - Võ Quang Vinh
author-founder-v4seowebsite

Võ Quang Vinh – Chuyên gia SEO với hơn 10 năm kinh nghiệm triển khai hàng trăm dự án SEO tổng thể, từ thương mại điện tử đến dịch vụ địa phương. Từng đảm nhiệm vai trò SEO và là Keymember tại Gobranding và dân dắt đội SEO BachhoaXanh.com, anh là người đứng sau nhiều chiến dịch tăng trưởng traffic vượt bậc. Hiện tại, Vinh là người sáng lập và điều hành V4SEO, cung cấp giải pháp SEO & thiết kế website chuẩn UX/UI giúp doanh nghiệp bứt phá thứ hạng Google và tối ưu chuyển đổi. 

Bài viết liên quan
ĐĂNG KÝ V4SEO NGAY HÔM NAY KHUYẾN MÃI 15% TẤT CẢ DỊCH VỤ ÁP DỤNG TỚI HẾT THÁNG 12/2025

Nhận tư vấn từ V4SEO Đăng ký ngay hôm nay Bứt phá trong mai sau