GA에서 android api level 당 세션 비율을 계산하는 북마크릿
18855 단어 안드로이드GoogleAnalytics
minSdkVersion
를 반올림하는 등의 경우는 실제 그 서비스에서의 버전 마다의 점유율을 보고 싶은 곳.그래서 GA에서 볼 수 있는 버전별 세션수의 비율을 계측하는 북마크릿을 만들어 보았습니다. 다음 스크립트를 북마크릿으로 등록하고
javascript:function toApiVersion(versionName) { switch (versionName) { case '2.3': case '2.3.1': case '2.3.2': return 9; case '4.0.0': case '4.0.1': case '4.0.2': return 14; case 'N': case 'NMR1': return 24; } var versionNum = parseFloat(versionName); switch (versionNum) { case 2.1: return 7; case 2.2: return 8; case 2.3: return 10; case 3.0: return 11; case 3.1: return 12; case 3.2: return 13; case 4.0: return 15; case 4.1: return 16; case 4.2: return 17; case 4.3: return 18; case 4.4: return 19; case 5.0: return 21; case 5.1: return 22; case 6.0: return 23; } return 0; } var tds = $.merge($('.ID-dimension-data10'), $('.ID-dimension-data-0')); var apiVersionMap = []; tds.each(function (_, td) { var apiVersion = toApiVersion(td.innerText); var sessions = $(td).siblings()[2].innerText; var sessionsRatio = /(\d+\.\d+)%/.exec(sessions)[1]; if (!apiVersionMap[apiVersion]) { apiVersionMap[apiVersion] = 0; } apiVersionMap[apiVersion] += +sessionsRatio; }); var acc = 0.0; for (var apiVersion = 7; apiVersion <= 24; apiVersion++) { if (apiVersionMap[apiVersion]) { acc += apiVersionMap[apiVersion]; console.log('apiVersion %d: %.02f (acc. %.02f)', apiVersion, apiVersionMap[apiVersion], acc); } }
GA 사이드 메뉴에서 Audience -> Devices and Network -> Devices를 엽니다.
게다가 Operating System -> Android 로 진행하면 버전의 내역을 볼 수 있으므로, 거기서 Show rows 를 100 정도로 해 이 북마크릿을 기동합니다.
그러면 dev console에 apiVersion 당 세션의 공유와 해당 버전까지의 누적 공유가 표시됩니다.
나의 취미의 앱이라고 예를 들면 이런 느낌이었습니다(2016/7/4 현재).
acc.
가 누계 비율(%)입니다.apiVersion 16: 0.54 (acc. 0.54)
apiVersion 17: 4.62 (acc. 5.16)
apiVersion 18: 0.88 (acc. 6.04)
apiVersion 19: 15.34 (acc. 21.38)
apiVersion 21: 39.03 (acc. 60.41)
apiVersion 22: 12.42 (acc. 72.83)
apiVersion 23: 27.17 (acc. 100)
세션 베이스이므로 실제의 단말의 상황과는 미묘하게 어긋남이 있을지도 모릅니다만,
minSdkVersion
개정의 참고가 되는 것은 아닐까요.bookmarklet의 원본 소스는 여기 :
function toApiVersion(versionName) {
switch (versionName) {
case '2.3':
case '2.3.1':
case '2.3.2':
return 9;
case '4.0.0':
case '4.0.1':
case '4.0.2':
return 14;
case 'N':
case 'NMR1':
return 24;
}
var versionNum = parseFloat(versionName);
switch (versionNum) {
case 2.1:
return 7;
case 2.2:
return 8;
case 2.3:
return 10;
case 3.0:
return 11;
case 3.1:
return 12;
case 3.2:
return 13;
case 4.0:
return 15;
case 4.1:
return 16;
case 4.2:
return 17;
case 4.3:
return 18;
case 4.4:
return 19;
case 5.0:
return 21;
case 5.1:
return 22;
case 6.0:
return 23;
}
return 0;
}
var tds = $.merge($('.ID-dimension-data10'), $('.ID-dimension-data-0'));
var apiVersionMap = [];
tds.each(function (_, td) {
var apiVersion = toApiVersion(td.innerText);
var sessions = $(td).siblings()[2].innerText;
var sessionsRatio = /(\d+\.\d+)%/.exec(sessions)[1];
if (!apiVersionMap[apiVersion]) {
apiVersionMap[apiVersion] = 0;
}
apiVersionMap[apiVersion] += +sessionsRatio;
});
var acc = 0.0;
for (var apiVersion = 7; apiVersion <= 24; apiVersion++) {
if (apiVersionMap[apiVersion]) {
acc += apiVersionMap[apiVersion];
console.log('apiVersion %d: %.02f (acc. %.02f)', apiVersion, apiVersionMap[apiVersion], acc);
}
}
또한 Chrome에서만 동작 확인하고 있습니다.
Reference
이 문제에 관하여(GA에서 android api level 당 세션 비율을 계산하는 북마크릿), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gfx/items/60597b1fab538214d8c8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)