Chiến dịch Mua sắm

Tập lệnh Google Ads cung cấp một số tính năng quản lý cho chiến dịch Mua sắm. Bạn có thể sử dụng tập lệnh để làm việc với các chiến dịch Mua sắm hiện có, tạo và quản lý hệ thống phân cấp nhóm sản phẩm, cũng như chạy báo cáo mua sắm. Tuy nhiên, bạn không thể sử dụng tập lệnh để tạo chiến dịch Mua sắm, đặt các thuộc tính Mua sắm ở cấp chiến dịch (ví dụ: mức độ ưu tiên của chiến dịch, bộ lọc khoảng không quảng cáo, v.v.) hoặc liên kết tài khoản Merchant Center.

Truy xuất chiến dịch Mua sắm và nhóm quảng cáo

Chiến dịch Mua sắm có trong bộ sưu tập shoppingCampaigns của đối tượng AdsApp. Bạn có thể truy xuất các giá trị này như thường lệ thông qua tập lệnh:

const campaignName = "My first shopping campaign";

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

for (const campaign of campaignIterator) {
  ...
}

Sau khi truy xuất một chiến dịch, bạn có thể lấy các nhóm quảng cáo của chiến dịch đó theo cách tương tự. Bạn chỉ nên sử dụng cách này nếu cần thực hiện hành động trên cả chiến dịch và nhóm quảng cáo của chiến dịch đó.

const adGroupIterator = campaign.adGroups()
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
    ...
}

Nếu chỉ định hành động trên các nhóm quảng cáo cụ thể, bạn có thể sử dụng phương thức AdsApp.shoppingAdGroups() để tìm nạp các nhóm quảng cáo mà không cần tìm nạp chiến dịch trước:

const adGroupIterator = AdsApp.shoppingAdGroups()
    .withCondition(`campaign.name = "${campaignName}"`)
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
    ...
}

Quảng cáo sản phẩm

Tập lệnh Google Ads cho phép bạn truy xuất quảng cáo sản phẩm bằng phương thức ads() của ShoppingAdGroup. Bạn có thể tạo quảng cáo sản phẩm mới bằng phương thức newAdBuilder() của ShoppingAdGroup.

Lặp lại thông qua hệ phân cấp nhóm sản phẩm

Bạn có thể truy cập vào gốc của hệ phân cấp nhóm sản phẩm bằng phương thức rootProductGroup của ShoppingAdGroup. Sau đó, bạn có thể sử dụng phương thức children để lặp lại các nhóm sản phẩm con và duyệt qua hệ thống phân cấp nhóm sản phẩm. Mỗi nút là một đối tượng ProductGroup và bạn có thể sử dụng phương thức getDimension để tìm ra loại thực tế của nhóm sản phẩm. Bạn cũng có thể truyền đối tượng này sang một loại cụ thể hơn (ví dụ: ProductBrand) bằng cách sử dụng phương thức truyền tương ứng (ví dụ: asBrand). Đoạn mã sau đây cho thấy cách duyệt qua hệ phân cấp nhóm sản phẩm theo cách đệ quy.

walkTree(shoppingAdGroup.rootProductGroup(), 1);

function walkTree(root, level) {
  // Logger.log(root.getDimension());
  let description = "";
  switch (root.getDimension()) {
    case "ROOT":
      description = "Root";
      break;

    case "CATEGORY":
      description = root.asCategory().getName();
      break;

    case "BRAND":
      description = root.asBrand().getName();
      break;

    // Handle more types here.
    ...
  }

  if (root.isOtherCase()) {
    description = "Other";
  }

  const padding = new Array(level + 1).join('-');
  console.log("%s, %s, %s, %s, %s, %s",
             padding,
             description,
             root.getDimension(),
             root.getMaxCpc(),
             root.isOtherCase(),
             root.getId().toFixed());
  const children = root.children().get();
  for (const child of children) {
    walkTree(child, level + 1);
  }
}

Chọn một nhóm sản phẩm cụ thể

Bạn có thể chọn các nhóm sản phẩm cụ thể trong một hệ thống phân cấp nhóm sản phẩm bằng phương thức productGroups của một thực thể AdsApp, ShoppingCampaign hoặc ShoppingAdGroup. Cách này đơn giản hơn so với việc duyệt qua toàn bộ hệ phân cấp nhóm sản phẩm khi chọn các nhóm sản phẩm cụ thể cho mục đích quản lý giá thầu. Đoạn mã sau đây cho biết cách chọn tất cả nhóm sản phẩm có hơn 5 lượt nhấp và tỷ lệ nhấp lớn hơn 0.01 trong tháng trước, đồng thời tăng giá thầu của các nhóm đó thêm 0.01.

