Bản dự thảo và thử nghiệm chiến dịch

Tập lệnh Google Ads hỗ trợ bản nháp chiến dịch và thử nghiệm, được dùng để chuẩn bị và thử nghiệm các thay đổi đối với chiến dịch trên Mạng Tìm kiếm và Mạng Hiển thị.

Bản nháp là bản sao của chiến dịch hiện có sẽ không phân phát quảng cáo của chính chiến dịch đó, nhưng có thể được sử dụng để giai đoạn thay đổi mà không cần sửa đổi chiến dịch gốc. Chiến lược phát hành đĩa đơn sau đó có thể áp dụng các thay đổi theo giai đoạn cho chiến dịch căn bản.

Một thử nghiệm chạy một chiến dịch có thể tuỳ chỉnh song song với chiến dịch gốc chiến dịch và không hiển thị quảng cáo cho một tỷ lệ phần trăm lưu lượng truy cập được chỉ định. Dựa trên kết quả thử nghiệm, bạn có thể áp dụng các thay đổi cho chiến dịch gốc, phân nhánh thử nghiệm thành một chiến dịch độc lập hoặc bỏ qua thử nghiệm chiến dịch.

Hướng dẫn này giải thích quy trình cơ bản khi làm việc với bản nháp và thử nghiệm trong một tập lệnh.

Bản nháp

Tạo bản nháp

Bản nháp được tạo từ chiến dịch cơ sở hiện có bằng cách sử dụng DraftBuilder và cung cấp một tên duy nhất. Chiến dịch căn bản phải là Mạng Tìm kiếm, Mạng Tìm kiếm chiến dịch có chiến dịch Mở rộng hiển thị hoặc chiến dịch Hiển thị (ngoại trừ ứng dụng dành cho thiết bị di động chiến dịch cho Mạng hiển thị) và chiến dịch này không được có ngân sách dùng chung.

const campaign = AdsApp.campaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get()
    .next();

const draftBuilder = campaign.newDraftBuilder()
    .withName("INSERT_DRAFT_NAME_HERE")
    .build();

const draft = draftBuilder.getResult();

DraftBuilder.build() trả về một DraftOperation, một thao tác điển hình trong Tập lệnh. Hãy xem hướng dẫn của chúng tôi để trình tạo để biết thêm chi tiết.

draft được xác định duy nhất bằng tổ hợp mã chiến dịch cơ sở và mã nháp. Xem DraftSelector.withIds() để biết thêm thông tin.

Cung cấp chiến dịch dự thảo

Đối tượng draft liên quan đến chiến dịch căn bản và chiến dịch dự thảo. Đến giai đoạn cập nhật cho chiến dịch căn bản, bạn sẽ áp dụng các thay đổi thông qua chiến dịch dự thảo.

Giống như mọi chiến dịch khác, một chiến dịch dự thảo đều có các phương pháp để thu thập và thiết lập các thuộc tính khác nhau như tiêu chí, nhóm quảng cáo, giá thầu và quảng cáo.

const draftCampaign = draft.getDraftCampaign();

draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");

Xin lưu ý rằng bước kiểm tra việc tuân thủ chính sách quảng cáo được thực hiện cho chiến dịch dự thảo cũng giống như cho chiến dịch căn bản. Bạn sẽ không thể chạy thử nghiệm từ một chiến dịch dự thảo có quảng cáo vi phạm chính sách.

Triển khai bản nháp

Sau khi cấp phép chiến dịch dự thảo, bạn có thể làm theo một trong những cách sau:

  1. Nếu không muốn sử dụng các thay đổi đó, bạn chỉ cần xoá bản nháp. Bạn không thể huỷ thao tác xoá bản nháp nhưng vẫn có thể xem bản nháp đó trong phần Tất cả bản nháp trong thẻ bản nháp của giao diện người dùng Google Ads.

    draft.remove();
    
  2. Nếu quyết định giữ lại những thay đổi bạn đã thực hiện trong bản nháp, bạn có thể tiếp tục và áp dụng chúng:

    draft.startApplying();
    

    Phương thức này bắt đầu quá trình áp dụng các bản cập nhật cho cơ sở chiến dịch, nên bản nháp sẽ có trạng thái Đang áp dụng... trong Giao diện người dùng Google Ads. Tuy nhiên, phương thức này sẽ không thông báo cho bạn khi quá trình hoàn tất.

  3. Nếu muốn thử nghiệm các thay đổi trước, bạn có thể sử dụng bản nháp để tạo một thử nghiệm.

