programing

Google Analytics에서 실시간 방문자 스크랩

codeshow 2023. 9. 4. 20:51
반응형

Google Analytics에서 실시간 방문자 스크랩

저는 많은 사이트를 가지고 있고 각각의 사이트의 실시간 방문자 수를 한 페이지에 보여주는 대시보드를 만들고 싶습니다.(다른 사람이 이것을 원하겠습니까?)현재 이 정보를 볼 수 있는 유일한 방법은 각 사이트에 대해 새 탭을 여는 것입니다.

구글에는 실시간 API가 없어서 이 데이터를 긁어내는 것이 가능한지 궁금합니다.Eduardo Cereto는 Google이 실시간/바인드 네트워크 요청을 통해 실시간 데이터를 전송한다는 것을 알게 되었습니다.내가 어떻게 시작해야 할지 아는 사람?제 생각은 이렇습니다.

  1. 프로그래밍 방식으로 인증하는 방법 알아보기

  2. 모든 실시간/바인딩 요청을 검사하여 변경 방법을 확인합니다.각 요청에는 고유한 키가 있습니까?그건 어디서 온 거지?아래는 저의 요청 내역입니다.

    https://www.google.com/analytics/realtime/bind?VER=8

    &key[이게 뭐죠? 어디서 왔습니까? 21자 소문자 영숫자, 각 요청은 동일하게 유지됩니다]

    &ds[이게 뭐죠? 어디서 왔습니까? 21자 소문자 영숫자, 각 요청은 동일하게 유지됩니다]

    &pageId=rt-rtpx% 개요

    &q=t%3A0%7C%3A1%3A0%3A%2Ct%3A11%7C%3A1%3A5%3A%2Cot%3A0%3A0%3A4%2Cot%3A0%3A0%3A3%2Ct%3A7%7C%3A1%3A10%3A6% 3D% 3D 기% 3B% 2C% A10%7C%3A1%3A10%3A%2Ct%3A18%7C%3A1%3A10%3A%2Ct%3A4%7C5%7C2%7C%3A1%3A10%3A2!%3Dzz%3B%2C&f

    q변수 URI가 이를 디코딩합니다(무엇이?).10:,10:10:,|:1::0:0,t:11|1:5:0:0:0:10,t:10:1,t:10:10:10:10:10:10:1,t.t.t|

    &RID=rpc

    &SID[이게 뭐죠? 그것은 어디에서 왔습니까? 16자 대문자 영숫자, 각 요청은 동일함]

    &CI=0

    &AID[이게 뭐죠? 그것은 어디에서 왔습니까? 정수, 1에서 시작하여 150으로 이상하게 증가한 다음 298]

    &TYPE=xmlhttp

    &zx[이게 뭐죠? 그것은 어디에서 왔습니까? 12자 소문자 영숫자, 각 요청 변경]

    &t=1

  3. 모든 실시간/바인드 응답을 검사하여 응답이 어떻게 변경되는지 확인합니다.데이터는 어떻게 입력됩니까?JSON이 바뀐 것 같아요.데이터를 얻으려면 몇 번이나 연결해야 합니까?그 안에 사이트 번호에 있는 방문객들은 어디에 있나요?다음은 샘플 데이터 덤프입니다.

19
[[151,["noop"]
]
]
388
[[152,["rt",[{"ot:0:0:4":{"timeUnit":"MINUTES","overTimeData":[{"values":[49,53,52,40,42,55,49,41,51,52,47,42,62,82,76,71,81,66,81,86,71,66,65,65,55,51,53,73,71,81],"name":"Total"}]},"ot:0:0:3":{"timeUnit":"SECONDS","overTimeData":[{"values":[0,1,1,1,1,0,1,0,1,1,1,0,2,0,2,2,1,0,0,0,0,0,2,1,1,2,1,2,0,5,1,0,2,1,1,1,2,0,2,1,0,5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,0,3,2,0],"name":"Total"}]}}]]]
]
388
[[153,["rt",[{"ot:0:0:4":{"timeUnit":"MINUTES","overTimeData":[{"values":[52,53,52,40,42,55,49,41,51,52,47,42,62,82,76,71,81,66,81,86,71,66,65,65,55,51,53,73,71,81],"name":"Total"}]},"ot:0:0:3":{"timeUnit":"SECONDS","overTimeData":[{"values":[2,1,1,1,1,1,0,1,0,1,1,1,0,2,0,2,2,1,0,0,0,0,0,2,1,1,2,1,2,0,5,1,0,2,1,1,1,2,0,2,1,0,5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,0,3,2],"name":"Total"}]}}]]]
]
388
[[154,["rt",[{"ot:0:0:4":{"timeUnit":"MINUTES","overTimeData":[{"values":[53,53,52,40,42,55,49,41,51,52,47,42,62,82,76,71,81,66,81,86,71,66,65,65,55,51,53,73,71,81],"name":"Total"}]},"ot:0:0:3":{"timeUnit":"SECONDS","overTimeData":[{"values":[0,3,1,1,1,1,1,0,1,0,1,1,1,0,2,0,2,2,1,0,0,0,0,0,2,1,1,2,1,2,0,5,1,0,2,1,1,1,2,0,2,1,0,5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,0,3],"name":"Total"}]}}]]]
]

위의 항목 중에 도와줄 수 있는 것이 있으면 알려주세요!

enter image description here

이를 위해 구글은 새로운 실시간 API를 출시했습니다.이 API를 사용하면 실시간 온라인 방문자뿐만 아니라 다음과 같은 차원과 측정 기준으로 여러 Google Analytics를 쉽게 검색할 수 있습니다.https://developers.google.com/analytics/devguides/reporting/realtime/dimsmets/

