แคมเปญ Shopping

สคริปต์ Google Ads ช่วยให้คุณจัดการแคมเปญ Shopping ได้ คุณใช้สคริปต์เพื่อทำงานกับแคมเปญ Shopping ที่มีอยู่ สร้างและจัดการลำดับชั้นของกลุ่มผลิตภัณฑ์ รวมถึงเรียกใช้รายงาน Shopping ได้ อย่างไรก็ตาม คุณไม่สามารถใช้สคริปต์เพื่อ สร้างแคมเปญ Shopping ตั้งค่าพร็อพเพอร์ตี้ Shopping ที่ระดับแคมเปญ (เช่น ลำดับความสำคัญของแคมเปญ ตัวกรองคลังผลิตภัณฑ์ ฯลฯ) หรือลิงก์บัญชี Merchant Center

ดึงข้อมูลแคมเปญ Shopping และกลุ่มโฆษณา

แคมเปญ Shopping พร้อมใช้งานผ่านคอลเล็กชัน shoppingCampaigns ของออบเจ็กต์ AdsApp คุณสามารถดึงข้อมูลได้ตามปกติผ่านสคริปต์

const campaignName = "My first shopping campaign";

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

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

เมื่อดึงข้อมูลแคมเปญแล้ว คุณจะดึงข้อมูลกลุ่มโฆษณาของแคมเปญได้ในลักษณะเดียวกัน วิธีนี้เหมาะสำหรับกรณีที่คุณต้องการดำเนินการกับทั้งแคมเปญและกลุ่มโฆษณาของแคมเปญ

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

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

หากวางแผนที่จะดำเนินการกับกลุ่มโฆษณาที่เฉพาะเจาะจงเท่านั้น คุณสามารถใช้AdsApp.shoppingAdGroups() วิธี เพื่อดึงข้อมูลกลุ่มโฆษณาโดยไม่ต้องดึงข้อมูลแคมเปญก่อนได้

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

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

โฆษณาผลิตภัณฑ์

สคริปต์ Google Ads ช่วยให้คุณดึงโฆษณาผลิตภัณฑ์ได้โดยใช้เมธอด ads() ของ ShoppingAdGroup คุณสร้างโฆษณาผลิตภัณฑ์ใหม่ได้โดยใช้ วิธี newAdBuilder() ของ ShoppingAdGroup

วนซ้ำผ่านลำดับชั้นของกลุ่มสินค้า

คุณเข้าถึงรูทของลำดับชั้นกลุ่มสินค้าได้โดยใช้วิธี rootProductGroup ของ ShoppingAdGroup จากนั้นคุณจะใช้วิธี children เพื่อวนซ้ำกลุ่มสินค้าย่อยและสำรวจ ลำดับชั้นของกลุ่มสินค้าได้ แต่ละโหนดคือออบเจ็กต์ ProductGroup และคุณใช้เมธอด getDimension เพื่อดูประเภทที่แท้จริงของกลุ่มผลิตภัณฑ์ได้ นอกจากนี้ คุณยังแคสต์ไปยังประเภทที่เฉพาะเจาะจงมากขึ้นได้ (เช่น ProductBrand) โดยใช้วิธีการแคสต์ที่เกี่ยวข้อง (เช่น asBrand) ข้อมูลโค้ดต่อไปนี้แสดงวิธีไปยังส่วนต่างๆ แบบเรียกซ้ำ ในลำดับชั้นของกลุ่มผลิตภัณฑ์

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);
  }
}

เลือกกลุ่มสินค้าที่เฉพาะเจาะจง

คุณเลือกกลุ่มสินค้าที่เฉพาะเจาะจงในลำดับชั้นกลุ่มสินค้าได้ด้วย productGroups เมธอดของอินสแตนซ์ AdsApp, ShoppingCampaign หรือ ShoppingAdGroup วิธีนี้ง่ายกว่าการสำรวจลำดับชั้นของกลุ่มสินค้าทั้งหมดเมื่อเลือกกลุ่มสินค้าที่เฉพาะเจาะจงเพื่อวัตถุประสงค์ในการจัดการราคาเสนอ ข้อมูลโค้ดต่อไปนี้แสดงวิธีเลือกกลุ่มผลิตภัณฑ์ทั้งหมดที่มีคลิกมากกว่า 5 ครั้งและอัตราการคลิกผ่านมากกว่า 0.01 ในช่วงเดือนที่ผ่านมา และเพิ่มราคาเสนอขึ้น 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);
  }
}

