Archive for augusztus, 2009

Medián WebAudit mérőkódok az alkalmazásokban

Az alkalmazások üzleti szempontból egyik legérdekesebb és legfontosabb mérőszáma a látogatottságuk, és a felhasználók különböző demográfiai paraméterei (életkor, nem, stb.). A jövőben minden alkalmazásban mérni fogjuk azok látogatottságát, ehhez partnerünk, a WebAudit biztosít számunkra mérőkódokat. A mérőkódokat az alkalmazás logikája szerint a fejlesztőknek kell elhelyezniük az alkalmazásokban.

A mérőkódok a dinamikus “oldalletöltéseket” mérik. A kódok központi beillesztése az alkalmazásokba pont ezért nem lehetséges, mert az, hogy mi számít oldalletöltésnek, az mindig alkalmazásspecifikus, így függ az alkalmazás logikájától, és az oldalak megjelenítésének technológiájától is.

A mérési eredményekhez és statisztikákhoz nem csak az Origo, de a fejlesztő is hozzáfér majd, ezzel olyan információkhoz jut, melyet jellemzően más statisztika alkalmazások nem tudnak nyújtani, illetve amelyek nyomán lehetőségetek nyílik tovább optimalizálni az alkalmazást a célcsoportotokra is.

Csak és kizárólag az alkalmazás canvas nézete mérendő, oda kell betenni az alábbi kódrészleteket. Két mérésről van szó, egyrészt az iWiW (iwiw.hu) saját mérésébe is be fog számítani egy kód, másrészt pedig az alkalmazás külön is mérve lesz. Ezért minden “oldalbetöltődéskor” két külön kód meghívása szükséges, egy iWiW-es, és egy az alkalmazáshoz tartozó.

A saját mérésetekhez minden alkalmazásnak egy főoldali és 5 aloldal méréséhez vannak kódjaink, míg a másodiknak meghívandó iWiW-es kód az minden oldalbetöltéshez ugyanaz (de alkalmazásonként az is különböző).

A canvas nézet fejlécébe ennek megfelelően be kell húzni a következő JavaScriptet:

<script type="text/javascript" src="http://static.iwiw.net/common/javascript/median.js"></script>

Az oldalak betöltődése után egyrészt az iWiW-es kóddal, másrészt pedig az adott oldal kódjával kell meghívni a WebAudit.measure() függvényt. Az iWiW-es kód mindig ugyanaz, az alkalmazás saját kódja változik.

A WebAudit.measure JavaScript függvényt kell meghívnotok oldalbetöltődéskor, például a főoldal betöltésekor:

WebAudit.measure(...iWiW-es kód...);
WebAudit.measure(...főoldal kód...);

Első aloldal betöltődésekor:

WebAudit.measure(...iWiW-es kód...);
WebAudit.measure(...aloldal1 kód...);

Hogy az adott alkalmazásban mi számít főoldalnak, aloldalnak, azt az iWiW Fejlesztői support-tal (dev kukac iwiw hu) tudjátok egyeztetni azután, hogy e-mailben megkaptátok az alkalmazáshoz tartozó kódokat. A struktúrára első körben várunk tőletek egy javaslatot. Értelemszerűen nem feltétlenül szükséges az összes kódot felhasználni - ha az alkalmazásnak nincs annyi különböző aloldala, akkor nem kell több aloldalt mérni.

A kódok kiosztásával kapcsolatban szeptember első napjaiban folyamatosan felkeressük az élesített alkalmazások tulajdonosait.

Az új, elbírálásra beérkező és jóváhagyásra váró alkalmazások fejlesztőinek az élesítési folyamat során adunk majd kódokat.

Módosul az iWiW Fejlesztői ÁSZF

2009. szeptember 10-i hatállyal módosul az iWiW Fejlesztői ÁSZF (Az iWiW Alkalmazások Általános Szerződési Feltételei Fejlesztők részére).

Az új ÁSZF-et itt olvashatjátok.

A legfontosabb változások röviden:

8.7 - az alkalmazásokba kötelező lesz Medián WebAudit mérőkódokat beépíteni, erre vonatkozóan egy külön részletes blogbejegyzést teszünk közzé a napokban.

17 - az alkalmazásokban megjelenő hirdetésekre csak jogi személyekkel tudunk szerződni.

Bővülő adatkör a felhasználókról, random ismerőslista, paraméterek átadása

Az elmúlt napokban több új lehetőség élesedett mind a Homokozóban, mind az éles rendszerben is elérhetően, továbbá két kisebb változás is volt a Fejlesztői Portálon. A részletek:

Bővebb adatok a felhasználókról

Az első és talán egyben a legizgalmasabb újdonság, hogy bővült a felhasználókról lekérdezhető adatok köre. Eddig a következő adatokat lehetett lekérni:

  • Felhasználó azonosítója: opensocial.Person.Field.ID
  • Felhasználó neve: opensocial.Person.Field.NAME
    • Vezetékneve: opensocial.Name.Field.FAMILY_NAME
    • Keresztneve: opensocial.Name.Field.GIVEN_NAME
    • Egyben: opensocial.Name.Field.UNSTRUCTURED
  • Felhasználó profil oldalának URL-je: opensocial.Person.Field.PROFILE_URL
  • Felhasználó 64×64-es méretű profilképének URL-je: opensocial.Person.Field.THUMBNAIL_URL
  • Felhasználónak telepítve van-e az aktuális alkalmazás: opensocial.Person.Field.HAS_APP

