กลายพันธุ์

สคริปต์ Google Ads รองรับการดัดแปลงทั่วไปที่มีอยู่ใน Google Ads API การดำเนินการส่วนใหญ่ที่ทําได้จาก GoogleAdsService.mutate จะทำในสคริปต์ Google Ads ได้ด้วย รวมถึงการสร้างและจัดการแคมเปญ

เนื่องจากฟีเจอร์นี้ให้สิทธิ์เข้าถึง Google Ads API ส่วนใหญ่ คุณจึงจําเป็นต้องทําความเข้าใจพื้นฐานเกี่ยวกับรูปแบบของ Google Ads API เพื่อใช้ฟีเจอร์นี้ คุณข้ามหลายๆ ด้านได้ เช่น โทเค็นนักพัฒนาแอปและการให้สิทธิ์ เนื่องจากสคริปต์ Google Ads จะจัดการให้คุณ แต่คุณต้องส่งคำขอการดําเนินการที่มีข้อมูลที่ถูกต้อง

ต่อไปนี้คือแหล่งข้อมูลพื้นฐานเกี่ยวกับอินเทอร์เฟซ REST ของ Google Ads API ที่คุณควรทำความคุ้นเคยก่อนอ่านคู่มือนี้ต่อ

ตัวอย่างพื้นฐาน

ตัวอย่างพื้นฐานต่อไปนี้สร้างงบประมาณแคมเปญเพื่อสาธิตฟังก์ชันการทำงาน

const budgetResult = AdsApp.mutate({
    campaignBudgetOperation: {
      create: {
        amountMicros: 10000000,
        explicitlyShared: false
      }
    }
  });

การเรียกใช้ AdsApp.mutate ใช้ออบเจ็กต์ JSON ที่แสดงMutateOperation รายการเดียว ภายในออบเจ็กต์นี้ คุณจะระบุประเภทการดำเนินการที่กำลังทำอยู่ ซึ่งในกรณีนี้คือ campaignBudgetOperation จากนั้นระบุ create, remove หรือทั้ง update และ updateMask ช่องที่เฉพาะเจาะจงภายใน create และ update จะขึ้นอยู่กับประเภททรัพยากรที่คุณกำลังดำเนินการ

สร้างการดำเนินการ

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

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

ประเภทการดำเนินการ

สร้าง

ระบุ create ในการดำเนินการ โดยส่งการนําเสนอออบเจ็กต์ของทรัพยากรที่ต้องการสร้าง

ดูตัวอย่างการดำเนินการ create ได้ที่ด้านบน

นำออก

ระบุ remove ในการดำเนินการ โดยส่งชื่อทรัพยากรของทรัพยากรที่ต้องการนำออก เช่น

AdsApp.mutate({
    adGroupOperation: {
        remove: "customers/[CUSTOMER_ID]/adGroups/[AD_GROUP_ID]"
    }
});

หากไม่ทราบชื่อทรัพยากรของเอนทิตี คุณสามารถดึงข้อมูลได้โดยใช้คำขอ Adsapp.search

อัปเดต

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

ตัวอย่างการดำเนินการ update

const campaignResult = AdsApp.mutate({
    campaignOperation: {
        update: {
            resourceName: "customers/[CUSTOMER_ID]/campaigns/[CAMPAIGN_ID]",
            status: "PAUSED",
            name: "[Paused] My campaign"
        },
        updateMask: "name,status"
    }
});

การจัดการผลลัพธ์

ไม่ว่าการดำเนินการจะเป็นประเภทใด ค่าที่แสดงผลจะเป็น MutateResult คุณสามารถใช้ชื่อทรัพยากรที่แสดงผลเพื่อค้นหาสถานะปัจจุบันของทรัพยากรหลังจากการดําเนินการ และตรวจสอบว่าการดำเนินการสําเร็จหรือไม่ หรือมีข้อผิดพลาดใดเกิดขึ้นหรือไม่

