Geolokáció: hely és időjárás alapú hirdetések

Csentes Zoltán    2018-11-27

A nagy webáruházak előszeretettel alkalmaznak geolokációs megoldásokat az áraik és a hirdetéseik manipulálására. Egyszerű példákon keresztül bemutatom a geolokáció lényegét, továbbá hogy hogyan lehet időjárás alapú hirdetést készíteni.

Mi a geolokáció?

A geolokáció alapjában helymeghatározást jelent. Az aktuális poziócióra vonatkozó információk összegyűjtése és elemzése során új szolgáltatásokat és hatékonyabb reklámot tudunk létrehozni a felhasználóknak.  A lokáció alapú szolgáltatások igazi ereje az analitika és reklám egyfajta kombinációjából származik, amikor fogyasztókat anonim módon lehet megcélozni társadalmi, földrajzi, fizikai és érzelmi indikátorokon keresztül.


Mire használható a hely alapú hirdetés?

A geolokáció lényege, hogy amikor a böngésződben megnyitsz egy weboldalt  - ami geolokációt használ - és jóváhagyod a helyadataid elküldését, akkor a weboldal tisztában lesz a pontos pozícióddal. Ezáltal egy webshop például más árat tud megjeleníteni ugyanarra a termékre a 8. kerületben és más árat az 5. kerületi Váci utca környékére. Eddig legalább is ez működhetett!

Azonban a minap kaptam fel a fejem egy hírre ezzel kapcsolatban:

Az Európai Unió rendelete értelmében a tagországok online kereskedői december 3-tól nem alkalmazhatnak állampolgárság, lakóhely, illetve letelepedési hely szerint különböző árakat.  - forrás

Szóval az árak manipulálását ezzel ki is húzhatjuk, van viszont csomó más dolog, amire felhasználhatjuk a geolokációs adatokat!


Időjárás alapú hirdetés

Mi lenne, ha a felhasználó pozíciója alapján lekérnénk a pontos időjárási adatokat a környékre és az alapján szolgálnánk ki hirdetést neki?

Ha meleg van és száz ágra süt a nap, akkor napszemüveget vagy mondjuk jégkrémet, ha pedig esik az eső esernyőt, meleg teát hirdetnénk neki. A dolog már régóta működik, akár Google Ads-ben is. Mutatom hogyan!


Geolokáció engedélyezése

Mielőtt még tovább mennénk a technikai részletekben, győződj meg róla, hogy engedélyezted a helyadatok megosztását. Amikor megnyitottad ezt a cikket, a böngésződ engedélyt kért. Ha esetleg elutasítottad, akkor Chrome-ban kattints a kis lakatra a bal felső sarokban és engedélyezd, majd frissíts az oldalra:


Geolokáció lekérése

Az aktuális koordinátákat ezzel a JS kóddal tudod lekérni:



var x = document.getElementById ("geodemo ");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation. getCurrentPosition(showPosition, showError);
    } else { 
        x.innerHTML = "A helymeghatározást ez a böngésző nem támogatja.";
    }
}

function showPosition(position) {
    x.innerHTML = "A koordinátáid a következők:
Latitude: " + position.coords.latitude + "
Longitude: " + position.coords.longitude; } function showError(error) { switch(error.code) { case error. PERMISSION_DENIED: x.innerHTML = "A teljes felhasználói élmény miatt kérlek engedélyezd a helymegosztást, majd frissíts az oldalra!" break; case error. POSITION_UNAVAILABLE: x.innerHTML = "Nem érhető el geolokációs adat." break; case error.TIMEOUT: x.innerHTML = "A lekérés túl sokáig tart." break; case error. UNKNOWN_ERROR: x.innerHTML = "Hiba történt." break; } } window.onload = function() { getLocation(); };

A fenti kód lekéri a szélességi (position.coords.latitude) és hosszúsági (position.coords.longitude) koordinátákat. Ezeket a Google Maps API-jával akár térképre is helyezhetjük.

Te most ezen a környéken vagy:

 

Ez a kód Google Maps API-n keresztül egy térképen jeleníti meg az átadott koordinátákat. A maps API használatához csinálnod kell egy API kulcsot.



function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation. getCurrentPosition(showPosition, showError);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function showPosition(position) {
    var latlon = position.coords.latitude + "," + position.coords.longitude;
    var mapsrc = "https://www.google.com/maps/embed /v1/view?zoom=14¢er="+ latlon+"&
key=XXXXX";

    document.getElementById(" mapholder").innerHTML = "iframe ahol az src='"+mapsrc+"'>";	
	
}

window.onload = function() {
  getLocation();
};

Időjárás adatok lekérdezése

Létezik egy ingyenes OpenWeatherMap.org oldal, ahonnan API-n keresztül ingyen lekérdezhető a koordinátákra az éppen aktuális időjárás. Ezt az oldalt használja egyébként a Google Ads is, tehát a funkció az Adwordsben is elérhető!

Rendkívül részletes időjárási adatokat tudunk lekérdezni:

  • hőmérséklet (min / max)
  • napfelkelte / napnyugta
  • páratartalom
  • légnyomás
  • szél (sebesség / irány)
  • felhőzet (%)
  • eső (mm)
  • hó (mm)

Nálad most ilyen az idő:

Ahogy látszik a fenti adatok bőven elégségesek egy jó időjárás alapú kampány indításához.

Az időjárás adatokat ezzel a kóddal tudod lekérni API-n keresztül, miután csináltál magadnak saját API kulcsot:



var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myObj = JSON.parse(this.responseText);
		var idojaras = myObj.weather[0]['main'];
		var reszletes = myObj.weather[0]['description'];
		var temp = myObj.main.temp;
		
        document.getElementById(" weather").innerHTML = "Aktuális időjárás: " + idojaras +
 "
Részletesebben: " +reszletes+ "
Hőmérséklet: " +temp; } }; xmlhttp.open("GET", "https://api.openweathermap.org /data/2.5/weather? lat=XXX&lon=YYY&units= metric&lang=hu&APPID=XXXXXX", true); xmlhttp.send();

Megosztani ér:


Mennyire volt hasznos számodra a cikk?

Értékelések száma: 1
Átlagos értékelés : 5.0

Kíváncsi vagyok a véleményedre is: