Menu

AdWords skript na pozastavenie kampaní neplatičov

Historicky prvý skript z dielne Pizza SEO automaticky pozastaví kampane v klientskych účtoch na základe vami určenej podmienky. My ich používame na automatické zastavenie kampaní klientov, ktorí nám zabudli uhradiť zálohu na kredit alebo inú faktúru.

Automaticky generujeme a aktualizujeme zoznam neuhradených faktúr s IČO a sumou. IČO klientov máme spárované s ID klientskeho účtu. Pokiaľ klient neuhradí faktúru, kampane sa samé vypnú. Keď neskôr uhradí, samé za znovu zapnú. Niekedy sa totiž stávalo, že aj po uhradení faktúry trvalo pár hodín (aj dní), kým sa informácia o úhrade faktúry dostala k správcovi kampane.

Skript môžete voľne použiť pre vlastné účely. Samotný skript sa ovláda z Google Spreadsheetu. Pokiaľ nemáte možnosť automaticky doň generovať neuhradené faktúry, môžete ich zadávať ručne (a pri troche fantázie a zručnosti s tabuľkami nie komplikovane). Odporúčame vám spárovať v pomocnom sheete IČO klientov a ID AdWords účtov.

Ako AdWords skript funguje?

Skript pozastavuje a spúšťa kampane v účte AdWords na základe toho, či sa ID toho AdWords účtu nachádza alebo nenachádza v tabuľke. Pozastaveným kampaniam je priradený label s názvom Docasny label, takže v prípade potreby ich je možné ľahko identifikovať. Po vymazaní ID AdWords účtu z tabuľky skript automaticky spustí iba kampane, ktoré boli spustené pred pozastavením a odoberie im priradený label.

Inštrukcie:

  1. Vytvorte si kópiu Google Spreadsheetu https://docs.google.com/spreadsheets/d/1DVZzd6hkMV_NfYCegKCw1ZPumLsh1QH-X4TkVJeK38o/edit?usp=sharing a naplňte ho testovacími dátami (ID AdWords účtu musí existovať a musíte mať k nemu práva na úpravu).
  2. Vložte adresu URL Google Spreadsheetu, ktorý ste v predošlom kroku vytvorili, do skriptu namiesto SHEET_URL.
  3. Do Google Spreadsheetu do stĺpca ID klienta vložte hodnoty Adwords ID klientov, ktorí neuhradili faktúru v tvare: 123-456-7890. Ostatné stĺpce môžete aj nemusíte vyplniť.
  4. Keď vymažete hodnotu zo stĺpca ID klienta, skript automaticky spustí v účte klienta iba tie kampane, ktoré boli predtým skriptom pozastavené.
  5. Skript prechádza prvých 150 riadkov tabuľky. Ak je klientov, ktorým chcete pozastaviť kampane viac (čo veríme nie je váš prípad), zmeňte v skripte časť B2:B151 na napr. B2:B300.
  6. Nastavte spúšťanie skriptu na každú hodinu.

Budeme sa tešiť na vašu spätnú väzbu. Skripty máme radi, už sme o nich písali!

AdWords skript na pozastavenie kampaní

autorka: Nina Varhaníková


/*****************************************************************************
* Pozastavenie a spustenie kampani - Google AdWords *
* Skript pozastavi/spusti kampane klientov s neuhradenou/uhradenou fakturou *
* Spustenie skriptu nastavte na kazdu hodinu *
* Vytvorila: Nina Varhanikova *
* Spolocnost: PizzaSEO *
******************************************************************************/

//Do uvodzoviek umiestnite URL Google sheetu
var ss_config = SpreadsheetApp.openByUrl('SHEET_URL');

function main() {
PAUSE();
ENABLE();
}