ต่อไปนี้คือตัวอย่างที่แสดงขั้นตอนพื้นฐานในการตรวจสอบผลลัพธ์และพิมพ์ข้อมูลบางอย่างลงในบันทึก

const result = AdsApp.mutate( ... );
if (result.isSuccessful()) {
    console.log(`Resource ${result.getResourceName()} successfully mutated.`);
} else {
    console.log("Errors encountered:");
    for (const error of result.getErrorMessages()) {
        console.log(error);
    }
}

การดำเนินการหลายรายการ

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

ผลลัพธ์ที่ได้คืออาร์เรย์ของออบเจ็กต์ MutateResult 1 รายการสําหรับการดำเนินการแต่ละรายการที่คุณระบุและอยู่ในลําดับเดียวกับการดำเนินการเริ่มต้น

ฟีเจอร์นี้ทํางานเหมือนกับฟีเจอร์ Google Ads API ดังนั้นโปรดดูคําอธิบายแนวทางปฏิบัติแนะนําของ Google Ads API เพื่อดูคําอธิบายที่สมบูรณ์เกี่ยวกับรหัสชั่วคราวและข้อควรพิจารณาอื่นๆ โปรดทราบว่าคําแนะนําใช้ snake_case เพื่อแสดงชื่อช่อง ส่วนเอกสารประกอบสคริปต์ Google Ads ใช้ lowerCamelCase สคริปต์ Google Ads ยอมรับทั้ง 2 กรณีนี้ คุณจึงคัดลอกโค้ดจากคู่มือดังกล่าวได้โดยตรง

หากต้องการดําเนินการหลายรายการในคําขอเดียว ให้รวบรวมการดําเนินการทั้งหมดไว้ในอาร์เรย์ แล้วเรียกใช้ AdsApp.mutateAll การเรียก mutateAll จะรับอาร์เรย์ของการดำเนินการเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่ 2 ที่ไม่บังคับของตัวเลือก ซึ่งได้แก่

  • apiVersion: คุณสามารถระบุเวอร์ชัน API ที่กําหนดเอง เช่น V19 ได้หากต้องการใช้เวอร์ชันอื่นที่ไม่ใช่เวอร์ชันเริ่มต้นของสคริปต์ คุณจะใช้เวอร์ชันใดก็ได้ที่เผยแพร่ต่อสาธารณะในขณะนั้น
  • partialFailure: ฟิลด์นี้มีค่าเริ่มต้นเป็น true หากตั้งค่าเป็น true ระบบจะดำเนินการที่ถูกต้องและแสดงข้อผิดพลาดสำหรับการดำเนินการที่ล้มเหลว หากตั้งค่าเป็น false ระบบจะไม่ดําเนินการใดๆ หากการดำเนินการใดดำเนินการไม่สำเร็จ ซึ่งทำให้ชุดการดำเนินการนี้เป็นแบบอะตอม

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

const operations = [];
const customerId = 'INSERT_CUSTOMER_ID_HERE';
const budgetId = `customers/${customerId}/campaignBudgets/-1`;
const campaignId = `customers/${customerId}/campaigns/-2`;
operations.push({
    campaignBudgetOperation: {
      create: {
        resourceName: budgetId,
        amountMicros: 10000000,
        explicitlyShared: false
      }
    }
  });
operations.push({
    campaignOperation: {
      create: {
        resourceName: campaignId,
        name: 'New Campaign ' + new Date(),
        advertisingChannelType: 'SEARCH',
        manualCpc: {},
        campaignBudget: budgetId,
        advertisingChannelType: 'DISPLAY',
        networkSettings: {
          targetContentNetwork: true
        }
      }
    }
  });
operations.push({
    adGroupOperation: {
      create: {
        campaign: campaignId,
        name: 'New AdGroup ' + new Date(),
        optimizedTargetingEnabled: true
      }
    }
  });
const results = AdsApp.mutateAll(
    operations, {partialFailure: false});