Czy nie znalazłeś się kiedyś w sytuacji, gdy dbanie o niektóre aspekty twoich kampanii Google Ads zajmowało zbyt dużo czasu?
Na ratunek w wielu takich sytuacjach mogą przyjść skrypty Google Ads, dzięki którym będziesz w stanie zautomatyzować różne działania na twoich kampaniach.
Zapraszam do przeczytania mojego artykułu, w którym pokrótce przybliżę istotę skryptów oraz wyjaśnię, w jaki sposób działa i co może dać jeden z nich – mianowicie skrypt pogodowy.
Skrypty Google Ads to fragmenty kodu napisane w języku JavaScript, które są w stanie zautomatyzować różne zmienne w kampaniach reklamowych. To właśnie dzięki nim będziesz mógł uniknąć mozolnych czynności takich jak ręczne zmienianie stawek, wstrzymywania grup reklam czy dodawania na koncie Google Ads słów kluczowych.
Tutaj chciałbym nadmienić to, że skrypty najlepiej sprawdzają się na kontach, gdzie ilość kampanii jest znaczna. Dzięki nim możliwe jest wprowadzenie dużej ilości zmian w stosunkowo niedługim okresie czasu.
Zarządzać skryptami możesz wchodząc w Narzędzia i ustawienia, a następnie kierując się do sekcji działu skrypty w sekcji Działania Zbiorcze.
Do najpopularniejszych i najbardziej przydatnych skryptów należą:
– automatyczne odrzucanie odrzuconych reklam,
– automatyczne wykrywanie błędnych adresów URL w reklamach,
– automatyczne odrzucanie miejsc docelowych,
– skrypt pogodowy,
Dzięki skryptowi pogodowemu będziesz w stanie przypisać każdej sesji informację o pogodzie, jaka panowała w czasie jej trwania. Dzieje się to dzięki sondowaniu serwisu pogodowego.
Tutaj pojawia się jedno zasadnicze pytanie – dlaczego wpływ pogody na interakcję użytkowników z daną witryną lub marką jest tak istotny? Jest wiele biznesów, które uzależnione są od warunków pogodowych. Jeśli jesteś zaangażowany w promocję stoku narciarskiego czy firmy zajmującej się systemami ociepleń lub fotowoltaiką, posiadanie wglądu w dane, które opatrzone są informacją o stanie pogody, może być niezwykle przydatne.
Jest wiele sposobów na wdrożenie omawianego skryptu. Niezależnie od tego, który sposób wybierzesz, będzie on musiał składać się z kilku podstawowych komponentów. Są nimi:
1. Klucz geoPlugin API i dane uwierzytelniające Weather Unlocked API
2. Niestandardowy tag HTML do odpytywania API i przechowywania informacji w dataLayer
3. Reguła w celu wywołania Tagu Zdarzenia, gdy dane znajdują się w zmiennych warstwy danych dataLayer, aby pobrać informacje z dataLayer do tagu zdarzenia
4. Zmienna Własny plik cookie do utrzymywania stanu sesji
5. Niestandardowe wymiary w zakresie sesji skonfigurowane w Google Analytics w celu odbierania danych interfejsu API z tagu
Metoda, którą opisuję, podzielona jest na trzy części:
Geolokalizacja – musimy uzyskać przybliżenie obszaru geograficznego, z którego przegląda się odwiedzający.
Weather API — użyjemy tych danych geolokalizacyjnych do zapytania o warunki pogodowe w regionie odwiedzającego.
Warstwa Danych – na koniec przechowamy wszystkie informacje, które uzyskamy w obiekcie dataLayer, aby były dostępne dla naszych Tagów.
Stworzenie reguły jest proste i nie zajmie Wam dużo czasu. Jest to reguła dotycząca niestandardowego zdarzenia, który uruchamia się, gdy do dataLayer zostanie wstawiony klucz „event” o wartości „weatherDone”. Nadaj mu opisową nazwę, np. Zdarzenie – weatherDone.
Chciałbym zaproponować w moim rozwiązaniu dwie zmienne warstwy danych.
Pierwsza, informować będzie o tym, jakie warunki pogodowe panowały w danym momencie. Odbywać się będzie to za pomocą uproszczonych opisów (np. „Pochmurno”, „Deszcz”, „Burza”).
Druga zmienna będzie przechowywać informacje na temat temperatury, również w uproszczonej formie (np. „5°C – 15°C”).
Pierwsza zmienna powinna wyglądać następująco:
Druga zmienna powinna wyglądać tak jak poniżej:
W następnym kroku będziesz sztucznie utrzymywać stan sesji za pomocą niestandardowego pliku cookie, napisanego przez skrypt i odświeżanego przy każdym załadowaniu strony. Powodem, dla którego chcesz zachować taki stan, jest to, że chcesz wysyłać dane pogodowe tylko raz na sesję.
Wywołanie API do usługi pogodowej nie jest prostym zadaniem. Chcesz uniknąć odpalania takich wywołań tak bardzo, jak to możliwe, ponieważ w ten sposób proces ładowania strony nie będzie utrudniony przez powolne ładowanie asynchronicznych wywołań API.
Skrypt cookie znajduje się w skrypcie API przedstawionym w dalszej części tego artykułu, ale zmienna, którą musisz utworzyć, powinna wyglądać tak:
Masz dwa pomiary, które chcesz wysłać jako dodatkowe dane, dlatego do ich przechowywania będziesz potrzebować dwóch niestandardowych wymiarów.
Utwórz dwa niestandardowe wymiary w GA o zasięgu sesji i nazwij je tak, aby można je było znaleźć podczas przeglądania list wymiarów. Nazwałem je Pogoda i Temperatura.
Tag, którego użyłem na potrzeby tego artykułu, wygląda następująco:
Teraz przewiń w dół do Więcej ustawień i rozwiń Wymiary niestandardowe. Tutaj musisz dodać dwa nowe wiersze wymiarów niestandardowych.
W tym momencie przywróć z pamięci lub wyszukaj numery indeksu wymiarów od administratora Google Analytics. W moim przykładzie są to po prostu 3 (dla pogody) i 4 (dla temperatury).
Na początku artykułu wspomniałem o trzech etapach tej metody: geolokalizacji, zapytaniu o pogodę i przechowywaniu informacji w dataLayer.
Aby rozpocząć, potrzebujesz niestandardowego tagu HTML, który korzysta z reguły Wszystkie strony
Kod JavaScript wygląda następująco:
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js”></script>
<script>
(function() {
var fetchWeatherData = function(longitude, latitude) {
// You need to sign up to Weather Unlocked for an account. Once you do,
// you will find your APP ID and APP KEY in your account dashboard.
var wuAppId = ‘paste_your_weather_unlocked_app_id_here’;
var wuAppKey = ‘paste_your_weather_unlocked_app_key_here’;
jQuery.getJSON(‘https://api.weatherunlocked.com/api/current/‘ + latitude + ‘,’ + longitude + ‘?app_id=’ + wuAppId + ‘&app_key=’ + wuAppKey)
.done(function(data) {
window.dataLayer.push({
event: ‘weatherDone’,
weather: data.wx_desc,
temperature: data.temp_c
});
}).fail(function(jq, status, msg) {
console.log(‘Weather request failed: ‘ + status + ‘ – ‘ + msg);
});
};
var geoLocateUser = function() {
// This is your API key for GeoPlugin, which you can purchase at
// http://www.geoplugin.com/premium#ssl_access_per_year
var geoPluginAPIKey = ‘paste_your_api_key_here’;
jQuery.getJSON(‘https://ssl.geoplugin.net/json.gp?k=‘ + geoPluginAPIKey + ‘&jsoncallback=?’)
.done(function(data) {
fetchWeatherData(data.geoplugin_longitude, data.geoplugin_latitude);
}).fail(function(jq, status, msg) {
console.log(‘Geolocation failed: ‘ + status + ‘ – ‘ + msg);
});
};
if (typeof {{Session alive}} === ‘undefined’) {
geoLocateUser();
}
// Reset “session” cookie with a 30-minute expiration
var d = new Date();
d.setTime(d.getTime()+1800000);
var expires = “expires=”+d.toGMTString();
document.cookie = “session=1; “+expires+”; path=/”;
})();
</script>
Jest wiele sposobów na zrobienie geolokalizacji, ale ze względu na funkcjonalność używam również do tego wywołania API. Jeśli poważnie myślisz o tym rozwiązaniu, możesz zainstalować usługę geolokalizacji na własnym serwerze WWW, aby uniknąć konieczności wykonywania dodatkowych wywołań API w kliencie.
Geolokalizacja zależy od jednego: adresu IP odwiedzającego. Ponieważ są to informacje publiczne istnieje wiele sposobów na uzyskanie tych danych.
To, czego potrzebujesz od usługi geolokalizacyjnej, to szerokość i długość geograficzna odwiedzającego. Geolokalizacja oparta na adresach IP zwykle wskazuje miasto, z którego pochodzi odwiedzający, ale w wielu przypadkach może to być znacznie szersze spektrum, takie jak cały stan, a nawet kraj.
Metoda w skrypcie wykorzystuje interfejs API typu „wszystko w jednym” zarówno do uzyskiwania adresu IP, jak i do pobierania długości i szerokości geograficznej wizyty. Usługa nazywa się geoPlugin, a plan SSL jest dość tani.
var geoLocateUser = function() {
// This is your API key for GeoPlugin, which you can purchase at
// http://www.geoplugin.com/premium#ssl_access_per_year
var geoPluginAPIKey = ‘paste_your_api_key_here’;
jQuery.getJSON(‘https://ssl.geoplugin.net/json.gp?k=‘ + geoPluginAPIKey + ‘&jsoncallback=?’)
.done(function(data) {
fetchWeatherData(data.geoplugin_longitude, data.geoplugin_latitude);
}).fail(function(jq, status, msg) {
console.log(‘Geolocation failed: ‘ + status + ‘ – ‘ + msg);
});
};
W tej metodzie najpierw musisz wpisać swój klucz API do zmiennej geoPluginAPIKey. Otrzymasz ten klucz API, subskrybując bardzo tani plan na geoPlugin. Następnie używasz punktu końcowego JSONP interfejsu API geoPlugin, aby pobrać dane geolokalizacyjne dla użytkownika. Wszystko to jest opakowane w niezwykle użyteczną metodę getJSON() jQuery.
Żądanie asynchroniczne jest uzupełniane wywołaniem zwrotnym done(), które jest wywoływane, jeśli wszystko pójdzie dobrze. W tym wywołaniu zwrotnym przekazujesz informację o długości i szerokości geograficznej do następnej funkcji w łańcuchu: fetchWeatherData().
W przypadku błędu informacja o błędzie jest wyprowadzana do konsoli przeglądarki.
Następną rzeczą, którą musisz zrobić, to wykorzystać informacje o geolokalizacji do sondowania danych pogodowych.
W tym celu korzystam z usługi Weather Unlocked. Po zarejestrowaniu się w usłudze, na desce rozdzielczej znajdziesz swój APP ID i APP KEY.
Sama metoda fetchWeatherData() wygląda tak:
var fetchWeatherData = function(longitude, latitude) {
// You need to sign up to Weather Unlocked for a free account. Once you do,
// you will find your APP ID and APP KEY in your account dashboard.
var wuAppId = ‘paste_your_weather_unlocked_app_id_here’;
var wuAppKey = ‘paste_your_weather_unlocked_app_key_here’;
jQuery.getJSON(‘https://api.weatherunlocked.com/api/current/‘ + latitude + ‘,’ + longitude + ‘?app_id=’ + wuAppId + ‘&app_key=’ + wuAppKey)
.done(function(data) {
window.dataLayer.push({
event: ‘weatherDone’,
weather: data.wx_desc,
temperature: data.temp_c
});
}).fail(function(jq, status, msg) {
console.log(‘Weather request failed: ‘ + status + ‘ – ‘ + msg);
});
};
Jest dość podobny do metody geolokalizacji. Używasz informacji o szerokości i długości geograficznej do wysyłania zapytań do Weather Unlocked API. Potrzebujesz do tego swojego APP ID i APP KEY!
Po udanym żądaniu odpowiedź jest analizowana pod kątem opisu aktualnej pogody (data.wx_desc) oraz aktualnej temperatury (data.temp_c). Są one dodawane do obiektu dataLayer pod odpowiednimi kluczami.
Pozostała jeszcze tylko jedna rzecz.
Ostatnim elementem układanki jest uruchomienie tagu tylko raz na sesję. Zrobisz to, rozpoczynając cały proces tylko wtedy, gdy niestandardowy plik cookie strony własnej nie został ustawiony. Zmienna {{Session alive}} zwraca wartość undefined, jeśli plik cookie nie jest ustawiony, więc możemy to sprawdzić przed wykonaniem pierwszego kroku (geolokalizacji).
if (typeof {{Session alive}} === ‘undefined’) {
…the geolocation call…
}
// Reset “session” cookie with a 30-minute expiration
var d = new Date();
d.setTime(d.getTime()+1800000);
var expires = “expires=”+d.toGMTString();
document.cookie = “session=1; “+expires+”; path=/”;
Na końcu skryptu, niezależnie od tego, czy ciasteczko zostało ustawione czy nie, tworzysz/aktualizujesz ciasteczko z nowym 30-minutowym wygaśnięciem.
Oto skrypt pogody dla Menedżera tagów Google. Mam nadzieję, że analiza pogody wniesie dużą wartość do Twoich spostrzeżeń. Myślę, że dobrze jest wiedzieć czy warunki pogodowe wpłynęły na to jakie zachowania zakupowe przejawiali użytkownicy. Być może sprzedaż paneli fotowoltaicznych lub systemów ociepleń wrosła podczas tego ciepłego czy mroźnego okresu. Wnioski do wyciągnięcia pozostawiam Tobie. Mam tylko nadzieję, że mój artykuł pomógł Ci w zrozumieniu i skonfigurowaniu skryptu pogodowego.
Przypis:
https://www.simoahava.com/analytics/send-weather-data-to-google-analytics-in-gtm-v2/
Grzegorz
Maliszewski
HEAD OF BUSINESS DEVELOPMENT
tel. +48 577 997 701
e-mail g.maliszewski@promotraffic.pl
PromoTraffic to przede wszystkim wysoki standard obsługi. Jest to agencja, która podchodzi do zagadnienia marketingu w sposób kompleksowy.
Z przyjemnością rekomendujemy Agencję PromoTraffic jako rzetelnego i kreatywnego partnera, z którym mamy okazję współpracować w kilku obszarach digital marketingu.
Ponad 13 lat doświadczenia, nieustanny #PROgress i sukcesy naszych Klientów.