이는 Google Analytics API와 매우 유사합니다.에 대한 개발을 시작하려면 https://developers.google.com/analytics/devguides/reporting/realtime/v3/devguide 을 참조하십시오.

Google Chrome을 사용하면 네트워크 패널에서 데이터를 볼 수 있습니다.

은 요청끝다같다니습과입니다.https://www.google.com/analytics/realtime/bind

연결이 2.5분 동안 열려 있는 것처럼 보이며, 이 시간 동안 점점 더 많은 데이터를 얻습니다.

약 2.5분 후에 연결이 닫히고 새 연결이 열립니다.

네트워크 창에서는 종료된 연결에 대한 데이터만 볼 수 있습니다.5분 정도 열어두면 데이터를 볼 수 있습니다.

저는 그것이 당신에게 시작할 수 있는 장소를 줄 수 있기를 바랍니다.

구글을 루프에 두는 것은 꽤 불필요해 보입니다.대시보드 서버에서 요청 시 제공되는 공통 요소를 사용하고 지정된 사이트에 대해 모니터링할 모든 페이지에 이 항목을 절대 URL로 포함하는 것이 좋습니다.항목을 출력하는 스크립트는 요청하는 브라우저의 IP를 읽을 수 있으며, 이 모든 것을 데이터베이스에 로그인하고 고유성을 위해 필터링하여 실시간 헤드카운트를 제공할 수 있습니다.

<?php
$user_ip = $_SERVER["REMOTE_ADDR"];
/// Some MySQL to insert $user_ip to the database table for website XXX  goes here


$file = 'tracking_image.gif';
$type = 'image/gif';
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);
?>

암멘덤:데이터베이스는 저장하는 모든 데이터 행에 타임스탬프를 추가할 수도 있습니다.이를 사용하여 결과를 추가로 필터링하고 최근 1시간 또는 1분 동안 방문자 수를 제공할 수 있습니다.

미세 조정 또는 오버킬을 위한 AJAX를 사용하는 클라이언트 측 Javascript onblur 및 onfocus javascript 명령을 사용하여 페이지가 보이는지 여부를 알 수 있으며, Ajax를 통해 데이터를 대시보드 서버로 다시 전달할 수 있습니다.http://www.thefutureoftheweb.com/demo/2007-05-16-detect-browser-window-focus/

방문자가 페이지를 닫으면 본문 태그의 javascript on unload 기능을 통해 이를 감지할 수 있으며 브라우저가 페이지를 닫기 전에 Ajax를 사용하여 마지막으로 서버로 데이터를 다시 보낼 수 있습니다.

Google 분석과 같이 방문자에 대한 정보를 수집하고 싶을 수도 있으므로 https://panopticlick.eff.org/ 에는 검사하고 수정할 수 있는 자바스크립트가 많이 있습니다.

저는 개인적인 용도로 사용할 실시간 데이터가 필요했습니다. 그래서 그들의 시스템을 약간 리버스 엔지니어링했습니다.

에 바인딩하는 대신/bind데이터를 가져옵니다./getData(장난 의도는 없음).

에서/getData최소 요청은 다음과 같습니다.https://www.google.com/analytics/realtime/realtime/getData?pageId&key={{propertyID}}&q=t:0|:1

다음은 가능한 쿼리 매개 변수와 구문에 대한 간단한 설명입니다. 이것들은 모두 추측이며 모든 것을 알지는 못합니다.

쿼리 구문:pageId&key=propertyID&q=dataType:dimensions|:page|:limit:filters

값:

pageID: Required but seems to only be used for internal analytics.

propertyID: a{{accountID}}w{{webPropertyID}}p{{profileID}}, as specified at the Documentation link below. You can also find this in the URL of all analytics pages in the UI.


dataType:
    t: Current data
    ot: Overtime/Past
    c: Unknown, returns only a "count" value


dimensions (| separated or alone), most values are only applicable for t:
    1:  Country
    2:  City
    3:  Location code?
    4:  Latitude
    5:  Longitude
    6:  Traffic source type (Social, Referral, etc.)
    7:  Source
    8:  ?? Returns (not set)
    9:  Another location code? longer.
    10: Page URL
    11: Visitor Type (new/returning)
    12: ?? Returns (not set)
    13: ?? Returns (not set)
    14: Medium
    15: ?? Returns "1"

page:
    At first this seems to work for pagination but after further analysis it looks like it's also used to specify which of the 6 pages (Overview, Locations, Traffic Sources, Content, Events and Conversions) to return data for.

    For some reason 0 returns an impossibly high metrictotal

limit: Result limit per page, maximum of 50

filters:
    Syntax is as specified at the Documentation 2 link below except the OR is specified using | instead of a comma.6==CUSTOM;1==United%20States


여러 쿼리를 쉼표로 구분하여 하나의 요청에 결합할 수도 있습니다(예:q=t:1|2|:1|:10,t:6|:1|:10).

위의 "문서"에 따라 트래픽 소스 유형이 미국에 있는 CUSTOM인 상위 10명의 활성 방문자의 페이지 URL 및 도시를 요청하는 쿼리를 작성하려면 다음 URL을 사용합니다.https://www.google.com/analytics/realtime/realtime/getData?key={{propertyID}}&pageId&q=t:10|2|:1|:10:6==CUSTOM;1==United%20States


문서화

문서 2


저는 제 대답이 읽을 수 있고 (조금 늦었지만) 충분히 당신의 질문에 대답하고 앞으로 다른 사람들에게 도움이 되기를 바랍니다.

언급URL : https://stackoverflow.com/questions/11021554/scraping-real-time-visitors-from-google-analytics

반응형