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

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

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

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

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

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

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

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

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

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

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

หากต้องการรับกลุ่มโฆษณาตาม 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 (iterator.hasNext()) {
        var adGroup = iterator.next();
        
        // Do something with the entity
    }

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

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

เอนทิตีส่วนใหญ่ช่วยให้คุณสามารถร้องขอข้อมูลประสิทธิภาพการทํางาน (ถ้ามี) แต่ก่อนอื่นคุณต้องบอกสคริปต์ช่วงวันที่สําหรับข้อมูลประสิทธิภาพการทํางานเมื่อคุณระบุตัวเลือก เมื่อต้องการระบุช่วงวันที่ ให้ใช้สัญพจน์ที่กําหนดไว้ล่วงหน้า เช่น YESTERDAY หรือ LAST_MONTH หรือใช้วันที่เริ่มต้นและวันที่สิ้นสุด สําหรับข้อมูลเพิ่มเติม โปรดดู forDateRange(string dateRange) และ forDateRange(Object dateFrom, Object 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 เพิ่มเอนทิตีหรือไม่

หากต้องการเพิ่มเอนทิตี คุณต้องใช้ออบเจ็กต์ตัวสร้าง เมื่อต้องการรับวัตถุตัวสร้าง ให้เรียกใช้เมธอด ใหม่* บนวัตถุแม่ที่คุณกําลังเพิ่มลูกเข้าไป ตัวอย่างเช่น หากต้องการเพิ่มกลุ่มโฆษณาไปยังแคมเปญ ให้เรียกใช้วิธีการของ 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 อัปเดตเอนทิตีหรือไม่

หลังจากใช้วัตถุตัวสร้างเพื่อเพิ่มเอนทิตี คุณใช้วิธีการของเอนทิตีเพื่ออัปเดตคุณสมบัติ ตัวอย่างต่อไปนี้อัปเดตจํานวนการเสนอราคา 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;
    }    
}

กําลังเขียนไปยังล็อกไฟล์

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

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