Thử nghiệm

Tạo thử nghiệm

experiment tương tự như bản nháp và cũng được tạo từ một cơ sở chiến dịch. Bạn tạo một experiment bằng một ExperimentBuilder. Thao tác này sẽ tự động tạo thử nghiệm có hai "nhóm" đại diện cho các phần khác nhau của thử nghiệm. Một nhóm (còn gọi là nhóm đối chứng) sẽ chứa chiến dịch căn bản, còn nhóm còn lại (được gọi là nhóm thử nghiệm) sẽ chứa một chiến dịch dự thảo mới mà bạn sẽ tuỳ chỉnh theo các bước cho bản nháp ở trên trước khi lên lịch thử nghiệm.

Khi xây dựng một thử nghiệm, hãy nhớ đặt tất cả những yếu tố sau trong trình tạo:

withCampaign
Chiến dịch mà bạn muốn dựa trên thử nghiệm.
withTrafficSplitPercent
Phần lưu lượng truy cập sẽ được chuyển đến nhóm thử nghiệm. Đối với tỷ lệ 50%, hãy chỉ định 50.
withStartDatewithEndDate
Chỉ định ngày bắt đầu và ngày kết thúc của chiến dịch. Chỉ định trong YYYYMMdd .
withType
SEARCH_CUSTOM hoặc DISPLAY_CUSTOM, tùy vào mạng bạn đang dùng.
withSuffix
Chỉ định một hậu tố sẽ được thêm vào tên của chiến dịch thử nghiệm khi được tạo.
withGoals
Chỉ định mục tiêu cho thử nghiệm này. Đây chỉ là lời nhắc cho bạn mục tiêu của bạn là gì khi tạo quảng cáo đó. Giá trị mặc định phù hợp là [{metric: 'CLICKS', direction: 'INCREASE'}].

Tỷ lệ phần trăm chia tách lưu lượng truy cập xác định phần lưu lượng truy cập sẽ hiển thị quảng cáo từ chiến dịch thử nghiệm thay vì chiến dịch căn bản. Vì lý do này, mỗi chiến dịch căn bản chỉ có thể có một thử nghiệm đang chạy tại một thời điểm.

const experiment = AdsApp.newExperimentBuilder()
  .withCampaign(campaign)
  .withTrafficSplitPercent(50)
  .withStartDate("20230501")
  .withEndDate("20230601")
  .withType("SEARCH_CUSTOM")
  .withSuffix("experiment")
  .withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
  .build();

// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();

Không giống như bản nháp, thử nghiệm được xác định riêng bằng một mã nhận dạng duy nhất. Xem ExperimentSelector.withIds() để biết thêm thông tin.

Cung cấp chiến dịch thử nghiệm

Tương tự như draft, bản thân experiment không phải là một chiến dịch. Thay vào đó, liên quan đến chiến dịch căn bản, bản nháp và chiến dịch thử nghiệm. Các trường của một có thể sửa đổi, ngoại trừ các ngoại lệ sau:

  • tên
  • trạng thái
  • ngày bắt đầu
  • ngày kết thúc
  • ngân sách
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

Bạn có thể thay đổi tên, ngày bắt đầu và ngày kết thúc cho thử nghiệm, sau đó chúng sẽ được phân phối đến chiến dịch thử nghiệm.

// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");

// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);

Để bắt đầu thử nghiệm, hãy gọi experiment.startScheduling(). Đây là một quy trình không đồng bộ, vì quy trình này phải sao chép tất cả các cài đặt từ chiến dịch cơ sở.

Sau khi thử nghiệm kết thúc

