แคมเปญ 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 คุณดูข้อมูลเพิ่มเติมเกี่ยวกับการรายงานได้ในคู่มือรายงาน