Format łańcucha UserAgent dla aplikacji

Transkrypt

Format łańcucha UserAgent dla aplikacji
Format łańcucha UserAgent
na potrzeby badań firmy Gemius
str. 1
Spis treści:
Informacje ogólne ....................................................................................................................................... 3
Zawartość i struktura Pola User Agent ................................................................................................ 4
Aplikacje PC – dodatkowe uzupełnianie UA o informacje z rejestru Windows .................... 6
Rozdzielanie znakiem spacji .................................................................................................................... 6
Aplikacje mobilne - dodatkowe biblioteki ........................................................................................... 7
Pomoc techniczna ........................................................................................................................................ 7
str. 2
Informacje ogólne
UserAgent jest to nagłówek wysyłany podczas komunikacji z serwerem WWW
(następującej np. w trakcie przeglądania stron www przez internautę). Nagłówek służy
serwisom internetowym (np. aplikacji napisanej w języku PHP) do rozpoznania typu
programu
klienckiego,
jak
również
do
budowania
statystyk
odwiedzin
witryn
WWW (źródło: Wikipedia).
Po rozkodowaniu tego pola Gemius określa np. systemy operacyjne lub typy
urządzeń, z których pochodzi ruch na danym serwisie czy aplikacji, co umożliwia
późniejsze grupowanie danych wg tych wymiarów. Dlatego niezwykle ważne jest, aby
twórcy witryn i aplikacji, którzy chcą, aby ich witryna czy aplikacja była obejmowana
badaniami Gemiusa, wdrożyli poniższe zalecenia dotyczące konstrukcji pola UserAgent.
Przeglądarki internetowe
Przeglądarki internetowe nadają UserAgent samodzielnie, wg określonych reguł,
dlatego w tym wypadku nie ma potrzeby ingerowania w to przez twórców witryn.
Aplikacje
W przeciwieństwie do przeglądarek, aplikacje mogą wpływać na kształt łańcucha
UserAgent wysyłanego do serwerów firmy Gemius. Stąd potrzeba ustandaryzowania
tego wpisu w przypadku aplikacji.
Właściciele aplikacji, którzy chcą aby ich aplikacje były widoczne w badaniach
Gemius, w tym na przykład:

były objęte audytem w badaniu Gemius/PBI lub aby materiały audio lub
wideo emitowane w aplikacji mogły być prezentowane w badaniu
Gemius/PBI

były dostosowane do adserwera AdOcean

