excluding mobile apps from admob campaigns

26 views
Skip to first unread message

kromesh...@gmail.com

unread,
Mar 2, 2017, 6:01:42 PM3/2/17
to AdWords Scripts Forum
I have a script which helps to exclude placements from GDN campaigns marked with a special label under following conditions:

impressions>1000
conversions<1
ctr<0,05%

function getCampaigns() {
    return AdWordsApp.campaigns().withCondition("LabelNames CONTAINS_ANY ['PlacementCleaner']").get();
}

function getReport(period, campaign) {
    var periodString = " DURING " + period;
    var query = "SELECT Domain, AdGroupName, Impressions, Clicks, Ctr, Conversions FROM AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT "
        + " WHERE CampaignName = \"" + campaign.getName() + '\" ' + periodString;
    //Logger.log('Making query ' + query);
    var report = AdWordsApp.report(query);
    return report.rows();
}

function filterByImpressions(campaign, period, impressionsLimit, CTRLimit, conversionsLimit) {
    var rows = getReport(period, campaign);
    while (rows.hasNext()) {
        var row = rows.next();
        var placement = row['Domain'];
        if ((row['Impressions'] > impressionsLimit) &&
            (parseFloat(row['Ctr']) < CTRLimit) &&
            (row['Conversions'] < conversionsLimit)
        ) {
            var adGroup = getAdGroupByName(row['AdGroupName'], campaign.getName());
            excludePlacementAdgroup(adGroup, placement.toString());
            Logger.log('Excluded ' + placement.toString()
                + ' from ' + campaign.getName() + ' ' + adGroup
                + ' for bad performance (impressions) within ' + period
                + ' | impressions ' + row['Impressions']
                + ' CTR ' + row['Ctr']
                + ' Conversions ' + row['Conversions']
            );
        }
    }
}

function massFilterByImpressions(campaigns, period, impressionsLimit, CTRLimit, conversionsLimit) {
    while (campaigns.hasNext()) {
        var campaign = campaigns.next();
        Logger.log('Processing campaign ' + campaign);
        filterByImpressions(campaign, period, impressionsLimit, CTRLimit, conversionsLimit)
    }
}

function getAdGroupByName(adGroupName, campaignName) {
    var adGroupIterator = AdWordsApp.adGroups().withCondition('Name = "' + adGroupName + '"')
        .withCondition('CampaignName = "' + campaignName + '"').get();
    if (adGroupIterator.hasNext()) {
        return adGroupIterator.next();
    }
}

function excludePlacementAdgroup(adGroup, Domain) {
    var excludePlacement = adGroup.display().newPlacementBuilder();
    excludePlacement.withUrl(Domain.toString()).exclude();
}


function excludePlacementCampaign(campaign, Domain) {
    var excludePlacement = campaign.display().newPlacementBuilder();
    excludePlacement.withUrl(Domain.toString()).exclude();
}

function main() {
    massFilterByImpressions(getCampaigns(), 'LAST_30_DAYS', 1000, 0.05, 1);
}


How do I have to modify it for admob campaigns? To have a possibility to exclude not only websites, but mobile apps also?

Thank you in advance

Paul Justine de Honor

unread,
Mar 3, 2017, 1:16:03 AM3/3/17
to AdWords Scripts Forum
Hi,

As of now, excluding the mobile apps is not yet supported in AdWords Scripts. You can only exclude the placement (on which you are currently doing), audiencekeywords and topics. Please continue to follow our blog for any future updates like new releases.

Thanks,
Paul Justine De Honor
AdWords Scripts Team
Reply all
Reply to author
Forward
0 new messages