แคมเปญ Shopping

สคริปต์ Google Ads มีไว้สําหรับการจัดการบางอย่างใน 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.");
}

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

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

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

รายงาน

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