Google Ads là một trong những công cụ quảng cáo trực tuyến mạnh mẽ nhất, giúp doanh nghiệp tiếp cận đúng đối tượng khách hàng. Tuy nhiên, để tối ưu hiệu suất quảng cáo, việc quản lý lưu lượng sử dụng hiệu quả là điều không thể bỏ qua. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn từng bước từ cách tạo công việc hàng loạt, thêm thao tác thay đổi, đến cách xử lý lỗi trong quá trình vận hành Google Ads. Cùng khám phá ngay để nâng tầm chiến lược quảng cáo của bạn!
1. Tạo công việc xử lý hàng loạt mới
Để bắt đầu, cần tạo một tài nguyên BatchJob bằng cách gọi MutateBatchJob.
Ví dụ sử dụng Java:
private String createBatchJob(BatchJobServiceClient batchJobServiceClient, long customerId) {
BatchJobOperation operation =
BatchJobOperation.newBuilder().setCreate(BatchJob.newBuilder().build()).build();
String batchJobResourceName =
batchJobServiceClient
.mutateBatchJob(Long.toString(customerId), operation)
.getResult()
.getResourceName();
System.out.printf("Created a mutate job with resource name: '%s'.%n", batchJobResourceName);return batchJobResourceName;}
Tại bước này, trạng thái của công việc sẽ là PENDING.
2. Thêm thao tác vào công việc xử lý hàng loạt
Để thêm một hoặc nhiều thao tác thay đổi, bạn sử dụng MutateOperation và gọi AddBatchJobOperations. Kết quả trả về sẽ bao gồm:
- Tổng số thao tác đã thêm vào công việc tính đến thời điểm hiện tại.
- Mã thông báo thứ tự (sequence_token) dùng để thêm các thao tác tiếp theo.
Lưu ý: Khi gọi lại AddBatchJobOperations, bạn cần sử dụng chính xác mã thông báo sequence_token đã nhận được ở lần trước trong trường sequence_token của yêu cầu. Nếu sử dụng sai mã thông báo, yêu cầu sẽ bị lỗi.
Ngoài ra, mã sequence_token cũng có thể truy xuất từ next_add_sequence_token trong đối tượng BatchJob.
Nếu cần tạo các đối tượng phụ thuộc (ví dụ: chiến dịch mới, nhóm quảng cáo, quảng cáo hoặc từ khóa), bạn có thể sử dụng mã định danh tạm thời để gán tên tài nguyên.
Ví dụ sử dụng Java:
private void addAllBatchJobOperations(
BatchJobServiceClient batchJobServiceClient, long customerId, String batchJobResourceName) {
AddBatchJobOperationsResponse response =
batchJobServiceClient.addBatchJobOperations(
AddBatchJobOperationsRequest.newBuilder()
.setResourceName(batchJobResourceName)
.addAllMutateOperations(buildAllOperations(customerId))
.build());
System.out.printf(
"%d mutate operations have been added so far.%n", response.getTotalOperations());// Sử dụng sequence token này để gọi addBatchJobOperations() trong các lần tiếp theo.System.out.printf(
“Next sequence token for adding next operations is ‘%s’.%n”,
response.getNextSequenceToken());
}
Mẹo chuyên môn:
Thứ tự sắp xếp các thao tác có thể ảnh hưởng đáng kể đến hiệu suất của công việc. Hãy tham khảo hướng dẫn trong phần Các phương pháp tối ưu.
3. Chạy công việc xử lý hàng loạt
Sau khi đã thêm toàn bộ các thao tác, bạn có thể yêu cầu API thực thi công việc bằng cách gọi RunBatchJob.
Ví dụ sử dụng Java:
private OperationFuture runBatchJob(
BatchJobServiceClient batchJobServiceClient, String batchJobResourceName) {
OperationFuture operationResponse =
batchJobServiceClient.runBatchJobAsync(batchJobResourceName);// Lưu ý: Lời gọi trên trả về một OperationFuture. Quá trình thực thi OperationFuture// phụ thuộc vào thread pool của batchJobServiceClient. Đảm bảo giữ service client trong phạm vi sử dụng.
System.out.printf(
“Mutate job with resource name ‘%s’ has been executed.%n”, batchJobResourceName);
return operationResponse;
}
Kết quả trả về sẽ là một đối tượng Long Running Operation (LRO). LRO cung cấp thông tin trạng thái và siêu dữ liệu của công việc.
Lưu ý quan trọng: Hiện tại, Google Ads API không hỗ trợ hủy công việc xử lý hàng loạt sau khi đã được khởi chạy.
4. Điều tra trạng thái công việc hàng loạt và xử lý kết quả trong Google Ads API
Bước tiếp theo là thăm dò trạng thái của công việc hàng loạt bằng cách sử dụng GetOperation của LRO cho đến khi done của LRO là true.
private void pollBatchJob(OperationFuture operationResponse) { try { operationResponse.get(MAX_TOTAL_POLL_INTERVAL_SECONDS, TimeUnit.SECONDS); } catch (InterruptedException | ExecutionException | TimeoutException e) { System.err.printf(“Failed polling the mutate job. Exception: %s%n”, e); System.exit(1); } }
5. Liệt kê tất cả kết quả công việc hàng loạt
Khi tất cả công việc hàng loạt của bạn hoàn tất, bạn có thể liệt kê kết quả bằng cách sử dụng ListBatchJobResults để in trạng thái và phản hồi:
private void fetchAndPrintResults( BatchJobServiceClient batchJobServiceClient, String batchJobResourceName) { System.out.printf( “Mutate job with resource name ‘%s’ has finished. Now, printing its results…%n”, batchJobResourceName); // Lấy tất cả kết quả từ công việc mutate và in thông tin. ListBatchJobResultsPagedResponse batchJobResults = batchJobServiceClient.listBatchJobResults( ListBatchJobResultsRequest.newBuilder() .setResourceName(batchJobResourceName) .setPageSize(PAGE_SIZE) .build()); for (BatchJobResult batchJobResult : batchJobResults.iterateAll()) { System.out.printf( “Mutate job #%d has a status ‘%s’ and response of type ‘%s’.%n”, batchJobResult.getOperationIndex(), batchJobResult.getStatus().getMessage().isEmpty() ? “N/A” : batchJobResult.getStatus().getMessage(), batchJobResult .getMutateOperationResponse() .getResponseCase() .equals(ResponseCase.RESPONSE_NOT_SET) ? “N/A” : batchJobResult.getMutateOperationResponse().getResponseCase()); } }
Xử lý lỗi
Xử lý lỗi trong BatchJobService tự động thử lại các thao tác không thành công do lỗi tạm thời, nhưng không phải tất cả các lỗi đều có thể khắc phục. Với các lỗi liên quan đến xác thực, bạn có thể xử lý và gửi lại các thao tác không thành công trong một công việc theo lô mới. Đối với các thao tác bị hủy, bạn có thể thử lại bằng cách thêm các thao tác này vào một công việc theo lô khác để tiếp tục thực thi.
Việc quản lý lưu lượng sử dụng trong Google Ads không chỉ giúp bạn tiết kiệm thời gian mà còn tối ưu hóa hiệu quả quảng cáo. Với các bước chi tiết từ tạo công việc hàng loạt, theo dõi trạng thái đến xử lý lỗi, bạn sẽ dễ dàng cải thiện hiệu suất và đạt được mục tiêu kinh doanh. Hãy bắt đầu áp dụng ngay hôm nay và khám phá tiềm năng to lớn từ công cụ quảng cáo này. Nếu bạn cần thêm hỗ trợ, đừng ngần ngại liên hệ với chuyên gia để được tư vấn!
