DOŁĄCZ DO GRUPY
BEZPŁATNY AUDYT
SKRYPT PMAX
NEWSLETTER

Zaawansowane Google Ads

5,001 członków

Dołącz do naszej społeczności ekspertów Google Ads i zyskaj dostęp do zaawansowanych strategii, wsparcia specjalistów i inspirujących case studies.

Prywatna grupa - Tylko zatwierdzeni członkowie

Nie jesteś pewny, czy Twoje reklamy działają tak, jak powinny?

Umów się na bezpłatny audyt konta Google Ads

Profesjonalna analiza

Szybki kontakt i konkretne informacje zwrotne.

Analiza efektywności
Weryfikacja Strategii
Praktyczne rekomendacje
Propozycja współpracy

Chcesz lepiej zrozumieć działanie kampanii Performance Max?

PMax Channels Analyzer

Darmowy skrypt dla Google Ads

Analizuj wydatki i konwersje z poszczególnych kanałów w kampaniach Performance Max.

Podział na kanały
Szczegółowe statystyki
Łatwa instalacja
Automatyczne raporty

Zapisz się na newsletter i otrzymuj praktyczne porady oraz narzędzia, które usprawnią twoje konto reklamowe.

Skrypt Google Ads: URL Redirect Checker

URL Redirect Checker to skrypt Google Ads, który weryfikuje, czy reklamy prowadzą do adresów z przekierowaniem (najczęściej kod 301).

Kod 301 oznacza, że dana podstrona została na stałe przeniesiona pod inny adres. Jest to często stosowany zabieg przy przebudowie strony lub pracami nad widocznością w wyszukiwarkach (SEO).

Niestety przekierowania mogą mieć negatywny wpływ na skuteczność reklam Google Ads.

Najczęściej z dwóch powodów:

  1. Przekierowania mogą obniżyć prędkość ładowania strony i tym samy negatywnie wpłynąć na wynik jakość (co może zwiększyć stawki za kliknięcie).
  2. Przekierowania mogą prowadzić do strony, która jest mniej precyzyjna niż jej poprzednik (znowu wynik jakości).

Poniższy skrypt generuje raport w Google Sheets z nazwą kampanii, grupy reklam i linkiem. Dzięki temu z łatwością zweryfikujemy aktywne przekierowania.

Rozwiązanie korzysta z następującego klucza:

  1. Sprawdza wszystkie linki z kampanii tekstowych, które otrzymały w 
    ostatnich 7 dniach > 0 kliknięć
  2. Sprawdza wszystkie linki z rozszerzeń do podstron, które otrzymały w ostatnich 30 dniach > 0 kliknięć

Harmonogram: raz w miesiącu


Konfiguracja:
1. Wstaw swój e-mail do zmiennej EMAIL
2. Wstaw adres arkusza Google Sheets do zmiennej SPREADSHEET_URL


Po więcej na temat Skryptów zapraszam na grupę FB o automatyzacji:
https://www.facebook.com/groups/skrypty.google.ads


/*
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 YOUR EMAIL HERE";
var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/xxxxxxzzzzzzzzzh/edit'; //Google Sheet URL
//End of the configuration

var sheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL).getActiveSheet();


function main() {

    //Prepare the Google Sheet:
    sheet.clearContents();
    sheet.appendRow(["Type", "Campaign", "Ad group", "URL", "Response Code"]);
    var range = sheet.getRange(1, 1, 1, 5);
    range.setFontWeight("bold");

    //Check the links:
    var badLandingPages = checkTheAdsData();
    var badSiteLinks = checkTheSitelinksData();

    //Adjust columns:
    sheet.autoResizeColumn(5);

    //Send e-mail:
    var totalNumberOfRedirects = badLandingPages + badSiteLinks;
    if (totalNumberOfRedirects) {
        sendEmails(totalNumberOfRedirects);
    } else {
        Logger.log("All landing pages look ok!");
    }
}

//Check links from ads
function checkTheAdsData() {
    var badLandingPages = 0;
    var report = AdWordsApp.report("SELECT CampaignName, AdGroupName, EffectiveFinalUrl, Impressions " +
        "FROM FINAL_URL_REPORT " +
        "WHERE Clicks > 0 " +
        "DURING LAST_7_DAYS ");
    var rows = report.rows();
    while (rows.hasNext()) {
        var row = rows.next();
        try {
            var response;
            var response = UrlFetchApp.fetch(row['EffectiveFinalUrl'], {
                "muteHttpExceptions": true
            })
            Logger.log("link test: " + row['EffectiveFinalUrl']);
            var responseCode = response.getResponseCode();
            var firstDigit = ('' + responseCode)[0];
            if (firstDigit == 3) {
                badLandingPages++;
                sheet.appendRow(["Ad redirect", row['CampaignName'], row['AdGroupName'], row['EffectiveFinalUrl'], responseCode]);
            }
        } catch (error) {
            Logger.log("The script couldn't test that link: " + row['EffectiveFinalUrl']);
        }
    }
    return badLandingPages;
}

//Check links from Sitelinks
function checkTheSitelinksData() {
    var badSiteLinks = 0;
    var campaignIterator = AdsApp.campaigns()
        .withCondition("Clicks > 0")
        .forDateRange("LAST_30_DAYS")
        .get();

    while (campaignIterator.hasNext()) {
        var campaign = campaignIterator.next();
        var sitelinksIterator = campaign.extensions().sitelinks().get();

        while (sitelinksIterator.hasNext()) {
            var sitelink = sitelinksIterator.next();
            try {
                Logger.log("site link test: " + campaign.getName());
                var response = UrlFetchApp.fetch(sitelink.urls().getFinalUrl(), {
                    "muteHttpExceptions": true
                })
                var responseCode = response.getResponseCode();
                var firstDigit = ('' + responseCode)[0];

                if (firstDigit == 3) {
                    badSiteLinks++;
                    sheet.appendRow(["Sitelink redirect", campaign.getName(), , sitelink.urls().getFinalUrl(), responseCode]);
                }
            } catch (error) {
                Logger.log("The script couldn't test that sitelink: " + sitelink.urls().getFinalUrl());
            }
        }
    }
    return badSiteLinks;
}


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 eneter a valid email address to run the script!')
    }
}

function sendEmails(totalNumber) {
    MailApp.sendEmail(EMAIL, AdWordsApp.currentAccount().getName() + ' has pages with redirects.',
        'Hi, \n\nYour account has ' + totalNumber + ' redirects.\n\nPlease, see the full report: \n' + SPREADSHEET_URL);
}



Dodaj komentarz

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