Der er en lang række udfordringer med målretning i Youtube Ads. Man får simpelthen sjældent hvad man beder om og målretningen kan i bedste fald beskrives som svag og usikker. På papiret ser målretningsmetoderne fine ud men realiteten er bare en anden. Et af de helt store udfordringer i Youtube Ads som jeg tidligere har skrevet om er at man får ekstremt mange visninger til en målgruppe som nok er børn Man søger således at målrette voksne men af forskellige årsager vises ens Youtube Ads annoncer til børn. Læs artiklen hvor den problemstilling udfoldes og anvises hvad man kan gøre.
Et andet fænomen jeg altid ser er at man får mange Youtube Ads annoncevisninger i fremmedsprogede Youtube kanaler. I kampagneopsætningen i Google Ads har man muligvis valgt dansk sprog som det eneste og afvikler i øvrigt kampagnen udelukkende i Danmark. Men en lang række ikke-danske Youtube kanaler dukker op i Google Ads interfacet under “Hvor og hvornår annoncer blev vist“. Her er først en kampagneoopsætning i Google Ads hvor udelukkende dansk sprog er valgt:
Herunder et ikke atypisk billede hvor rigtigt mange kanaler dukker op og mange af dem er tydeligvis ikke dansksprogede. Omfanget af det kan være svært at få en overblik over men hensigtsmæssigt er det ikke. Typisk fylder kanaler med arabiske, russiske og vietnamesiske navne meget i billedet. Det fylder generelt meget i billedet og det er selvsagt usikkert om brugere af de kanaler forstår dansk og om de brugere kulturelt set er i markedet for de ydelser man promoverer. Så man vil ofte ønske at holde de kanaler ude af Youtube Ads så annoncebudgettet bruges andetsteds. Så hvorfor opstår dette fænomen og hvad kan man gøre for at udelade Youtube kanaler i fremmedsprog i Google Ads?
Checker man Google Ads dokumentationen og søger en forklaring på fænomenet omkring sprog og Youtube er det formuleret således
Google Ads kan vise annoncer på YouTube baseret på de sprog, som brugeren forstår. Dette bestemmes af den sprogpræference, som en person angiver på YouTube-startsiden, og forskellige andre signaler, f.eks. browserens sprog, lokation og browserhistorik.
Jeg tror bare man skal være varsom med at acceptere “baseret på de sprog, som brugeren forstår.” og som nævnt er sprogforståelsen ikke udtryk for at man er i markedet for de produkter der annonceres for.
Herunder er der et script som finder annoncevisninger på Youtube kanaler hvor der er ikke-danske tegn i kanalnavnet. Scriptet oprettes som vanligt i interfacet og sættes til at blive afviklet eksempelvis hver nat. Først nogle forudsætninger og råd til udvikling af scriptet.
Nogle forhold i scriptet
- Scriptet forholder sig kun til kampagner der har PUSH i kampagnenavnet. Det kan naturligvis slås fra. Tanken er at der måske kan være scripts hvor man ikke ønsker at opsamle Youtube kanaler i fremmedsprog.
- Der er ikke opsat et datokriterie for hvor lang tid der skal kigges tilbage efter uhensigtsmæssige Youtube kanaler. Oplever man for lang tid til afvikling af scriptet er det nemt at sætte et filter op på dato så der kun kigges eksempelvis en uge tilbage.
- Der skal tilknyttes en negativ placeringsliste til placeringerne. Det angives i EXCLUSION_LIST_NAME = ‘Youtube andre sprog’. Findes listen ikke oprettes den af scriptet. Husk naturligvis at påføre listen til Youtube kampagner som ikke skal vise annoncer på de kanaler. Er man usikker på scriptet så vent med at påføre listen til kampagnerne til efter nogle dage så man er fortrolig med hvordan scriptet fungerer og hvilke kanaler den finder. Afvikler man remarketing kampagner i Youtube ads eksempelvis baseret på importerede kundelister eller besøgende på et website kan man diskutere om den negative placeringsliste skal påføres.
- Jeg har set andre forsøge at afvikle dette hvor de isolerer tegnsæt LATIN. Jeg går en anden vej og accepterer kun almindelige engelske bogstaver + naturligvis æ, ø og å i Youtube kanalnavnet. Vil man acceptere andre tegn i kanalnavne er det er enkel tilretning af scriptet.
- I bunden af logbogen for scriptet skrives hvor mange Youtube kanaler er behandlet og hvor mange har indeholdt problematiske ting. der kunne eksempelvis stå “Total antal kanaler behandlet: 3067” og “Antal kanaler med ikke-engelske tegn: 411“
Her er scriptet til at udelade Youtube kanaler i fremmedsprog i Google Ads
// Navn på eksklusionslisten. Erstat dette med dit faktiske listenavn
var EXCLUSION_LIST_NAME = ‘Youtube andre sprog’;
function main() {
var query = `
SELECT detail_placement_view.group_placement_target_url, campaign.id
FROM detail_placement_view
WHERE campaign.advertising_channel_type = ‘VIDEO’
AND campaign.status = ‘ENABLED’
AND campaign.name LIKE ‘%PUSH%’
`;
var adsApp = AdsApp;
var queryResults = adsApp.report(query).rows();
var totalChannels = 0;
var nonEnglishChannels = 0;
// Regex som accepterer æ, ø, å, Æ, Ø, Å
var nonEnglishCharsRegex = /[^\x00-\x7FæøåÆØÅ]/;
var negativePlacementUrls = [];
while (queryResults.hasNext()) {
var row = queryResults.next();
var groupPlacementUrl = row[‘detail_placement_view.group_placement_target_url’];
var campaignId = row[‘campaign.id’];
if (groupPlacementUrl) {
totalChannels++;
var channelIdMatch = groupPlacementUrl.match(/youtube\.com\/channel\/([a-zA-Z0-9_-]+)/);
if (channelIdMatch) {
var channelId = channelIdMatch[1];
try {
var results = YouTube.Channels.list(‘snippet’, {
id: channelId
});
if (results && results.items && results.items.length > 0) {
var item = results.items[0];
var channelTitle = item.snippet.title;
var hasNonEnglishChars = nonEnglishCharsRegex.test(channelTitle);
if (hasNonEnglishChars) {
nonEnglishChannels++;
Logger.log(‘Kanal med ikke-engelske tegn fundet: ‘ + channelTitle + ‘ | URL: ‘ + groupPlacementUrl);
// Tilføj URL’en til negativ liste-array
negativePlacementUrls.push(groupPlacementUrl);
}
}
} catch (e) {
Logger.log(‘Fejl ved API-opkald til YouTube.Channels.list: ‘ + e.message);
}
}
}
}
Logger.log(‘Total antal kanaler behandlet: ‘ + totalChannels);
Logger.log(‘Antal kanaler med ikke-engelske tegn: ‘ + nonEnglishChannels);
// Tilføj fundne kanaler til eksklusionslisten
addNegativePlacementsToExclusionList(negativePlacementUrls);
}
function addNegativePlacementsToExclusionList(placementUrls) {
if (placementUrls.length === 0) {
Logger.log(‘Ingen placeringer at tilføje til negativ listen.’);
return;
}
// Find eller opret eksklusionslisten
var listIter = AdsApp.excludedPlacementLists().withCondition(“shared_set.name = ‘” + EXCLUSION_LIST_NAME + “‘”).get();
if (!listIter.hasNext()) {
AdsApp.newExcludedPlacementListBuilder().withName(EXCLUSION_LIST_NAME).build();
}
var list = AdsApp.excludedPlacementLists().withCondition(“shared_set.name = ‘” + EXCLUSION_LIST_NAME + “‘”).get().next();
// Hent eksisterende placeringer
var existingPlacements = {};
var placements = list.excludedPlacements().get();
while (placements.hasNext()) {
var pl = placements.next();
existingPlacements[pl.getUrl()] = 1;
}
// Filtrer ud eksisterende placeringer
var toAdd = placementUrls.filter(function(url) {
return !existingPlacements[url];
});
// Tilføj de nye kanaler til eksklusionslisten via bulk upload
var columnHeads = [
‘Action’, ‘Placement Exclusion List Name’, ‘Placement url’
];
var upload = AdWordsApp.bulkUploads().newCsvUpload(columnHeads);
for (var i = 0; i < toAdd.length; i++) {
upload.append({
‘Action’: ‘Add’,
‘Placement Exclusion List Name’: EXCLUSION_LIST_NAME,
‘Placement url’: toAdd[i]
});
}
Logger.log(‘Antal nye placeringer at tilføje: ‘ + toAdd.length);
upload.apply();
}
Når scriptet er afviklet
I logbogen for Google Ads scriptet vil der blive skrevet noget i retning af dette. Hvilken Youtube kanal i udenlandsk sprog er fundet og hvad er kanalens URL. Man kan så stikprøvevis checke de fundne kanaler og vurdere indholdet. Som noget helt naturligt vil man undre sig over matchet mellem den målgruppe man har valgt i Youtube annonceringen og så kanalens indhold.
I denne kørsel er checket 4.718 Youtube kanaler og der er fundet 682 kanaler i udenlandsk sprog. Husk at opsætte schedulering så scriptet afvikles løbende.
Skulle noget have interesse har jeg i øvrigt en voksen liste med langt over 1.000 Youtube kanaler i udenlandsk sprog der kan påføres på en negativ liste i Youtube kampagner eller eksempelvis en PMAX kampagne. Ræk ud til mig hvis det lyder interessant.