//POZASTAVENIE KAMPANI
function PAUSE()
{
//Vyber dat zo sheetu
var sheet=ss_config.getSheetByName("ID klienta")
//Rozsah dat
var sheet_rozsah = sheet.getRange("B2:B151").getValues();
var prazdna_bunka = false;
//Cyklus prechadzajuci cez ucty
for (var a = 0; a < sheet_rozsah.length; a++)
{
if (sheet_rozsah[a] == "")
{
prazdna_bunka = true;
break;
}
if (prazdna_bunka == false)
{
//vytvorenie labelu
var labelName = 'Docasny label';
MccApp.createAccountLabel(labelName);
//Vyber uctu
var working_account1 = MccApp.accounts()
.withIds(sheet_rozsah[a])
.get().next();
MccApp.select(working_account1);

//Kod pracujuci v kampani

//Vytvorenie labelu
AdWordsApp.createLabel("Docasny label");

//Priradenie labelu spustenym kampaniam

//Kampane okrem videa
var campaignIterator = AdWordsApp.campaigns()
.withCondition("Status = ENABLED")
.get();
while (campaignIterator.hasNext())
{
var campaign = campaignIterator.next();
campaign.applyLabel('Docasny label');
}
//Kampane videa
var campaignIterator1 = AdWordsApp.videoCampaigns()
.withCondition("Status = ENABLED")
.get();
while (campaignIterator1.hasNext())
{
var campaign1 = campaignIterator1.next();
campaign1.applyLabel('Docasny label');
}

//Pauzovanie kampani

//Kampane okrem videa
var campaignIterator2 = AdWordsApp.campaigns().get();
while (campaignIterator2.hasNext())
{
var campaign2 = campaignIterator2.next();
campaign2.pause();
}
//Kampane videa
var campaignIterator3 = AdWordsApp.videoCampaigns().get();
while (campaignIterator3.hasNext())
{
var campaign3 = campaignIterator3.next();
campaign3.pause();
}

//Spat do uctu
MccApp.select(working_account1);
}
}
}

//SPUSTENIE KAMPANI
function ENABLE()
{
//Vyber dat zo sheetu
var sheet=ss_config.getSheetByName("ID klienta")
//Rozsah dat
var sheet_rozsah = sheet.getRange("B2:B151").getValues();
var pole_ID = [];

for(var b = 0; b < sheet_rozsah.length; b++)
{
if (sheet_rozsah[b] != "")
{
pole_ID.push(sheet_rozsah[b]);
}
}
Logger.log(pole_ID)

//Vyber ID uctu
var select_account2 = MccApp.accounts().get();
while (select_account2.hasNext())
{
var working_account = select_account2.next();
MccApp.select(working_account);
//Porovnavanie ID podla ID v sheete
var accountID = working_account.getCustomerId();
var found = false;
for(var y = 0; y < pole_ID.length; y++) {
if (pole_ID[y][0] == accountID)
{
found = true;
break;
}
}

//Kod pracujuci v kampani
if(found == false)
{
//Vyber kampani, ktore nie su v sheete a boli pozastavene na zaklade neuhradenej faktury
var labelIterator = AdWordsApp.labels()
.withCondition("Name = 'Docasny label'")
.get();
//Spustenie kampani, odobratie labelu
while (labelIterator.hasNext())
{
var label = labelIterator.next();
var campaignIterator4 = label.campaigns().get();
while (campaignIterator4.hasNext())
{
var campaign4 = campaignIterator4.next();
campaign4.enable();
campaign4.removeLabel('Docasny label');
}
var campaignIterator5 = label.videoCampaigns().get();
while (campaignIterator5.hasNext())
{
var campaign5 = campaignIterator5.next();
campaign5.enable();
campaign5.removeLabel('Docasny label');
}
}
}
}
//Spat do uctu
MccApp.select(working_account);
}

Páčil sa Vám článok?

Nenechajte si újsť raz mesačne naše najdôležitejšie novinky!
  • Toto pole je pre validačné účely a mal by zostať nezmenený.

Označené ako: , ,