The form was successfully submitted
Thank you.
Some pages have been temporarily removed. Find out more
These instructions deal with how to eliminate high-risk websites from your Google Ads campaigns. If you are using other ad networks as well, please consult your agency on how to proceed. We offer you an excellent script for Google Ads that not only excludes the websites but also regularly and automatically updates the list. If you do not wish to use our automated solution, please refer to manual exclusion instructions. Thank you for using our list.
Download this .csv file which includes the list of websites we do not recommend for advertising.
Log in to your Google Ads account and click on “Placement exclusion lists" in the “Tools & Settings” section.
Click on the blue rounded + button and choose "Upload a list".
Name the list, choose a source "Upload a file" and select downloade .csv file. Confirm the selection with button “Apply”.
After successful upload refresh the page and click on the list name to open it.
On the very end of list, click on the button “Apply to Campaigns”.
Select the campaigns where you want to add your placement exclusion list and click "Done“.
The following script must be entered to Google Ads. If necessary, see the more detailed instructions below.
function main() { var spreadsheetURL = 'https://docs.google.com/spreadsheets/d/1Axn4wvJi9fa8BT6e70K-ZLcg8l9rpjXYOQboShQJlEM/edit?usp=sharing'; var sheet = SpreadsheetApp.openByUrl(spreadsheetURL).getSheets()[0]; var track = function(campaign_id) { // no sensitive data are pushed to 3rd party server // only md var sha = function(input_string) { // compute md5 of input string return Utilities.base64Encode( Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, input_string) ); } var customer_hash = sha(AdWordsApp.currentAccount().getCustomerId()); var track_url = 'http://www.konspiratori.sk/skript/?c='+customer_hash; if(campaign_id){ var campaign_hash = sha(campaign_id); track_url += '&cc='+campaign_hash; } UrlFetchApp.fetch(track_url, {muteHttpExceptions: true}); } // track script run, no sensitive data collected track(); // name exclusion list var placementListName = 'KONSPIRATORI.sk'; var placements = []; var row_index = 1; while(true) { var range = sheet.getRange('A'+row_index+':A'+row_index).getValues(); if(range[0][0] == '') { break; } placements.push(range[0][0]); row_index++; } Logger.log('Exclusion URLs loaded: ', placements); var sharedExcludedPlacementSelector = AdWordsApp.excludedPlacementLists().orderBy("SharedSetId DESC"); var sharedExcludedPlacementIterator = sharedExcludedPlacementSelector.get(); var placementList = null; while (sharedExcludedPlacementIterator.hasNext()) { var sharedExcludedPlacement = sharedExcludedPlacementIterator.next(); if(sharedExcludedPlacement.getName() == placementListName) { placementList = sharedExcludedPlacement; break; } } if(!placementList) { var placementListOperation = AdWordsApp.newExcludedPlacementListBuilder().withName(placementListName).build(); if(placementListOperation.isSuccessful()) { Logger.log('Placements list build success'); } var placementList = placementListOperation.getResult(); } placementList.addExcludedPlacements(placements); var sharedExcludedPlacementIterator = placementList.excludedPlacements().get(); while (sharedExcludedPlacementIterator.hasNext()) { var placement = sharedExcludedPlacementIterator.next(); Logger.log(placement.getUrl()); if(placements.indexOf(placement.getUrl()) == -1) { placement.remove(); } } // iterate over all available campaigns var campaignIterator = AdWordsApp.campaigns().get(); while (campaignIterator.hasNext()) { var campaign = campaignIterator.next(); track(campaign.getId()); // just for statistics, no sensitive data collected campaign.addExcludedPlacementList(placementList); } }
Log in to your Google Ads account and click on “Scripts” in the “Tools & Settings” section.
Click on the blue rounded + button
Name your script and copy and paste the above text into the text box. Authorize it by clicking the “Authorize” button.
The script needs rights to edit your campaigns, as it will automatically add a list of sites to your campaigns.
Run the script without previewing.
Remember to set the frequency at which the script should be running.
The following script must be entered to Google Ads. If necessary, you may find further instructions on how to enter a script in the Automatic exclusion section.
function main() { var spreadsheetURL = 'https://docs.google.com/spreadsheets/d/1Axn4wvJi9fa8BT6e70K-ZLcg8l9rpjXYOQboShQJlEM/edit?usp=sharing'; var sheet = SpreadsheetApp.openByUrl(spreadsheetURL).getSheets()[0]; var placements = []; var row_index = 1; while(true) { var range = sheet.getRange('A'+row_index+':A'+row_index).getValues(); if(range[0][0] == '') { break; } placements.push(range[0][0]); row_index++; } Logger.log('Exclusion URLs loaded: '); Logger.log(placements); accountIterator = MccApp.accounts().get(); while(accountIterator.hasNext()) { MccApp.select(accountIterator.next()); processClientAccount(placements); } } function processClientAccount(placements) { Logger.log("Processing account: " + AdWordsApp.currentAccount().getName()); var track = function(campaign_id) { // no sensitive data are pushed to 3rd party server var sha = function(input_string) { // compute md5 of input string return Utilities.base64Encode( Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, input_string) ); } var customer_hash = sha(AdWordsApp.currentAccount().getCustomerId()); var track_url = 'http://www.konspiratori.sk/skript/?c='+customer_hash; if(campaign_id){ var campaign_hash = sha(campaign_id); track_url += '&cc='+campaign_hash; } UrlFetchApp.fetch(track_url, {muteHttpExceptions: true}); } // track script run, no sensitive data collected track(); // name exclusion list var placementListName = 'KONSPIRATORI.sk'; var sharedExcludedPlacementSelector = AdWordsApp.excludedPlacementLists().orderBy("SharedSetId DESC"); var sharedExcludedPlacementIterator = sharedExcludedPlacementSelector.get(); var placementList = null; while (sharedExcludedPlacementIterator.hasNext()) { var sharedExcludedPlacement = sharedExcludedPlacementIterator.next(); if(sharedExcludedPlacement.getName() == placementListName) { placementList = sharedExcludedPlacement; break; } } if(!placementList) { var placementListOperation = AdWordsApp.newExcludedPlacementListBuilder().withName(placementListName).build(); if(placementListOperation.isSuccessful()) { Logger.log('Placements list build success'); } var placementList = placementListOperation.getResult(); } placementList.addExcludedPlacements(placements); var sharedExcludedPlacementIterator = placementList.excludedPlacements().get(); while (sharedExcludedPlacementIterator.hasNext()) { var placement = sharedExcludedPlacementIterator.next(); Logger.log(placement.getUrl()); if(placements.indexOf(placement.getUrl()) == -1) { placement.remove(); } } // iterate over all available campaigns var campaignIterator = AdWordsApp.campaigns().get(); while (campaignIterator.hasNext()) { var campaign = campaignIterator.next(); track(campaign.getId()); // just for statistics, no sensitive data collected campaign.addExcludedPlacementList(placementList); } }