A kör a következő paraméterekkel bővül:

  • Felhasználó beceneve:  opensocial.Person.Field.NICKNAME
  • Felhasználó neme: opensocial.Person.Field.GENDER
  • Felhasználó helye: opensocial.Person.Field.CURRENT_LOCATION
    • Felhasználó országa: opensocial.Address.Field.COUNTRY
    • Felhasználó települése: opensocial.Address.Field.LOCALITY
  • Felhasználó időzónája: opensocial.Person.Field.TIME_ZONE
  • Felhasználó által beszélt nyelvek: opensocial.Person.Field.LANGUAGES_SPOKEN

Az adatokat külön kérni kell a szervertől, amennyiben az alkalmazásnak szüksége van azokra - alapértelmezetten nem küldjük el ezeket az információkat (kímélendő az adatbázist, illetve gyorsítva ezzel az adatlekéréseket). Az egyes mezők neve, illetve értéke az OpenSocial szabvány által definiáltakhoz igazodik. Érdemes lehet az OpenSocial Dev App segítségével átnézni a lehetőségeket, egy felhasználó adatainak lekérdezésekor ott megjelennek a bővített információk.

Íme egy példakód a fentiek használatára:

var params = {};
params[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = [opensocial.Person.Field.GENDER];
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER, params), 'viewer');
req.send(function(response){
  var gender = response.get('viewer').getData().getField(opensocial.Person.Field.GENDER).key;
  if (gender == "MALE") { alert("Hello spaceboy!"); }
  if (gender == "FEMALE") { alert("Hello spacegirl!"); }
});

Mivel a nem-et leszámítva ezeket az információkat nem kötelező megadni az iWiW-en, arra számítsatok, hogy ezen adatok nem minden felhasználónál lesznek elérhetők!

FONTOS!!! Amennyiben már jóváhagyott és élesben lévő alkalmazásod van, és szeretnéd bővíteni az alkalmazás által használt adatok körét, kérjük, hogy ezen szándékodat előzetesen mindenképp jelezd a dev kukac iwiw hu e-mail címen. Adott esetben szükséges lehet az alkalmazás adatkezelési szabályainak frissítése.

Ismerősök véletlenszerűen

Pár véletlenszerű ismerős megjelenítéséhez eddig le kellett kérdezni az összes ismerőst, majd azokból véletlenszerűen választani. Ennek kiváltására és hatékonyabbá tételére bevezettük a “random” sorrendbe rendezhetőséget, melyet a következő példakód szemléltet:

var req = opensocial.newDataRequest();
var spec = opensocial.newIdSpec({"userId": "OWNER", "groupId": "FRIENDS"});
var params = { "sortOrder": "random", "max": 3 };
req.add(req.newFetchPeopleRequest(spec, params), "friends");
req.send(function(response){
  response.get("friends").getData().each(function(person) {
    alert(person.getDisplayName());
  });
});

Kérjük alkalmazásaitokkal igazodjatok ehhez a lehetőséghez!

Paraméterek átadása az alkalmazásnak

Bár az eddigiekben is lehetőséget teremtettünk az alkalmazásnak URL-en keresztüli paraméterátadásra, az adatok nem mentek át, ha a felhasználónak nem volt feltelepítve az alkalmazás (telepítőképernyőnél elveszett), vagy ha éppen nem volt belépve (login képernyőnél elveszett) amikor a linkre kattintott. Ez javítva lett, avagy a paraméterek megmaradnak a bejelentkezés, alkalmazás telepítés során is. Példakód:

gadgets.views.requestNavigateTo(gadgets.views.getSupportedViews()["canvas"], {
foo: 'bar',
url: 'http://dev.iwiw.hu/?foo=bar'
});
var params = gadgets.views.getParams();
alert(params['foo']);

Az első kódrészlet a canvasra navigálást mutatja meg, a második pedig hogy hogyan lehet kiolvasni az átadott paramétereket. Paramétereket nem csak a requestNavigateTo segítségével történő átnavigáláskor, hanem hírfolyamban és értesítésben szereplő linkekben is át lehet adni.

Fejlesztői portál

A fejlesztői portálon is végeztünk kisebb fejlesztéseket. Az egyik változás, hogy az eddig nem túl egyértelmű “Alkalmazás frissítése” gombnak immár az elhelyezkedése és leírása is jelzi, hogy minden környezetben (Homokozó is, éles rendszer is) frissül az alkalmazás, amennyiben megnyomjátok a gombot (emiatt érdemes külön fejlesztői verziót felvenni külön az alkalmazásból).

Egy másik változás, hogy újonnan hozzáadott alkalmazás XML megadása után nem kell kattintgatni ahhoz, hogy a Homokozón megjelenjen az alkalmazás, hanem egyből elérhető, aktív lesz ebben a környezetben.