Як додавати UTM та витрачати на це мінімум часу

Це мені потрібно?

UTM –  це параметри котрі додаєте до посилання, що б система аналітики визначала звідки прийшов користувач

https://назва сайту/якась сторінка/

?utm_source=google&utm_medium= cpc&utm_campaign=21835179774

В даному випадку:
користувач з гугл utm_source=google

канал реклами cpc: utm_medium=cpc

Кампанія: utm_campaign=21835179774 (деякі спеціалісти передають id кампанії – як на мене, це ще ті мазахісти але цей параметр можна відправити динамічно)

Чому мазахісти?
так як шукати за id, потім звіряти з даними у google ads; (або у looker studio прописувати правила щоб підставляло назву кампанії) – це ще той квест.

Тому ми тут, і тому ця стаття з’явилася.

Від себе додам, що фактично це потрібно для CRM-систем та у разі підключення BigQuery.

Для CRM – тому що інколи автоматично зібраний трекінг не передається коректно.

Для BigQuery – тому що буває, що проєкт розвивається настільки, що потрібен окремий аналітик, даних стає багато, і добре, щоб вони правильно збиралися та аналізувалися.

Якщо ні першого, ні другого немає і не планується, то більшість бізнесів можуть навіть не знати, що в Google є якийсь додатковий сенс від прописаних UTM-міток за наявності автотегінгу.

ps: якщо вам кажуть що в них якийсь не такий сайт і потрібно тільки ютм мітки – то це знак що потрібно зафіксувати:
Чи взагалі gclid передається у параметрах?!

бо якщо не передається… то до одного міста та ютм мітка, якщо гугл не зможе передавати розширені данні та обучатися.

Але так як є тренд  – не ставиш UTM то ти не професіонал

то покажу як налаштувати швидко та безболісно

  1. Заходимо на рівень акаунту та вставляємо tracking template:

Лайтова версія трекінгу

{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={_campaign}

Заморочений варіант:

{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={_campaign}&utm_content=cid|{campaignid}|gid|{adgroupid}|kwid|{targetid}

2. Додаємо скрипт:
“Скрипт для налаштування користувацьких параметрів для кампаній”

Потрібно додати скрипт та авторизуватися

Копіювати те що нижче:
// This script sets the custom parameter campaign (_campaign) for all campaigns in the account. This parameter contains the campaign name transformed into a URL-compatible format and can be used in the tracking template or final URL suffix.

// Before applying: Ensure that this parameter is not used for another purpose to avoid overwriting important information. Also, check that there isn’t a campaign parameter with an empty value, as this can cause errors.

// [Schedule] The script should be scheduled to run regularly, e.g., every hour, to add parameters to new campaigns.

// It is also good to manually run it after adding new campaigns.

// [Warning] As of October 27, 2024: The script does not work for all campaign types, including Demand Gen and Video. These need to be updated manually using Google Ads Editor. 

// Remember: Changing a campaign name will leave the old names in historical data in Analytics. Therefore, avoid changing campaign names.

// © ADEQUATE www.adequate.digital 2024

// More info: https://adequate.digital/en/utms-for-google-ads-campaigns/

function main() {
  processAccount();
}

function processAccount() {
  // Process standard campaigns (Search and Display)
  var campaignIterator = AdsApp.campaigns().get();
  while (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    processCampaign(campaign);
  }

  // Process Shopping campaigns
  var shoppingCampaignIterator = AdsApp.shoppingCampaigns().get();
  while (shoppingCampaignIterator.hasNext()) {
    var campaign = shoppingCampaignIterator.next();
    processCampaign(campaign);
  }

  // Process Performance Max campaigns
  var pmaxCampaignIterator = AdsApp.performanceMaxCampaigns().get();
  while (pmaxCampaignIterator.hasNext()) {
    var campaign = pmaxCampaignIterator.next();
    processCampaign(campaign);
  }

  // Optional: Attempt to process Demand Gen campaigns with error handling
  try {
    var demandGenCampaignIterator = AdsApp.demandGenCampaigns().get();
    while (demandGenCampaignIterator.hasNext()) {
      var campaign = demandGenCampaignIterator.next();
      processCampaign(campaign);
    }
  } catch (e) {
    Logger.log('Demand Gen campaigns may not be supported in this account: ' + e.message);
  }
}

function processCampaign(campaign) {
  var campaignName = campaign.getName();

  // Percent-encode the campaign name
  var modifiedCampaignName = encodeURIComponent(campaignName);

  // Truncate to 250 characters
  if (modifiedCampaignName.length > 250) {
    Logger.log('Warning: The encoded campaign name for "' + campaignName + '" exceeds 250 characters and will be truncated.');
    modifiedCampaignName = modifiedCampaignName.substring(0, 250);
  }

  // Get existing custom parameters at the campaign level
  var customParameters = campaign.urls().getCustomParameters() || {};

  // Update or add the 'campaign' parameter
  customParameters['campaign'] = modifiedCampaignName;

  // Set the updated custom parameters back to the campaign
  campaign.urls().setCustomParameters(customParameters);

  Logger.log('Updated campaign "' + campaignName + '" with campaign=' + modifiedCampaignName);
}

Що робить скрипт?

Назви котрі ви дали для кампаній – запусує у custom parameter на рівні кампаній (переводячи самостійно пробіли у символи що читаються аналітикою).

Приклади як це відпрацьовує:

В цій статті додав опис тільки “як виставляти utm для Custom parameters” і на це є причини:

  1. це для мене працює найкраще і без помилок
  2. можливо швидко редагувати та переглядати при вигрузці через едітор
  3. можливо додати Final url suffix в додаток до UTM параметрів що встановлені для акаунту, кампаній. Це корисно при роботі з афілеткою.

Чи підійде це вам? Скоріш за всього так, у 90%  випадках.

10% коли не підійде – це через кастомну розробку сайту, де є перенаправлення з умовами котрі збивають параметри.

Для таких випадків можете пошукати рішення в оригінальній статті з скриптами: https://adequate.digital/en/utms-for-google-ads-campaigns/ Там автор надав декілька способів як додавати. Можна як суфікс, параметр, трекінг темплейт.

Корисні поради

  1. Не варто цей скрипт ставити на автоматичний запуск. Тим більше якщо є звичка змінювати назву кампанії
  2. Не змінювати назву кампанії в процессі оптимізації. Ви змінюєте назву – в аналітику полетять данні з новою назвою кампанії, де буде не зручно аналізувати “колишню кампанію та ту ж саму кампанію але зі зміненою назвою”
  3. Якщо є звичка писати в назві кампанії 450%tROAS чи cpc 1,3uah і т.д; то варто перестати це робити, чи робити на рівні груп оголошень. Так як конкуренти можуть з легкістю зрозуміти які стратегії використовуєте.

Корисні статті у справці

– тутонькі можна знайти інфу щодо динамічних параметрів котрі можна додати до tracking template. Наприклад, якщо запускаєте шоппінг то може доречніше для вас  підставити {product_id} у якесь зі значень.

Leave a Reply

Your email address will not be published. Required fields are marked *