ผู้สร้างคืออะไร?

คุณใช้ตัวสร้างเพื่อเพิ่มเอนทิตี วัตถุแม่แต่ละรายการ เช่น Campaign มีวิธีการรับวัตถุตัวสร้างที่คุณใช้เพื่อเพิ่มเอนทิตีลูก ตัวอย่างเช่น เมื่อต้องการเพิ่มกลุ่มโฆษณาลงในแคมเปญ คุณจะต้องเรียกใช้ Campaign วิธีการของ newAdGroupBuilder วัตถุ

วัตถุตัวสร้างมีเมธอดที่คุณใช้ในการตั้งค่าคุณสมบัติของเอนทิตี ตัวอย่างเช่น หากต้องการระบุ CPC ของคําสําคัญ คุณจะต้องใช้วิธีการwithCpc หลังจากตั้งค่าค่าคุณสมบัติของเอนทิตีทั้งหมดแล้ว คุณจะต้องเรียก build เมธอดเพื่อสร้างเอนทิตี กระบวนการสร้างเป็นกระบวนการแบบอะซิงโครนัสที่คําขอจะถูกจัดคิวพร้อมกับคําขอสร้างอื่นๆ และประมวลผลเป็นชุด คําขอที่เป็นชุดจะเสร็จสมบูรณ์ก่อนที่สคริปต์จะสิ้นสุดลง

เมื่อต้องการตรวจสอบว่าคําขอรุ่นสําเร็จหรือไม่ คุณสามารถดูที่บันทึก หรือคุณสามารถใช้วัตถุการดําเนินการที่ build วิธีการส่งกลับได้ ตัวอย่างเช่น AdGroupBuilder จะส่งกลับ AdGroupOperation คุณสามารถเรียกวิธีการของวัตถุการดําเนินการใดๆ (isSuccessful, getResult, หรือ getErrors) เพื่อตรวจสอบว่าสคริปต์สร้างเอนทิตีสําเร็จหรือไม่ แต่มีข้อควรพิจารณาด้านประสิทธิภาพการทํางานเมื่อเรียกใช้วิธีเหล่านี้ (ดู ข้อควรพิจารณาด้านประสิทธิภาพ)

ตัวอย่างต่อไปนี้แสดงแนวคิดเกี่ยวกับวิธีการสร้างคําสําคัญโดยใช้ตัวสร้างและวัตถุการดําเนินการ คุณควรใช้โฟลว์นี้เฉพาะเมื่อคุณกําลังสร้างเอนทิตีเดียว (หรืออาจมีสองสามรายการ)

    // Gets the first ad group in the account.
    var adGroup = AdsApp.adGroups().get().next();

    // Use the 'with' methods to specify the keyword's property values.
    // The .build() method adds the build request to the build queue.
    var keywordOperation = adGroup.newKeywordBuilder()
        .withCpc(1.2)
        .withText("shirts")
        .withFinalUrl("https://www.contoso.com/shirts")
        .build();

    // Call isSuccessful() to determine if the build succeeded.
    // Calling any of the operation object's method processes the
    // build request immediately. 
    if (keywordOperation.isSuccessful()) {
        // You only need to call getResult if you need to access
        // the new keyword entity.
        var keyword = keywordOperation.getResult();
    } else {
        // Handle the errors.
        for (var error of keywordOperation.getErrors()) {
            Logger.log(`${error}\n`);
        }
    }

ข้อควรพิจารณาด้านประสิทธิภาพการทํางาน

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

ให้ทําสิ่งนี้

    // An array to hold the operations, so you 
    // can process them after all the entities are queued.
    var operations = []; 

    // Create all the new entities.
    for (var i = 0; i < keywords.length; i++) {
        var keywordOperation = AdsApp.adGroups().get().next()
          .newKeywordBuilder()
          .withText(keywords[i])
          .build();
        operations.push(keywordOperation);
    }

    // Now call the operation method so the build requests
    // get processed in batches.
    for (var i = 0; i < operations.length; i++) {
        var newKeyword = operations[i].getResult();
    }

อย่าทําเช่นนี้

    for (var i = 0; i < keywords.length; i++) {
        var keywordOperation = AdsApp.adGroups().get().next()
          .newKeywordBuilder()
          .withText(keywords[i])
          .build();

        // Don't get results in the same loop that creates
        // the entity because Scripts then only processes one
        // entity at a time.
        var newKeyword = keywordOperation.getResult();
    }

ต่อไปนี้คือรายชื่อผู้สร้าง

ขั้นตอนถัดไป