ตัวอย่างสคริปต์สําหรับการจัดการคําสําคัญ

ส่วนต่อไปนี้จะแสดงตัวอย่างของสคริปต์ที่ดําเนินการต่างๆ กับคําสําคัญ

เพิ่มคําสําคัญ

เมื่อต้องการเพิ่มคําสําคัญ ก่อนอื่นให้รับกลุ่มโฆษณาที่จะเพิ่มคําสําคัญ ใช้วัตถุ AdGroupSelector เพื่อเลือกกลุ่มโฆษณา การใช้ withIds เมธอดนี้ให้ประสิทธิภาพที่ดีกว่าการส่งชื่อกลุ่มโฆษณาใน withCondition เมธอด

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

หากคุณไม่ได้ระบุค่า CPC จะมีค่าเริ่มต้นเป็นค่า CPC ของกลุ่มโฆษณา ตามค่าเริ่มต้น สถานะของคําสําคัญจะถูกเปิดใช้งาน

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

function main() {
    // The ID of the ad group to add the keywords to.
    // IDs in Scripts are string integers.
    var adGroupId = 'AD GROUP ID GOES HERE';  
    var adGroup = getAdGroup(adGroupId);

    // Keywords to add. Update as appropriate.
    var keywords = [];
    keywords.push({
        text : "keyword 1",
        cpc : 1.25,
        finalUrl : 'http://www.example.com'
    });
    keywords.push({
        text : "keyword 2",
        cpc : 1.5,
        finalUrl : 'http://www.example.com'
    });

    var operations = [];

    if (adGroup != null)
    {
        for (var keyword of keywords) {
            var operation = addKeyword(
                adGroup, 
                keyword.text, 
                keyword.cpc, 
                keyword.finalUrl);
            operations.push(operation);
        }
    }
    else {
        Logger.log("Unable to retrieve ad group, " + adGroupId);
    }

    checkBuildStatus(operations, keywords);
}

// Get the ad group using its ID.
function getAdGroup(id) {
    var iterator = AdsApp.adGroups()
        .withIds([id])
        .get();

    // Return the ad group if it exists; otherwise, null.
    if (iterator.hasNext()) {
        return iterator.next();
    }
    else {
        return null;
    }
}

// Add the keyword to the specified ad group.
function addKeyword(adGroup, text, cpc, finalUrl) {

    return adGroup.newKeywordBuilder()
        .withText(text)
        .withCpc(cpc)
        .withFinalUrl(finalUrl)
        .build();
}

// Check the keyword's build status.
function checkBuildStatus(operations, keywords) {

    for (var i = 0; i < operations.length; i++) {
        if (!operations[i].isSuccessful()) {
            for (var error of operations[i].getErrors()) {
                Logger.log(`Failed to add, ${keywords[i].text}. Error: ${error}`);
            }
        }
    }
}

หยุดคําสําคัญชั่วคราว

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

function main() {
    var campaignName = 'CAMPAIGN NAME GOES HERE';
    var adGroupName = 'AD GROUP NAME GOES HERE';
    var keywordText = 'KEYWORD TEXT GOES HERE';

    var iterator = AdsApp.keywords()
        .withCondition(`Text = '${keywordText}'`)
        .withCondition(`AdGroupName = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();

    while (iterator.hasNext()) {
        var keyword = iterator.next();
        keyword.pause();
    }
}

รับคําสําคัญทั้งหมดในกลุ่มโฆษณา

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

ถ้าคุณสามารถเข้าถึงรหัสคําสําคัญได้ ให้ใช้คําสําคัญเหล่านั้นแทน การใช้ ID เพื่อรับเอนทิตีให้ประสิทธิภาพการทํางานที่ดีขึ้น ให้ใช้withConditionวิธีการกรองแทนwithIds ตัวอย่างเช่น withIds(['12345']). มีข้อจํากัดเกี่ยวกับจํานวนเอนทิตีที่คุณสามารถดึงข้อมูลโดยใช้ ID

function main() {
    var campaignName = 'CAMPAIGN NAME GOES HERE';
    var adGroupName = 'AD GROUP NAME GOES HERE';

    var iterator = AdsApp.keywords()
        .withCondition(`AdGroupName = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();
        
    while (iterator.hasNext()) {
        var keyword = iterator.next();
    }
}

การรับคําสําคัญทั้งหมดในบัญชี

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

สําหรับข้อมูลเกี่ยวกับการใช้คําสําคัญ yield ให้ดู ใช้คําสําคัญ yield เมื่อรับชุดของเอนทิตีขนาดใหญ่

function* getEntities() {
    const applyConditions = _ => _
        .withCondition('CampaignStatus = ENABLED')
        .withCondition('AdGroupStatus = ENABLED')
        .withCondition('Status = ENABLED')
        .withCondition("CombinedApprovalStatus = DISAPPROVED");

    try {
        // Get the account's keywords. 
        const keywords = applyConditions(AdsApp.keywords()).get();

        while (keywords.hasNext()) {
            yield keywords.next();
        }
    } catch (e) {
        if (!e.message.startsWith('There are too many entities')) {
            throw e;
        }

        // If there are too many keywords at the account level,
        // get keywords by campaigns under the account.
        const campaigns = AdsApp.campaigns().get();

        while (campaigns.hasNext()) {
            const campaign = campaigns.next();

            const keywords = applyConditions(campaign.keywords()).get();

            while (keywords.hasNext()) {
                yield keywords.next();
            }
        }
    }
}

รับข้อมูลประสิทธิภาพของคําสําคัญ

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

สําหรับรายการของเมตริกที่คุณสามารถเข้าถึงได้ ให้ดูวัตถุ Stats

function main() {
    var campaignName = 'CAMPAIGN NAME GOES HERE';
    var adGroupName = 'AD GROUP NAME GOES HERE';
    var keywordText = 'KEYWORD TEXT GOES HERE';

    // Get the keyword. You need to specify the date range of the
    // performance data you want to get.
    var iterator = AdsApp.keywords()
        .forDateRange('LAST_WEEK')
        .withCondition(`Text = '${keywordText}'`)
        .withCondition(`AdGroupName = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();

    // If the keyword is found, log some metrics.
    if (iterator.hasNext()) {
        var keyword = iterator.next();
        var metrics = keyword.getStats(); // Gets the performance metrics.
    }
}

อัปเดตค่าราคาเสนอของคําสําคัญ

ตัวอย่างที่แสดงวิธีอัปเดตค่าราคาเสนอของคําสําคัญ ให้ดูการโทรไปยังบริการของ Google