การเข้าถึงบัญชีผู้ใช้เดียว

หากคุณต้องการเข้าถึงบัญชีผู้ใช้บัญชีเดียว ทุกอย่างจะเริ่มต้นด้วยวัตถุ AdsApp

How do I เข้าถึงเอนทิตีในบัญชีของฉันได้อย่างไร

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

    var iterator = AdsApp.adGroups().get();

แต่ถ้าฉันต้องการเอนทิตีเฉพาะหรือชุดย่อยของเอนทิตีล่ะ

ตัวเลือกมีวิธีต่างๆ ในการกรองรายการเอนทิตี คุณสามารถใช้วิธีการของ withIds() ตัวเลือกเพื่อรับเอนทิตีที่ระบุตาม ID หรือคุณสามารถใช้ withCondition() เพื่อระบุเกณฑ์การเลือกสําหรับการเลือกเอนทิตี ตัวเลือกสําหรับชนิดเอนทิตีทั้งหมด ยกเว้นรายการคําสําคัญเชิงลบ จะมีความสามารถในการกรองรายการเอนทิตี

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

เมื่อต้องการรับกลุ่มโฆษณาทั้งหมดในแคมเปญ ให้ใช้วิธีการ withCondition() ระบุชื่อของแคมเปญ

    var campaignName = 'My Campaign';
    var iterator = AdsApp.adGroups()
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();

สําหรับรายการเงื่อนไขและตัวดําเนินการที่คุณสามารถใช้เพื่อกรองรายการของเอนทิตี ให้ดูวิธีการของ withCondition() ตัวเลือก ตัวอย่างเช่น สําหรับรายการเงื่อนไขของกลุ่มโฆษณา ให้ดูวิธีการ withCondition ของตัวเลือกกลุ่มโฆษณา

หากต้องการรับกลุ่มโฆษณาตาม ID ให้ใช้ withIds() วิธีการระบุกลุ่มโฆษณาที่จะได้รับ

    var ids = ["123456789"];
    var iterator = AdsApp.adGroups()
        .withIds(ids)
        .get();

หรือคุณสามารถรับกลุ่มโฆษณาตามชื่อได้

    var campaignName = 'My Campaign';
    var adGroupName = 'My AdGroup';
    var iterator = AdsApp.adGroups()
        .withCondition(`CampaignName = '${campaignName}'`)
        .withCondition(`Name = '${adGroupName}'`)
        .get();

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือก ให้ดูตัวเลือกคืออะไร

How do I ใช้ตัวเลือกเพื่อวนซ้ําผ่านรายการเอนทิตีที่กรองแล้วได้อย่างไร

คุณไม่ทําเช่นนั้น ตัวเลือกแค่กําหนดเอนทิตีที่คุณต้องการรับ เมื่อต้องการรับเอนทิตีจริงๆ คุณต้องใช้ตัววนซ้ํา เมื่อต้องการรับตัวทําซ้ํา ให้คุณเรียกใช้วิธีการของ get() ตัวเลือก

    var ids = ["123456789"];
    var iterator = AdsApp.adGroups()
        .withIds(ids)
        .get();

ใช้การวนรอบ While อย่างง่ายเพื่อทําซ้ํารายการของเอนทิตี

    while (iterator.hasNext()) {
        var adGroup = iterator.next();
        
        // Do something with the entity
    }

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับตัววนซ้ํา ให้ดูที่ ตัว วนซ้ําคืออะไร

How do I รับข้อมูลประสิทธิภาพสําหรับเอนทิตีได้อย่างไร

เอนทิตีส่วนใหญ่ให้คุณร้องขอข้อมูลประสิทธิภาพได้ ถ้ามี แต่ก่อนอื่น คุณต้องบอกสคริปต์ถึงช่วงวันที่สําหรับข้อมูลประสิทธิภาพเมื่อคุณระบุตัวเลือก เมื่อต้องการระบุช่วงวันที่ ให้ใช้สัญพจน์ที่กําหนดไว้ล่วงหน้า เช่น เมื่อวานนี้ หรือ LAST_MONTH หรือใช้วันที่เริ่มต้นและสิ้นสุด สําหรับข้อมูลเพิ่มเติม ให้ดู forDateRange(สตริง dateRange) และ forDateRange(วัตถุ dateFrom, วัตถุ dateTo)

    var campaignName = 'My Campaign';
    var adGroupName = 'My AdGroup';
    var iterator = AdsApp.adGroups()
        .forDateRange('LAST_30_DAYS')
        .withCondition(`CampaignName = '${campaignName}'`)
        .withCondition(`Name = '${adGroupName}'`)
        .get();

    while (iterator.hasNext()) {
        var adGroup = iterator.next();
        var stats = adGroup.getStats();
    }

นอกจากนี้ คุณยังต้องระบุช่วงวันที่ถ้าคุณระบุคอลัมน์ข้อมูลประสิทธิภาพการทํางานในวิธีการของ withCondition() ตัวเลือก ตัวอย่างเช่น หากคุณต้องการเฉพาะกลุ่มโฆษณาที่มี CTR มากกว่า .22 เปอร์เซ็นต์ คุณต้องระบุช่วงวันที่

    var startDate = {year: 2018, month: 6, day: 3};
    var endDate = {year: 2018, month: 6, day: 13};

    var iterator = AdsApp.adGroups()
        .forDateRange(startDate, endDate)
        .withCondition("Ctr > 0.22")
        .get();

How do I เพิ่มเอนทิตี

เมื่อต้องการเพิ่มเอนทิตี คุณต้องใช้วัตถุตัวสร้าง เมื่อต้องการรับวัตถุตัวสร้าง ให้เรียกใช้เมธอด new* บนวัตถุแม่ที่คุณกําลังเพิ่มรายการย่อย ตัวอย่างเช่น เมื่อต้องการเพิ่มกลุ่มโฆษณาลงในแคมเปญ ให้เรียกใช้วิธีการของ newAdGroupBuilder() แคมเปญ

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

        var adGroupName = "My ad group";
        var endDate = {year: 2018, month: 6, day: 13};
        var customParameters = {key1: 'value1', key2: 'value2', key3: 'value3'};

        var adGroupOperation = campaign.newAdGroupBuilder()
            .withName(adGroupName)
            .withStatus('ENABLED')
            .withLanguage('English')
            .withBiddingStrategy('MANUAL_CPC')
            .withCpc(1.2)
            .withCustomParameters(customParameters)
            .withEndDate(endDate)
            .build();

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

    if (adGroupOperation.isSuccessful()) {
        var adGroup = adGroupOperation.getResult();

    }
    else {
        for (var error of adGroupOperation.getErrors()) {
            Logger.log(`${error}\n`);
        }
    }

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

How do I update an entity

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

    var ids = ["123456789"];
    var adGroups = AdsApp.adGroups()
        .withIds(ids)
        .get();

    if (adGroups.hasNext()) {
        var adGroup = adGroups.next();
        adGroup.bidding().setCpc(2.5);
    }

แต่ฉันจะรู้ได้อย่างไรว่าการอัปเดตได้ผล

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

function main() {
    var id = "123456789";
    var bidAmount = -2.5;  
    var keyword = getKeyword(id); 

    if (keyword != null) {
        keyword.bidding().setCpc(bidAmount);  // Bid is not set because bid amount is not valid
    }

}

function getKeyword(id) {
    var keywords = AdsApp.keywords()
        .withIds([id])
        .get();

    if (keywords.hasNext()) {
        return keywords.next();
    }
    else {
        return null;
    }    
}

การเขียนลงในไฟล์บันทึก

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

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