Formulár bol úspešne odoslaný
Ďakujeme.
Niektoré stránky boli dočasne odstránené. Zistiť viac
Tieto inštrukcie sa venujú vylúčeniu rizikových webov a YouTube kanálov z vašich kampaní v Google Ads. Pokiaľ používate aj iné inzertné siete, prosíme konzultujte postup s vašou agentúrou. Ponúkame vám výborný skript pre Google Ads, ktorý weby nie len vylúči, ale aj zoznam pravidelne automaticky aktualizuje. Ak nechcete použiť automatizované riešenie, pozrite si návod na manuálne vylúčenie. Ďakujeme, že používate náš zoznam
1
Stiahnite si tento súbor so zoznamom webov a YouTube kanálov na vylúčenie.
2
Prihláste sa do účtu Google Ads a kliknite na položku „Zoznamy vylúčenia umiestnení" v časti “Nástroje a nastavenia”.
3
Kliknite na modré tlačidlo + a vyberte možnosť "Nahrať zoznam".
4
Pomenujte zoznam, vyberte zdroj "Nahrať súbor" a vyberte stiahnutý súbor. Voľbu potvrďte tlačidlom “Použiť”.
5
Po úspešnom nahratí obnovte stránku a kliknutím na názov zoznamu ho otvorte.
6
Na konci zoznamu kliknite na tlačidlo “Použiť v kampaniach”.
7
Vyberte kampane, do ktorých chcete pridať svoj zoznam vylúčených umiestnení a kliknite na tlačidlo "Hotovo“. (Pozn.: Negatívne YouTube umiestnenia sa prejavia iba vo video kampaniach.)
Nasledujúci skript je potrebné vložiť do Google Ads. V prípade potreby môžete nájsť bližšie inštrukcie nižšie.
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/v2/?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 youtubePlacements = []; var row_index = 1; var youtube_row_index = 1; // Load URL placement exclusions 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++; } // Load YouTube placement exclusions while(true) { var range = sheet.getRange('B'+youtube_row_index+':B'+youtube_row_index).getValues(); if(range[0][0] == '') { break; } youtubePlacements.push(range[0][0]); youtube_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); } // iterate over all video campaigns var videoCampaignIterator = AdWordsApp.videoCampaigns().get(); while (videoCampaignIterator.hasNext()) { var tmpExcludedChannels = youtubePlacements; var videoCampaign = videoCampaignIterator.next(); var excludedYoutubeChannelIterator = videoCampaign.videoTargeting().excludedYouTubeChannels().get(); while (excludedYoutubeChannelIterator.hasNext()) { var excludedYouTubeChannel = excludedYoutubeChannelIterator.next(); if (tmpExcludedChannels.indexOf(excludedYouTubeChannel.getChannelId()) !== -1) { delete tmpExcludedChannels[tmpExcludedChannels.indexOf(excludedYouTubeChannel.getChannelId())]; } } tmpExcludedChannels = tmpExcludedChannels.filter((item) => typeof item === 'string'); // Exclude all YouTube channels in batch from campaign for (i=0; i<tmpExcludedChannels.length; i++){ videoCampaign.videoTargeting().newYouTubeChannelBuilder().withChannelId(tmpExcludedChannels[i]).exclude(); } } }
1
Prihláste sa do Google Ads účtu a kliknite na položku “Skripty” v časti “Nástroje a nastavenia”.
2
Kliknite na modré tlačidlo + a potom na "Nový skript".
3
Pomenujte skript a prekopírujte jeho vyššie uvedené znenie do textového poľa. Autorizujte ho kliknutím na tlačidlo “Overiť”
4
Skript potrebuje práva na úpravu kampaní, keďže zoznam webov a YouTube kanálov automaticky pridá k vašim kampaniam.
5
Skript spustite bez zobrazenia ukážky. V prípade potreby povoľte opätovné overenie skriptu.
6
Nezabudnite si nastaviť frekvenciu, v akej má skript zbiehať.
Nasledujúci skript je potrebné vložiť do Google Ads. V prípade potreby môžete nájsť bližšie inštrukcie na vloženie skriptu v časti Automatizované vylúčenie.
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 youtubePlacements = []; var row_index = 1; var youtube_row_index = 1; // Load URL placement exclusions 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++; } // Load YouTube placement exclusions while(true) { var range = sheet.getRange('B'+youtube_row_index+':B'+youtube_row_index).getValues(); if(range[0][0] == '') { break; } youtubePlacements.push(range[0][0]); youtube_row_index++; } Logger.log('Exclusion URLs loaded: '); Logger.log(placements); accountIterator = MccApp.accounts().get(); while(accountIterator.hasNext()) { MccApp.select(accountIterator.next()); processClientAccount(placements, youtubePlacements); } } function processClientAccount(placements, youtubePlacements) { 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/v2/?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); } // iterate over all video campaigns var videoCampaignIterator = AdWordsApp.videoCampaigns().get(); while (videoCampaignIterator.hasNext()) { var tmpExcludedChannels = youtubePlacements; var videoCampaign = videoCampaignIterator.next(); var excludedYoutubeChannelIterator = videoCampaign.videoTargeting().excludedYouTubeChannels().get(); while (excludedYoutubeChannelIterator.hasNext()) { var excludedYouTubeChannel = excludedYoutubeChannelIterator.next(); if (tmpExcludedChannels.indexOf(excludedYouTubeChannel.getChannelId()) !== -1) { delete tmpExcludedChannels[tmpExcludedChannels.indexOf(excludedYouTubeChannel.getChannelId())]; } } tmpExcludedChannels = tmpExcludedChannels.filter((item) => typeof item === 'string'); // Exclude all YouTube channels in batch from campaign for (i=0; i<tmpExcludedChannels.length; i++){ videoCampaign.videoTargeting().newYouTubeChannelBuilder().withChannelId(tmpExcludedChannels[i]).exclude(); } } }