Khi thử nghiệm hoàn tất, bạn có một số lựa chọn. Bạn nên cho phép thử nghiệm kết thúc hoàn toàn, do đó sẽ ngừng phân phát quảng cáo nhưng bạn có thể vẫn tương tác với nội dung đó. Bạn vẫn có thể xoá, áp dụng một thử nghiệm Đã hoàn tất hoặc tăng dần, nhưng vẫn có thể truy cập vào số liệu thống kê về hiệu suất của chiến dịch.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Nếu không hài lòng với thử nghiệm dựa trên thống kê, bạn có thể hãy xoá thử nghiệm, việc này cũng sẽ xoá chiến dịch thử nghiệm. Đang xoá không thể huỷ bỏ thử nghiệm, nhưng bạn vẫn có thể xem thử nghiệm trong phần Tất cả thử nghiệm trong thẻ thử nghiệm trên giao diện người dùng Google Ads.

    experiment.remove();
    
  • Nếu hài lòng với kết quả của thử nghiệm, bạn có hai lựa chọn:

    1. Bạn có thể bắt đầu áp dụng các thay đổi và cũng giống như với bản nháp, bạn sẽ không sẽ được thông báo khi quá trình này hoàn tất.

      experiment.startApplying();
      
    2. Bạn có thể thiết lập chiến dịch thử nghiệm dưới dạng độc lập, chiến dịch hoạt động đầy đủ mà không ảnh hưởng đến chiến dịch căn bản. Chiến dịch này quy trình, được gọi là tốt nghiệp, hoàn tất ngay lập tức và yêu cầu thiết lập ngân sách mới.

      const budget = AdsApp.budgets()
          .withCondition(`campaign_budget.id = ${budgetId}`)
          .get()
          .next();
      
      experiment.graduate(budget);
      

      Chiến dịch mới không thể chia sẻ ngân sách với chiến dịch căn bản nữa, đòi hỏi người dùng phải có ngân sách mới. Chiến dịch được phân cấp cũng giống như các chiến dịch bình thường trong đó tất cả các trường của chúng đều có thể sửa đổi được và có thể phân phát dưới dạng chiến dịch căn bản cho nhiều bản nháp và thử nghiệm khác.

Lưu ý khác

Thực thể cơ sở

Việc ra mắt bản nháp và thử nghiệm cho tập lệnh Google Ads cũng giới thiệu khái niệm thực thể cơ sở. Chiến dịch dự thảo và thử nghiệm và nhóm quảng cáo trong chúng khác với các chiến dịch căn bản ban đầu. Đó là lý do CampaignAdGroup hiện có các phương thức để truy cập vào chiến dịch và nhóm quảng cáo cơ bản của chúng: getBaseCampaign()getBaseAdGroup().

Các phương thức này trả về thực thể gọi nếu được chiến dịch hoặc quảng cáo cơ sở gọi nhóm. Các thực thể trong chiến dịch và nhóm quảng cáo, chẳng hạn như từ khoá và quảng cáo đã được cung cấp các phương pháp như vậy.

Để giúp theo dõi các thực thể cơ sở, các chiến dịch đã được cung cấp isBaseCampaign()! isDraftCampaign(), và isExperimentCampaign() .

Gói thuê bao mới Campaign.draftCampaigns()Campaign.experimentCampaigns() cho phép bạn truy cập vào tất cả các chiến dịch dự thảo và thử nghiệm có gọi chiến dịch làm chiến dịch căn bản. Tuy nhiên, bạn không thể chọn bản nháp các chiến dịch có CampaignSelector.withCondition(); sử dụng AdsApp.drafts() thay thế.

Xử lý lỗi

Các phương pháp liên quan đến bản nháp và thử nghiệm sau đây sẽ tiến hành khi tập lệnh được chạy, nhưng có thể không đồng bộ:

  • Draft.startApplying()
  • Experiment.startApplying()
  • Experiment.startScheduling()

Bạn nên chờ để kiểm tra xem các thao tác này có thành công hay không. Giao diện người dùng Google Ads hiển thị các trạng thái Đã áp dụng hoặc Đang hoạt động sau khi hoàn tất thành công có giá trị lần lượt là startApplying()startScheduling(). Và điều này cho biết Không thể áp dụng hoặc Không thể tạo khi không thành công, cho phép bạn nhấp để xem lỗi.

Cũng có thể một số phương thức không thành công trong giai đoạn xem trước nhưng thành công sau khi chạy; chẳng hạn như sau khi tạo bản nháp:

const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.

Thao tác này sẽ không thực hiện được ở chế độ xem trước vì không thể truy cập vào chiến dịch dự thảo ngay lập tức.

Tương tự như vậy, việc tạo thử nghiệm và tìm nạp ngay bản nháp của thử nghiệm chiến dịch sẽ không thành công ở chế độ xem trước, vì bản nháp không thực sự được tạo.

Vì lý do này, hãy kiểm tra các nhật ký bên dưới danh sách tập lệnh của bạn sau khi chạy chúng, và chỉ tiếp tục với tập lệnh "không thành công trong xem trước" chỉ khi bạn cho rằng nguyên nhân là do đối với các giới hạn ở chế độ xem trước.