były odpowiednio klasyfikowane w badaniach gemiusTraffic i gemiusPrism
zobowiązani są do umieszczenia skryptów audytowych w aplikacji oraz zachowania
poniżej opisanego formatu łańcucha UserAgent w procesie przesyłania danych przez
skrypty (w tym skrypty audytowe). Dotyczy to zarówno przypadków, w których
wysyłanie danych do systemu firmy badawczej następuje bezpośrednio przez aplikację
(bez pośrednictwa wbudowanej do aplikacji przeglądarki www), jak i przypadków, w
str. 3
których następuje to za pośrednictwem wbudowanej do aplikacji przeglądarki www (w
tym przypadku wbudowana przeglądarka powinna przesyłać w polu User Agent
informacje określone poniżej, w tym informacje o nazwie i wersji aplikacji).
Aplikacjami (w rozumieniu tego dokumentu) nie są aplikacje, które działają w
ramach innych aplikacji lub witryn (np. działające jako dodatek w ramach komunikatora
, wtyczek i dodatków do przeglądarek, aplikacji na facebook.com itp.) ani aplety
umieszczone na stronach www. Aplety, które zostały oskryptowane np. skryptami do
pomiaru stream, powinny przesyłać taki sam, niezmodyfikowany User Agent, jaki
przesyła strona www, na której są umieszczone. Tego typu aplety powinny też przesyłać
– w przeznaczonych do tego polach - pełny url strony, na której aplet został wywołany,
wraz z refererem.
Przesłanie pola UserAgent w formacie odmiennym od opisanego w dokumencie
daje firmie badawczej podstawę np. do nieuwzględnienia danej aplikacji jako
audytowanej w wynikach badania Gemius/PBI za miesiąc, w którym rozbieżności
wystąpiły.
Zawartość i struktura Pola User Agent
Format łańcucha User-Agent jest określony w sekcji 14.43 dokumentu RFC 2616
(HTTP/1.1)
(http://tools.ietf.org/html/rfc2616#section-14.43).
Zawartość łańcucha User-Agent podzielona jest na sekcje opisujące dany produkt (np.
przeglądarka,
system
operacyjny,
urządzenie).
W
celu
zminimalizowania
prawdopodobieństwa błędnej identyfikacji, firma badawcza zaleca ustaloną, opisaną
kolejność zapisu zawartości łańcucha UserAgent. Błędna kolejność zapisu nie stanowi
podstawy do wykluczenia danej aplikacji z audytu w badaniu Gemius/PBI.
Gemius zaleca, aby zawartość i struktura UserAgent aplikacji (zarówno mobilnych, jak
i innych) była następująca:
NazwaAplikacji/wersja
gAppTag
(ModelUrządzenia;
Oznaczenie_Wersji
SystemOperacyjny) NazwaSilnika/wesja (OpcjeSilnika) EmbeddedBrowser DeviceUID
str. 4

Nazwa i wersja aplikacji (np. MojaAplikacja/5.0). Dopuszczane jest dodanie do
nazwy aplikacji jednego z trzech sufixów (końcówek) „_MOBILE”, „_TV” lub
„_PC”, poprzedzone znakiem podkreślenia „_” (np. MojaAplikacja_MOBILE/5.0,
MojaAplikacja_TV/5.0, Moja Aplikacja_PC/5.0), o ile są one zgodne z rzeczywistą
platformą, na której operuje dana aplikacja. Pozostawienie nazwy aplikacji bez
sufixu także jest prawidłowe.

gAppTag (tylko dla danych z aplikacji a nie WWW)
Ciąg znaków który ma być obowiązkowo dodawany tylko w przypadku danych z
aplikacji – służy do odróżniania ruchu z aplikacji od ruchu ze stron WWWw
przypadku ruchu ze stron WWW.

Nazwa modelu urządzenia i oznaczenia wersji (tylko w przypadku urządzeń
innych niż komputer stacjonarny lub laptop, czyli np. telefonów komórkowych,
tabletów czy telewizorów) – wg tego pola Gemius może odróżnić ruch mobilny od
niemobilnego oraz wyodrębnić grupy urządzeń (np. tablety, telewizory, itd.).
Aplikacja powinna nadawać taką nazwę, jaką nadałaby przeglądarka. Jeśli
przeglądarka zainstalowana na danym urządzeniu uzupełnia pole UserAgent o
słowo „MOBILE” to aplikacja dedykowana na to urządzenie również powinna
dodawać to słowo do UserAgenta.

Oznaczenie systemu operacyjnego (np. Windows NT 6.1, Android) – aplikacja
powinna
nadawać
taką
nazwę
systemu
operacyjnego,
jaką
nadałaby
przeglądarka np. w przypadku systemu Windows XP przeglądarka nadaje
oznaczenie Windows NT 5.1. Pełna lista oznaczeń używanych przez systemy
Windows
znajduje
się
na
stronie
http://msdn.microsoft.com/library/ms537503.aspx w sekcji: Platform Tokens.

(Opcjonalnie) Nazwa silnika, na którym oparta jest aplikacja oraz jego wersja
(tylko jeżeli aplikacja jest oparta na znanym ogólnie, a nie stworzonym autorsko,
silniku) np. (Gecko/1.0)

EmbeddedBrowser (dodawane obowiązkowo ale wyłącznie przy hitach
wysyłanych z przeglądarki wbudowanej w aplikację np. webview)
Poza dostarczaniem informacji że jest to hit z takiej przeglądarki oznaczenie
EmbeddedBrowser gwarantuje, że w aplikacji nie będą emitowane
kwestionariusze rekrutacyjne do badania podczas przeglądania stron
internetowych w aplikacji.

DeviceUID – dodawany ma być na końcu w przypadku skryptowania aplikacji
mobilnych. Ma tam być umieszczany identyfikator Advertising ID (AAID czyli
str. 5
Google’s Advertising ID) w przypadku Androida, IDFA (Identifier for
Advertising) w przypadku iOS.
Aplikacje PC – dodatkowe uzupełnianie UA o informacje z rejestru
Windows
W przypadku aplikacji działających na PC pod systemem Windows, w polu UserAgent
dodatkowo powinna być sprawdzana (regularnie, przy każdym hicie) i wysyłana (z
każdym hitem, czyli informacją wysyłaną przez skrypty audytowe do hitkollektorów
Gemius) informacja pobrana z rejestru Windows, znajdująca się pod kluczem
HKEY_CURRENT_USER\Software\NetPanel\UserAgent.

W przypadku braku tego wpisu w rejestrze nie ma potrzeby doklejania go do pola
UserAgent. Aplikacja regularnie, przy każdym hicie, powinna sprawdzać obecność
tego wpisu w rejestrze i w razie jego pojawienia się – doklejać go do pola
UserAgent.

W przypadku istnienia tego wpisu aplikacja powinna regularnie (przy wysyłaniu
każdego hitu) sprawdzać aktualną zawartość wyżej wymienionego pola rejestru i
taki aktualny stan wpisywać do pola UserAgent. W przypadku zmiany zawartości
tego pola rejestru, w polu UserAgent powinno nastąpić nadpisanie poprzedniego
wpisu nowym wpisem tak, aby nie wystąpiła sytuacja, w której w polu UserAgent
znajduje się jednocześnie kilka wpisów z rejestru, pochodzących z różnych
momentów czasowych. W polu UserAgent powinna znajdować się jedynie
aktualna zawartość wskazanego pola rejestru.
Rozdzielanie znakiem spacji
Do oddzielania poszczególnych sekcji UserAgent powinien być używany znak spacji.
Ważne jest, aby spacji nie zastępować innymi znakami, np. przecinkiem. Inne znaki
mogą współwystępować, ale spacja ma być znakiem rozdzielającym pola. Brak
rozdzielania spacjami sekcji UserAgent będzie skutkować brakiem prawidłowego
rozpoznania pól UserAgenta przez Gemius, a w konsekwencji nieprawidłową klasyfikacją
ruchu. Błędnie przekazane dane, uniemożliwiające poprawną identyfikację bez
ponoszenia przez firmę badawczą dodatkowych kosztów, stanowią podstawę do
wykluczenia danej aplikacji np. z audytu w badaniu Gemius/PBI do czasu usunięcia
błędu w aplikacji.
str. 6
Przykład pola UserAgent wysyłanego przez aplikację mobilną - pole zawiera wszystkie
z wyżej wymienionych elementów:
IPLA/1.0 (iPhone; CPU iPhone OS 4_0 like Mac OS X) AppleWebKit/532.9
(KHTML, like Gecko)
Przykład pola UserAgent wysyłanego przez aplikacje na PC:
IPLA/5.0 (Windows NT 5.1) Gecko/20100101 43E1E83A-D6D5-CA9D-0021CA187054F3B7
Aplikacje mobilne - dodatkowe biblioteki (SDK)
Dodatkowe biblioteki SDK, oferowane przez Gemius do pomiaru aplikacji mobilnych,
nadają UserAgent w postaci rozpoznawanej przez Gemius, zatem w przypadku
wykorzystania do oskryptowania aplikacji mobilnych tych bibliotek nie ma potrzeby
dodatkowej modyfikacji pola UserAgent. Przykładowe postacie userAgenta wysyłanego
przez SDK:
Na systemie Android:
GemiusSDK/1.2 (Linux; Android 5.1.1; hi6210sft Build/LMY47X)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0
Mobile Safari/537.36 DeviceUID: 42b19a5f-0f8b-47c2-b480-0d156fe334de
Na systemie iOS:
GemiusSDK/1.2.1 (iPad; CPU OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46
(KHTML, like Gecko) Mobile/13F69 DeviceUID:
C5077EDD-6021-48C6-9E0B-D31AB3DE1D66
Pomoc techniczna
W przypadku wątpliwości lub w celu weryfikacji, czy ustawiony UA jest poprawnie
rozpoznawany,
można
skontaktować
się
z
Działem
Wsparcia
Technicznego
([email protected]), który przeprowadzi analizę UA i sposobu jego klasyfikacji. W
przypadku błędnego rozpoznania, osoba odpowiedzialna dokona odpowiednich zmian w
str. 7
systemie rozpoznawania bądź przekaże sugestię, które elementy UA powinny zostać
zmienione.
Podsumowanie
Gemius zaleca zastosowanie opisanej wyżej zawartości i struktury pola UserAgent, co
umożliwi prawidłowe rozpoznawanie źródła ruchu i przypisywanie go do odpowiednich
kategorii w badaniach firmy Gemius (np. jako ruch z urządzeń mobilnych). Błędnie
przekazane
dane
uniemożliwiają
poprawną
identyfikację
i
stanowią
do wykluczenia danej aplikacji np. z audytu w badaniu Gemius/PBI.
str. 8
podstawę

Podobne dokumenty