2011-11-15 4 views
2

곧 Adobe AIR 데스크탑 응용 프로그램을 시작할 예정입니다. 향후 업데이트를 최대한 활용하려면 어떤 기능이 가장 많이 사용되고 어떤 기능이 사용되는지에 대한 분석을해야합니다.Adobe Air - Analytics

사용자가 클릭하는 것을 추적하는 방법은 무엇입니까?

답변

1

앱이 거의 완료 되었다면 AIR에 익숙해야합니다.

두 가지 방법으로 추적을 수행 할 수 있습니다 (더 많이 있어야하지만 두 가지를 강조 할 것입니다). 모두 당신이 Button 클래스를 확장하고 클릭 처리기에서 다른 일을하거나 수동으로
당신은에 clicky 같은 클릭 추적 서비스를 유지

먼저 모든 클릭 처리기 추적 할)의 코드를 추가 할 필요 귀하의 서버. 클릭 핸들러는

둘째, 분석 코드의 문서에 나와있는 코드를 호출해야
당신은 사용하는 기능을 쓰기 (또는 당신이 추적 할 어떤 다른)를 할 때마다 업로드되는 로그 파일에 인터넷 연결이 있습니다 (기본적으로 매 10 분마다 업로드하고 http 오류는 무시하십시오). 업로드 스크립트는 로그 파일을 구문 분석 한 다음 필요한 정보를 보여줍니다. 로그 파일이 지워집니다.

3

클릭 수를 기록하는 방법에 @Pranav에 동의하지만 완전히 클라이언트 측에서 추적을 구현하는 방법에 동의하지 않습니다. '버튼'클래스 확장

  • : 좋은 코딩 연습의 몇 가지 규칙을 위반하는 것입니다. 그러나 나는 추상적 인 규칙 대신에 실제적인 예를 드는 것을 선호합니다 : Buttons가 아닌 다른 것을 추적하고 싶다면? 프레임 워크의 모든 시각적 구성 요소를 확장 하시겠습니까? 클릭 수 이외의 항목을 추적하고 싶다면 어떻게해야합니까? ...
  • 모든 클릭 핸들러에 코드를 수동으로 추가하십시오. : 더 큰 응용 프로그램을 사용하는 경우 많은 작업이 필요하며 필요할 경우 리팩터링하기가 어렵습니다. 당신이 필요로하는 모든 클릭의 경우

솔루션

, 나는 그냥 무대에서 한 번의 클릭 리스너를 가질 것이다. 이렇게하면 나머지 애플리케이션과 완전히 다른 클래스에서 클릭 추적을 처리 할 수 ​​있습니다. 그리고 당신은 당신이 좋아하는 어떤 방식으로도 그것을 할 수 있습니다. 예 : 화면을 영역으로 나누고 가장 많이 클릭 된 영역을 볼 수 있습니다. stage.getObjectsUnderPoint()을 사용하여 방금 클릭 한 모든 오브젝트를 찾을 수 있습니다 (일반적으로 맨 위 오브젝트는 원하는 오브젝트이지만 모두 로그하려고 할 수 있습니다).

어느 쪽이든, 이제는 사용을 추적하는 방법에 대해 자유롭게 행동 할 수 있으며, 변경해야 할 경우 한 곳에서 코드가 모두 나타납니다.

+0

Pravan의 솔루션이 최고라고 나는 동의하지만 다음 인용문에 대해서는 궁금합니다. '버튼'클래스 확장 : 올바른 코딩 방법에 대한 몇 가지 규칙을 위반합니다. 정확히 어떤 규칙이 위반한다고 생각합니까? –

+0

@ bug-a-lot 주로 '[관심 분리] (http : //en.wikipedia.org/wiki/Separation_of_concerns) '및'[상속에 대한 선호 구성] (http://en.wikipedia.org/wiki/Composition_over_inheritance) '을 참조하십시오. 간단히 말해서 :이 새로운 TrackingButton 하위 클래스는 너무 많이 (규칙 1)을 알고 너무 구체적이어서는 안됩니다 (규칙 2). – RIAstar

+1

"상속보다 우선 적용"은이 경우에 위반되지 않습니다. 그의 새로운 버튼은 여전히 ​​버튼처럼 보이며, 클릭 할 때 추가 기능이 있음에도 불구하고 여전히 작동합니다. 이 특별한 경우 버튼을 누르고있는 다른 컴포넌트를 확장하는 것이 훨씬 더 어려울 것입니다. "관심사 분리"가 해당 문제를 해결합니다. 어떤 사람들은 벌목이 [cross-cutting concern] (http://en.wikipedia.org/wiki/Cross-cutting_concern) 경향이 있음을 알 수 있습니다. 당신의 해결책은 제 투표를 얻는 해결책입니다. –

0

명령 패턴을 사용하십시오. 롤백 이외에도 해당 명령의 인스턴스를 셀 수 있습니다.