function main() {
  const productGroups = AdsApp.productGroups()
      .withCondition("metrics.clicks > 5")
      .withCondition("metrics.ctr > 0.01")
      .forDateRange("LAST_MONTH")
      .get();
  for (const productGroup of productGroups) {
    productGroup.setMaxCpc(productGroup.getMaxCpc() + 0.01);
  }
}

Cập nhật hệ phân cấp nhóm sản phẩm

Bạn có thể thêm một nhóm sản phẩm con vào một nhóm sản phẩm hiện có bằng cách sử dụng phương thức newChild. Thao tác này sẽ cung cấp cho bạn một đối tượng ProductGroupBuilderSpace. Sau đó, bạn có thể dùng đối tượng này để tạo một nhóm sản phẩm phù hợp. Đoạn mã sau đây thêm một phân mục cho thương hiệu "cardcow" trong thư mục gốc, sau đó phân chia thương hiệu này thành các sản phẩm mới và sản phẩm tân trang.

const root = shoppingAdGroup.rootProductGroup();

// Add a brand product group for a "cardcow" under root.
const brandProductGroup = root.newChild()
    .brandBuilder()
    .withName("cardcow")
    .withBid(1.2)
    .build()
    .getResult();

// Add new conditions for New and Refurbished cardcow brand items.
const newItems = brandProductGroup.newChild()
    .conditionBuilder()
    .withCondition("New")
    .withBid(1.5)
    .build()
    .getResult();

// Refurbished items will use the bid from "cardcow" product group.
const refurbishedItems = brandProductGroup.newChild()
    .conditionBuilder()
    .withCondition("Refurbished")
    .build()
    .getResult();

Tương tự, bạn có thể xoá một phân vùng bằng phương thức remove của ProductGroup. Thao tác này cũng sẽ xoá toàn bộ hệ thống phân cấp nhóm sản phẩm bên dưới nhóm sản phẩm bị xoá.

Các tập lệnh sẽ đảm bảo rằng hệ thống phân cấp nhóm sản phẩm ở trạng thái nhất quán sau khi bạn tạo từng nhóm sản phẩm, vì vậy, bạn không cần tạo hoặc xoá nhóm sản phẩm tương ứng với "Mọi thứ khác" khi cập nhật cấu trúc hệ thống phân cấp nhóm sản phẩm.

Nhóm sản phẩm "Mọi thứ khác"

Hệ thống phân cấp nhóm sản phẩm Mua sắm có một nhóm sản phẩm "Mọi thứ khác" ("Khác") ở mỗi cấp để xử lý những sản phẩm không khớp với điều kiện tuỳ chỉnh mà bạn đã tạo trong hệ thống phân cấp nhóm sản phẩm. Bạn có thể dùng phương thức isOtherCase để phân biệt giữa nhóm sản phẩm thông thường mà bạn đã thêm và nhóm sản phẩm "Khác".

Đoạn mã sau đây truy xuất nhóm sản phẩm "Khác" trong hệ phân cấp nhóm sản phẩm gốc và in giá thầu của nhóm sản phẩm đó.

const root = shoppingAdGroup.rootProductGroup();

const childProductGroups = root.children().get();
let everythingElseProductGroupFound = false;

for (const childProductGroup of childProductGroups) {
  if (childProductGroup.isOtherCase()) {
    console.log("'Everything else' product group found. Type of the " +
               "product group is %s and bid is %s.",
               childProductGroup.getDimension(),
               childProductGroup.getMaxCpc());
    everythingElseProductGroupFound = true;
    break;
  }
}
if (!everythingElseProductGroupFound) {
  console.log("No 'Everything else' product group found under root " +
             "product group.");
}

Khi bạn chia nhỏ một nhóm sản phẩm cuối, tập lệnh sẽ tự động tạo một nhóm sản phẩm "Khác" để đảm bảo rằng hệ thống phân cấp nhóm sản phẩm vẫn hợp lệ. Nhóm sản phẩm "Khác" kế thừa giá thầu của nhóm sản phẩm mẹ.

Tạo nhóm quảng cáo Mua sắm mới

Tập lệnh Google Ads cho phép bạn tạo một nhóm quảng cáo mua sắm mới bằng phương thức newAdGroupBuilder của ShoppingCampaign. Sau khi tạo ShoppingAdGroup, bạn có thể sử dụng phương thức createRootProductGroup của thành phần này để tạo một hệ phân cấp nhóm sản phẩm mới.

Báo cáo

Tập lệnh Google Ads hỗ trợ báo cáo product_group_viewshopping_performance_view để giúp bạn theo dõi hiệu suất của chiến dịch Mua sắm. Bạn có thể tìm hiểu thêm về báo cáo trong hướng dẫn về báo cáo của chúng tôi.