2011-03-16 3 views
3

iPhone 응용 프로그램에 google Analytics SDK를 구현하고 있습니다. 나는 다음과 같은 코드를 가지고 작업했다 :iPhone Google Analytics SDK 대리인 및 복수 계정 문제

AppDelegate .m : 

[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-xxxxxxx-1" 
             dispatchPeriod:10 
              delegate:nil]; 


if (![[GANTracker sharedTracker] trackPageview:string withError:&error]) { 

    NSLog(@"Error happened with google analytics tracking 2, %@", error); 

}else { 
    NSLog(@"OK"); 

} 

나의 분석 계정에서 나는 원하는 결과를 얻고 있었다. 그런 다음 내 추적 데이터를 두 번째 분석 계정에도 보내려고 시도하는 이유를 묻지 않았습니다. 호기심 많은 사용자의 경우 : 하나의 계정은 웹 페이지 및 iPhone 앱 통계에 사용되며 다른 계정은 iPhone에만 사용됩니다.

내 독창적 인 계획은 두 번째 위해 동일을, 1 sharedTracker을 만들 파견을, 그것을 중지해야했다 : I가 전달되고 있는지 몇 가지 단서를 얻기 위해 대리자 메서드를 추가

AppDelegate .h: 
@interface AppDelegate : NSObject <UIApplicationDelegate, GANTrackerDelegate>  

//implementation 
AppDelegate .m: 
//1st tracking account 
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-xxxxxxx-1" 
             dispatchPeriod:10 
              delegate:self]; 


if (![[GANTracker sharedTracker] trackPageview:string withError:&error]) { 

    NSLog(@"Error happened with google analytics tracking, %@", error); 

}else { 
    NSLog(@"1. GAnalytics: OK"); 

} 

[[GANTracker sharedTracker] stopTracker]; 

//2nd tracking account 
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-zzzzzzzz-1" 
             dispatchPeriod:10 
              delegate:self]; 


if (![[GANTracker sharedTracker] trackPageview:string withError:&error]) { 

    NSLog(@"Error happened with google analytics tracking, %@", error); 

}else { 
    NSLog(@"2. GAnalytics: OK"); 

} 

[[GANTracker sharedTracker] stopTracker]; 
- (void)trackerDispatchDidComplete:(GANTracker *)tracker 
       eventsDispatched:(NSUInteger)eventsDispatched 
      eventsFailedDispatch:(NSUInteger)eventsFailedDispatch{ 

NSLog(@"For the love of Got, why don't you say something?"); 
} 

하고, SDK가 두 개의 서로 다른 요청을하고 있는지 확인하려면 위임 메소드를 호출 할 수 없습니다. 두 번째 추적기의 코드가 도움이되지 않습니다 제거하거나 나는 또한 (수동 파견 호출 -1) 0 파견 기간을 퍼팅 시도하지만이 중 하나에 운 ...

그래서이 없었다, 내 질문은 : 나는이 같은 요구 사항을 정확히 시작

답변

2

파견 : 사전에

감사합니다, 루카 후 전화를받을 - 내 대리자 메서드 어떻게해야 무엇을 할 수 있도록하는 방법이 개 gAnalytics 계정 및 을 구현하는 방법 두 가지 다른 Google 분석에 페이지 뷰, 이벤트 등을 게시 할 수 있습니다. 진료소 계정. 그러나 문제는 [GANTracker sharedTracker]가 싱글 톤 객체이며 항상 객체의 인스턴스를 동일하게 또는 단일 인스턴스로 가져 오므로 실제로 sharedTracker의 인스턴스가 두 개있을 수 없다는 것입니다.

또한 콜백 메서드가 호출되는지 여부를 확인하려는 경우 [[GANTracker sharedTracker] stopTracker]를 호출하기 때문에 호출되지 않으며 이로 인해 발생하는 이벤트가 전달되지 않습니다 . 해당 행을 주석 처리하면 콜백 메소드가 호출됩니다.

Documents 아래 app 디렉토리를 보면 Google 애널리틱스는 모든 데이터를 googleanalytics.sql이라는 sqlite 데이터베이스에 저장합니다. 열어서 테이블을 볼 수 있습니다. 해당 디렉토리로 이동하여 "sqlite3 googleanalytics.sql"을 입력하고 sqlite 명령을 알고 있으면 테이블과 내용을 탐색 할 수 있습니다. 테이블 중 어느 것도 계정 ID에 대한 참조가 없으므로 내 생각에 정말 똑똑한 단점을 제외하고는 두 개의 다른 계정에 실제로 게시 할 수 없습니다.

0

구글이 SO 질문 내 대답 there를 참조 그 iOS SDK v2

에, 동일한 응용 프로그램에서 여러 추적 계정을 사용하여 지원합니다.