Skrypt Google Ads: Broad Match Finder

Tym razem dodaję skrypt wyszukujący słowa kluczowe w dopasowaniu przybliżonym.

Osobiście w 99% przypadków nie stosuję tego typu dopasowania.
Głównie ze względu na słabą kontrolę (lub jej brak) nad generowanym ruchem.

Na większości kont, które prowadzę, dodanie tego typu dopasowania uznaję za błąd. Niestety można go popełnić stosunkowo łatwo. Szczególnie podczas dodawania wielu grup reklam / słów kluczowych w edytorze Google Ads.

Gdy tylko skrypt znajdzie dopasowanie przybliżone, to otrzymamy e-mail z nazwą kampanii, grupy i słowa kluczowego.

Uwagi: jest to skrypt w wersji MCC
Harmonogram: raz dziennie

Konfiguracja:
1. Utwórz etykietę i oznacz nią konta, które ma sprawdzać skrypt
2. Wprowadź treść etykiety do zmiennej LABELNAME
3. Wprowadź swój e-mail do zmiennej EMAIL

/*
Copyright 2019 Krzysztof Bycina, www.LiveAds.pl
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

//Configuration
var EMAIL = ['ENTER THE EMAIL HERE'];
var LABELNAME = "ENTER THE LABEL HERE";
//End of the configuration


var badKeywords = [];

function main() {
    validateEmail(EMAIL[0]);
    findBadKeywords();
    sendEmails();
}

function findBadKeywords() {
    var accountSelector = AdsManagerApp.accounts()
        .withCondition("LabelNames CONTAINS '" + LABELNAME + "'");
    var accountIterator = accountSelector.get();
    while (accountIterator.hasNext()) {
        var account = accountIterator.next();
        AdsManagerApp.select(account);
        var keywords = AdWordsApp
            .keywords()
            .forDateRange('LAST_7_DAYS')
            .withCondition("Status = ENABLED")
            .withCondition("AdGroupStatus = ENABLED")
            .withCondition("CampaignStatus = ENABLED")
            .withCondition("KeywordMatchType = BROAD")
            .withCondition("Text DOES_NOT_CONTAIN '+'")
            .get();
        if (keywords.totalNumEntities() > 0) {
            Logger.log("You have borad match keywords in " + account.getName() + " account. Please, check your email for more details.");
            while (keywords.hasNext()) {
                var keyword = keywords.next();
                var kwName = keyword.getText();
                var kwCampaignName = keyword.getCampaign();
                var kwAdgroupName = keyword.getAdGroup();
                badKeywords.push(account.getName() + "\\" + kwCampaignName.getName() + "\\" + kwAdgroupName.getName() + "\\" + kwName + ' is in Broad Match.');
            }
        } else {
            Logger.log("No broad match keywords in " + account.getName() + " account.");
        }
    }
}


function validateEmail(email) {
    var key = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    if (key.test(email) === false) {
        throw new Error('You must enter a valid email address to run the script!')
    }
}

function sendEmails() {
    if (badKeywords[0]) {
        MailApp.sendEmail(EMAIL.join(','), 'You have keywords in broad match.',
            'Hi, \n\nPlease, check these keywords: \n\n' + badKeywords.join("\n"));
    }
}

2 comments / Add your comment below

  1. hej
    Chciałem dopytać jaką masz opinię na temat dodawania do konta słów kluczowych z dopasowaniem broad+ (przybliżone z modyfikatorem). Czy też uważasz to za błąd?
    T.

    1. Cześć Tomasz,

      jak najbardziej jest to dobra praktyka. Dopasowanie ścisłe, do wyrażenia i z modyfikatorem to trzy typy, które zalecam stosować. Dopasowanie przybliżone to typ też może się sprawdzić, ale trzeba go uważanie weryfikować.

      Jeszcze jedna uwaga, znak plusa zawsze dajemy na początku wyrazu, a nie na końcu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *