Trong Google Ads, việc tối ưu chiến lược đặt giá thầu trên nhiều tài khoản là một phần quan trọng giúp bạn quản lý và tối đa hóa hiệu suất quảng cáo. Đối với những nhà quảng cáo sở hữu nhiều tài khoản khách hàng, việc sử dụng chiến lược đặt giá thầu chung giữa các tài khoản không chỉ giúp tiết kiệm thời gian mà còn tăng cường hiệu quả chiến dịch. Bài viết này sẽ hướng dẫn bạn cách tạo, quản lý và tối ưu các chiến lược đặt giá thầu trên nhiều tài khoản Google Ads một cách chi tiết và chuẩn xác.
Lưu ý: Trang này cung cấp thông tin chi tiết về các chiến lược đặt giá thầu trên nhiều tài khoản do tài khoản người quản lý sở hữu. Cách triển khai và sử dụng các chiến lược đặt giá thầu tiêu chuẩn và chiến lược danh mục đầu tư trong các tài khoản không phải của người quản lý được mô tả rõ trong trang hướng dẫn về chiến lược đặt giá thầu tiêu chuẩn và danh mục đầu tư.
Chiến lược đặt giá thầu trên nhiều tài khoản tận dụng tính năng Đặt giá thầu thông minh (Smart Bidding), tối ưu hóa các chiến lược danh mục đầu tư đã được thiết lập trong tài khoản người quản lý. Các chiến dịch quảng cáo có thể sử dụng chiến lược này từ bất kỳ tài khoản khách hàng nào thuộc quyền quản lý của tài khoản sở hữu chiến lược đặt giá thầu.
Tạo và quản lý chiến lược
Quá trình tạo một chiến lược đặt giá thầu trên nhiều tài khoản gần giống với việc tạo chiến lược đặt giá thầu danh mục đầu tư, ngoại trừ việc bạn cần chỉ định customer_id của tài khoản người quản lý hoặc thông qua lệnh gọi API. Khi tạo mới, bạn sẽ sử dụng mã tài khoản người quản lý để xây dựng tài nguyên BiddingStrategy, tương tự như cách tạo chiến lược danh mục đầu tư trong tài khoản khách hàng.
Ví dụ dưới đây sử dụng ngôn ngữ lập trình Java để tạo một chiến lược đặt giá thầu danh mục đầu tư mới:
private String createBiddingStrategy(GoogleAdsClient googleAdsClient, long managerCustomerId) {
try (BiddingStrategyServiceClient biddingStrategyServiceClient =
googleAdsClient.getLatestVersion().createBiddingStrategyServiceClient()) {
// Tạo chiến lược đặt giá thầu danh mục đầu tư.
BiddingStrategy portfolioBiddingStrategy =
BiddingStrategy.newBuilder()
.setName("Maximize Clicks #" + getPrintableDateTime())
.setTargetSpend(TargetSpend.getDefaultInstance())
// Đặt mã tiền tệ cho chiến lược. Nếu không được thiết lập, hệ thống sẽ sử dụng
// đơn vị tiền tệ mặc định của tài khoản người quản lý.
.setCurrencyCode("USD")
.build();// Xây dựng yêu cầu tạo chiến lược đặt giá thầu danh mục đầu tư.BiddingStrategyOperation operation =
BiddingStrategyOperation.newBuilder().setCreate(portfolioBiddingStrategy).build();
// Gửi yêu cầu thông qua mutate API.
MutateBiddingStrategiesResponse response =
biddingStrategyServiceClient.mutateBiddingStrategies(
Long.toString(managerCustomerId), ImmutableList.of(operation));
// In ra tên tài nguyên của chiến lược đặt giá thầu đã tạo.
MutateBiddingStrategyResult mutateBiddingStrategyResult = response.getResults(0);
String resourceName = mutateBiddingStrategyResult.getResourceName();
System.out.printf(“Đã tạo chiến lược đặt giá thầu trên nhiều tài khoản: ‘%s’.%n”, resourceName);
return resourceName;
}
}
Đặt mã đơn vị tiền tệ
Các chiến lược đặt giá thầu trên nhiều tài khoản trong tài khoản người quản lý cho phép bạn thiết lập currency_code, giúp chia sẻ chiến lược đặt giá thầu với các tài khoản khách hàng sử dụng các đơn vị tiền tệ khác nhau. Trường này không bắt buộc, và nếu không được chỉ định, hệ thống sẽ mặc định sử dụng đơn vị tiền tệ của tài khoản người quản lý. Lưu ý, trường currency_code chỉ có thể được thiết lập trong quá trình tạo chiến lược và không thể thay đổi sau đó đối với các chiến lược đặt giá thầu trên nhiều tài khoản.
Lưu ý quan trọng: Bạn chỉ có thể áp dụng chiến lược đặt giá thầu trên nhiều tài khoản đối với các chiến dịch sử dụng cùng một đơn vị tiền tệ. Một khi đã tạo, đơn vị tiền tệ của chiến lược không thể được thay đổi.
Ví dụ mã Java:
BiddingStrategy portfolioBiddingStrategy =
BiddingStrategy.newBuilder()
.setName("Maximize Clicks #" + getPrintableDateTime())
.setTargetSpend(TargetSpend.getDefaultInstance())
// Đặt mã đơn vị tiền tệ cho chiến lược mới. Nếu không được chỉ định, chiến lược sẽ sử dụng đơn vị tiền tệ mặc định của tài khoản người quản lý.
.setCurrencyCode("USD")
.build();
Cập nhật chiến lược
Một số trường trong chiến lược đặt giá thầu có thể được cập nhật tùy thuộc vào loại trường. Tài khoản người quản lý sở hữu chiến lược đặt giá thầu hoặc người quản lý cấp cao có thể chỉnh sửa các trường này tương tự như khi quản lý chiến lược danh mục đầu tư.
Ví dụ, nếu bạn muốn thay đổi giới hạn giá thầu tối đa (cpc_bid_ceiling_micros) cho chiến lược TargetSpend đã được tạo trước đó, bạn chỉ cần cập nhật giá trị mới cho trường này.
Xóa chiến lược không còn sử dụng
Để xóa một chiến lược đặt giá thầu trên nhiều tài khoản, bạn cần đảm bảo rằng chiến lược này không còn được liên kết với bất kỳ chiến dịch nào. Nếu chiến lược vẫn đang được sử dụng, hệ thống sẽ báo lỗi CANNOT_REMOVE_ASSOCIATED_STRATEGY. Bạn phải hủy liên kết chiến lược khỏi tất cả các chiến dịch trước khi thực hiện xóa.
Đọc thuộc tính chiến lược đặt giá thầu
Tài nguyên BiddingStrategy được sử dụng để tạo mới, cập nhật và truy xuất các thuộc tính của chiến lược đặt giá thầu trong tài khoản Google Ads. Như đã đề cập trước đó, khi tài khoản là tài khoản người quản lý, bạn có thể thay đổi và đọc các thuộc tính từ tài nguyên BiddingStrategy nhằm quản lý chiến lược đặt giá thầu trên nhiều tài khoản.
Khi thực hiện lệnh gọi API thông qua tài khoản người quản lý, bạn có thể liệt kê và truy xuất thông tin của các chiến lược đặt giá thầu mà tài khoản Google Ads này sở hữu bằng cách thực hiện truy vấn từ tài nguyên BiddingStrategy.
Dưới đây là một ví dụ bằng ngôn ngữ Java, giúp liệt kê các chiến lược đặt giá thầu trên nhiều tài khoản mà tài khoản người quản lý sở hữu:
private void listManagerOwnedBiddingStrategies(
GoogleAdsClient googleAdsClient, long managerCustomerId) throws GoogleAdsException {
try (GoogleAdsServiceClient googleAdsServiceClient =
googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {// Tạo truy vấn để lấy thông tin các chiến lược đặt giá thầu.String query =
“SELECT bidding_strategy.id, “
+ “bidding_strategy.name, “
+ “bidding_strategy.type, “
+ “bidding_strategy.currency_code “
+ “FROM bidding_strategy”;
// Tạo yêu cầu tìm kiếm theo dòng để lấy tất cả chiến lược đặt giá thầu.
SearchGoogleAdsStreamRequest request =
SearchGoogleAdsStreamRequest.newBuilder()
.setCustomerId(Long.toString(managerCustomerId))
.setQuery(query)
.build();
// Gửi yêu cầu tìm kiếm và nhận luồng kết quả từ Google Ads.
ServerStream<SearchGoogleAdsStreamResponse> stream =
googleAdsServiceClient.searchStreamCallable().call(request);
// Lặp qua và in ra kết quả các chiến lược đặt giá thầu đã nhận được từ luồng phản hồi.
System.out.printf(
“Các chiến lược đặt giá thầu trên nhiều tài khoản trong tài khoản người quản lý %d: %n”, managerCustomerId);
for (SearchGoogleAdsStreamResponse response : stream) {
for (GoogleAdsRow googleAdsRow : response.getResultsList()) {
BiddingStrategy bs = googleAdsRow.getBiddingStrategy();
System.out.printf(” ID: %d%n”, bs.getId());
System.out.printf(” Tên: %s%n”, bs.getName());
System.out.printf(” Loại chiến lược: %s%n”, bs.getType());
System.out.printf(” Đơn vị tiền tệ: %s%n”, bs.getCurrencyCode());
System.out.println();
}
}
}
}
Xem chiến lược đặt giá thầu dễ truy cập
Khi quản lý các tài khoản khách hàng sử dụng chiến lược đặt giá thầu trên nhiều tài khoản, AccessibleBiddingStrategy được sử dụng để cung cấp chế độ xem chỉ đọc về tất cả các chiến lược đặt giá thầu mà khách hàng hiện tại có thể truy cập. Điều này bao gồm cả các chiến lược danh mục đầu tư mà khách hàng sở hữu cũng như các chiến lược đặt giá thầu trên nhiều tài khoản được chia sẻ với họ từ tài khoản người quản lý.
Lưu ý quan trọng: Tài khoản khách hàng chỉ có thể xem một tập hợp nhỏ và hạn chế của các thuộc tính chiến lược đặt giá thầu. AccessibleBiddingStrategy chỉ cung cấp chế độ xem hợp nhất và đã được lọc về tất cả các chiến lược đặt giá thầu mà tài khoản hiện tại có thể truy cập, bao gồm cả chiến lược danh mục đầu tư và các chiến lược trên nhiều tài khoản do người quản lý chia sẻ.
Nhận tất cả các chiến lược đặt giá thầu dễ truy cập
Để truy xuất danh sách các chiến lược đặt giá thầu mà tài khoản khách hàng hiện tại có thể truy cập, bạn có thể thực hiện truy vấn trực tiếp từ tài nguyên accessible_bidding_strategy. Theo mặc định, kết quả trả về sẽ bao gồm cả các chiến lược danh mục đầu tư trong tài khoản khách hàng và các chiến lược đặt giá thầu trên nhiều tài khoản được chia sẻ từ tài khoản người quản lý.
Lưu ý: Bạn có thể thêm một bộ lọc truy vấn với điều kiện accessible_bidding_strategy.owner_customer_id != CUSTOMER_ID, trong đó CUSTOMER_ID là mã khách hàng của tài khoản được sử dụng để nhắm đến trong tìm kiếm. Điều này sẽ giúp lọc kết quả chỉ bao gồm các chiến lược đặt giá thầu trên nhiều tài khoản, không bao gồm chiến lược danh mục đầu tư của chính tài khoản khách hàng.
Dưới đây là ví dụ mã bằng Java giúp liệt kê các chiến lược đặt giá thầu dễ truy cập mà khách hàng hiện tại có thể sử dụng:
private void listCustomerAccessibleBiddingStrategies(
GoogleAdsClient googleAdsClient, long clientCustomerId) throws GoogleAdsException {
try (GoogleAdsServiceClient googleAdsServiceClient =
googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {// Truy vấn để lấy thông tin các chiến lược đặt giá thầu dễ truy cập.String query =
“SELECT accessible_bidding_strategy.id, “
+ “accessible_bidding_strategy.name, “
+ “accessible_bidding_strategy.type, “
+ “accessible_bidding_strategy.owner_customer_id, “
+ “accessible_bidding_strategy.owner_descriptive_name “
+ “FROM accessible_bidding_strategy “
// Nếu muốn lọc chỉ các chiến lược đặt giá thầu trên nhiều tài khoản
// mà không bao gồm các chiến lược danh mục đầu tư của khách hàng hiện tại, bỏ ghi chú dòng sau:
// + “WHERE accessible_bidding_strategy.owner_customer_id != ” + clientCustomerId;
;
// Tạo yêu cầu tìm kiếm dựa trên truy vấn đã xây dựng.
SearchGoogleAdsStreamRequest request =
SearchGoogleAdsStreamRequest.newBuilder()
.setCustomerId(Long.toString(clientCustomerId))
.setQuery(query)
.build();
// Gửi yêu cầu tìm kiếm và nhận kết quả từ Google Ads API.
ServerStream<SearchGoogleAdsStreamResponse> stream =
googleAdsServiceClient.searchStreamCallable().call(request);
// Lặp qua kết quả và in ra danh sách các chiến lược đặt giá thầu mà tài khoản khách hàng có thể truy cập.
System.out.printf(“Các chiến lược đặt giá thầu có thể truy cập từ tài khoản %d: %n”, clientCustomerId);
for (SearchGoogleAdsStreamResponse response : stream) {
for (GoogleAdsRow googleAdsRow : response.getResultsList()) {
AccessibleBiddingStrategy bs = googleAdsRow.getAccessibleBiddingStrategy();
System.out.printf(” ID: %d%n”, bs.getId());
System.out.printf(” Tên: %s%n”, bs.getName());
System.out.printf(” Loại chiến lược: %s%n”, bs.getType());
System.out.printf(” ID tài khoản sở hữu: %d%n”, bs.getOwnerCustomerId());
System.out.printf(” Tên mô tả chủ sở hữu: %s%n”, bs.getOwnerDescriptiveName());
System.out.println();
}
}
}
}
Xem thông tin chi tiết về chiến dịch
Bạn có thể truy xuất thông tin chi tiết về các chiến dịch cùng với các trường liên quan đến bidding_strategy và accessible_bidding_strategy khi thực hiện truy vấn chiến dịch trong Google Ads. Bằng cách sử dụng bảng campaign trong mệnh đề FROM của truy vấn, hệ thống sẽ tự động liên kết các tài nguyên bidding_strategy và accessible_bidding_strategy với các chiến dịch liên quan.
Ví dụ dưới đây minh họa cách truy vấn để lấy thông tin chi tiết về tất cả các chiến dịch, bao gồm cả các trường liên quan đến chiến lược đặt giá thầu (bidding_strategy) và chiến lược đặt giá thầu dễ truy cập (accessible_bidding_strategy) được liên kết với từng chiến dịch.
Truy vấn Google Ads Query Language (GAQL):
SELECT campaign.id,
campaign.name,
campaign.bidding_strategy,
campaign.bidding_strategy_type,
accessible_bidding_strategy.id,
accessible_bidding_strategy.name,
accessible_bidding_strategy.type,
accessible_bidding_strategy.owner_customer_id,
accessible_bidding_strategy.owner_descriptive_name,
bidding_strategy.name,
bidding_strategy.type
FROM campaign
WHERE campaign.status != REMOVEDĐính kèm chiến lược đặt giá thầu vào chiến dịch
Tương tự như chiến lược giá thầu danh mục đầu tư tiêu chuẩn, bạn có thể đính kèm một chiến lược đặt giá thầu trên nhiều tài khoản vào chiến dịch bằng cách chỉ định trường bidding_strategy tới tài nguyên của chiến lược đó. Tuy nhiên, chỉ những tài khoản người quản lý sở hữu chiến lược đặt giá thầu trên nhiều tài khoản (hoặc tài khoản người quản lý cấp cao hơn) mới có thể thực hiện việc này. Do đó, khi sử dụng API để đính kèm chiến lược đặt giá thầu trên nhiều tài khoản vào một chiến dịch, bạn cần phải sử dụng login-customer-id của tài khoản người quản lý có quyền truy cập đầy đủ vào chiến lược đó.
Ví dụ mã dưới đây minh họa cách đính kèm một chiến lược đặt giá thầu trên nhiều tài khoản vào chiến dịch bằng ngôn ngữ lập trình Java:
private void attachCrossAccountBiddingStrategyToCampaign(
GoogleAdsClient googleAdsClient,
long clientCustomerId,
long campaignId,
String biddingStrategyResourceName)
throws GoogleAdsException {try (CampaignServiceClient campaignServiceClient =googleAdsClient.getLatestVersion().createCampaignServiceClient()) {
// Xây dựng chiến dịch với chiến lược đặt giá thầu được chỉ định.
Campaign campaign =
Campaign.newBuilder()
.setResourceName(ResourceNames.campaign(clientCustomerId, campaignId))
.setBiddingStrategy(biddingStrategyResourceName)
.build();
// Tạo yêu cầu cập nhật chiến dịch.
CampaignOperation operation =
CampaignOperation.newBuilder()
.setUpdate(campaign)
.setUpdateMask(FieldMasks.allSetFieldsOf(campaign))
.build();
// Gửi yêu cầu cập nhật thông qua mutate API.
MutateCampaignsResponse response =
campaignServiceClient.mutateCampaigns(
Long.toString(clientCustomerId), ImmutableList.of(operation));
// Lấy và in ra tên tài nguyên của chiến dịch đã cập nhật.
MutateCampaignResult mutateCampaignResult = response.getResults(0);
System.out.printf(
“Đã cập nhật chiến dịch với tên tài nguyên: ‘%s’.%n”, mutateCampaignResult.getResourceName());
}
}
Xóa chiến lược đặt giá thầu
Để hủy liên kết một chiến lược đặt giá thầu trên nhiều tài khoản khỏi một chiến dịch, bạn cần cập nhật chiến dịch để sử dụng một chiến lược đặt giá thầu khác. Điều này có thể thực hiện bằng cách thiết lập trường bidding_strategy sang một chiến lược danh mục đầu tư khác hoặc sử dụng chiến lược đặt giá thầu tiêu chuẩn thay thế.
Hủy liên kết tài khoản khách hàng
Lưu ý: Sau khi một tài khoản khách hàng bị hủy liên kết khỏi tài khoản người quản lý, việc liên kết lại với cùng tài khoản người quản lý sẽ không tự động khôi phục chiến dịch về trạng thái trước đó, bao gồm cả việc liên kết với chiến lược đặt giá thầu trên nhiều tài khoản. Tất cả các chiến dịch bị ảnh hưởng phải được cập nhật lại để sử dụng chiến lược đặt giá thầu hợp lệ.
Nếu một tài khoản khách hàng bị hủy liên kết khỏi tài khoản người quản lý, tất cả các chiến lược đặt giá thầu trên nhiều tài khoản được chia sẻ bởi tài khoản người quản lý sẽ không còn khả dụng. Các chiến dịch đang sử dụng những chiến lược đặt giá thầu này sẽ ngừng phân phát và cần được cập nhật để sử dụng một chiến lược đặt giá thầu khác nhằm tiếp tục hoạt động.
Chiến lược đặt giá thầu trên nhiều tài khoản Google Ads mang đến giải pháp tối ưu cho các nhà quảng cáo có nhiều tài khoản khách hàng, giúp dễ dàng quản lý và theo dõi các chiến dịch quảng cáo. Việc hiểu rõ và áp dụng thành thạo các bước tạo, cập nhật và xóa chiến lược đặt giá thầu sẽ giúp bạn nâng cao hiệu suất quảng cáo và tối đa hóa lợi nhuận từ Google Ads. Hãy đảm bảo rằng bạn nắm vững các quy trình này để phát huy tối đa sức mạnh của các chiến lược đặt giá thầu trong hoạt động quảng cáo của mình.