อัปเดตลําดับชั้นของกลุ่มสินค้า

คุณเพิ่มกลุ่มสินค้าย่อยลงในกลุ่มสินค้าที่มีอยู่ได้โดยใช้วิธี newChild ซึ่งจะให้ProductGroupBuilderSpace ออบเจ็กต์แก่คุณ จากนั้นคุณจะใช้ออบเจ็กต์นี้เพื่อสร้างกลุ่มผลิตภัณฑ์ที่เหมาะสมได้ ข้อมูลโค้ดต่อไปนี้จะเพิ่มการแบ่งกลุ่มสำหรับแบรนด์ "cardcow" ภายใต้รูท แล้วแบ่งกลุ่มเพิ่มเติมสำหรับผลิตภัณฑ์ใหม่และผลิตภัณฑ์ที่ได้รับการซ่อมแซม

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();

ในทำนองเดียวกัน คุณสามารถนำเขตการปกครองย่อยออกได้โดยใช้วิธี remove ของ ProductGroup การดำเนินการนี้จะลบลำดับชั้นของกลุ่มสินค้าทั้งหมด ภายใต้กลุ่มสินค้าที่จะนำออกด้วย

สคริปต์จะช่วยให้มั่นใจว่าลำดับชั้นของกลุ่มสินค้าอยู่ในสถานะที่สอดคล้องกัน หลังจากสร้างกลุ่มสินค้าแต่ละกลุ่ม คุณจึงไม่จำเป็นต้องสร้างหรือลบ กลุ่มสินค้าที่สอดคล้องกับ "อื่นๆ ที่เหลือ" เมื่ออัปเดตโครงสร้างลำดับชั้นของกลุ่มสินค้า

กลุ่มสินค้า "อื่นๆ ที่เหลือ"

ลำดับชั้นกลุ่มสินค้า Shopping มีกลุ่มสินค้า "อื่นๆ ที่เหลือ" ("อื่นๆ") ในแต่ละระดับเพื่อจัดการสินค้าที่ไม่ตรงกับ เงื่อนไขที่กำหนดเองที่คุณสร้างไว้ในลำดับชั้นกลุ่มสินค้า คุณสามารถใช้วิธี isOtherCase เพื่อแยกความแตกต่างระหว่างกลุ่มสินค้าปกติที่คุณเพิ่มกับกลุ่มสินค้า "อื่นๆ"

ข้อมูลโค้ดต่อไปนี้จะดึงกลุ่มสินค้า "อื่นๆ" ภายใต้ลำดับชั้นของกลุ่มสินค้า รูท และพิมพ์ราคาเสนอของกลุ่มสินค้า

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.");
}

เมื่อคุณแบ่งย่อยกลุ่มสินค้าใบ ระบบจะสร้างกลุ่มสินค้า "อื่นๆ" โดยอัตโนมัติเพื่อให้มั่นใจว่าลำดับชั้นของกลุ่มสินค้ายังคงถูกต้อง กลุ่มสินค้า "อื่นๆ" จะสืบทอดราคาเสนอของกลุ่มสินค้าหลัก

สร้างกลุ่มโฆษณา Shopping ใหม่

สคริปต์ Google Ads ช่วยให้คุณสร้างกลุ่มโฆษณา Shopping ใหม่ได้โดยใช้วิธีการ newAdGroupBuilder ของ ShoppingCampaign เมื่อสร้างShoppingAdGroupแล้ว คุณจะใช้เมธอด createRootProductGroup เพื่อสร้างลำดับชั้นกลุ่มสินค้าใหม่ได้

รายงาน

สคริปต์ Google Ads รองรับรายงาน product_group_view และ shopping_performance_view เพื่อช่วยคุณติดตามประสิทธิภาพของ แคมเปญ Shopping ดูข้อมูลเพิ่มเติมเกี่ยวกับการรายงานได้ในคู่มือรายงาน