4

Activity이 하나 있고 FragmentViewPager 인 경우.Firebase 예측이 더 정확한 예측을 할 수 있도록하기 위해 화면보기 이벤트를 보내는 방법

현재이 내 방식 내 ViewPager의 리스너에서 화면보기 모두 Google 웹 로그 분석에 대한 이벤트 및 중포 기지


public static void trackView(Activity activity, String view) { 
    trackFBView(activity, view); 
    trackGAView(view); 
} 

private static void trackFBView(Activity activity, String view) { 
    if (activity == null) { 
     return; 
    } 

    FirebaseAnalytics firebaseAnalytics = getFirebaseAnalytics(); 
    if (firebaseAnalytics == null) { 
     return; 
    } 

    firebaseAnalytics.setCurrentScreen(activity, view, null); 
} 

private static void trackGAView(String view) { 
    Tracker tracker = Utils.getTracker(); 
    if (tracker == null) { 
     return; 
    } 
    tracker.setScreenName(view); 
    tracker.send(new HitBuilders.ScreenViewBuilder().build()); 
} 

public static FirebaseAnalytics getFirebaseAnalytics() { 
    if (false == isGooglePlayServicesAvailable()) { 
     return null; 
    } 

    return FirebaseAnalytics.getInstance(JStockApplication.instance()); 
} 

을 보낼 수있다, 이것은 내가 화면보기를 전송하는 방법입니다 행사. 일부 테스트 후


private ViewPager.OnPageChangeListener getOnPageChangeListener() { 
    return new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int position) { 

      if (position == 0) { 
       Utils.trackView(DetailedStockFragmentActivity.this, "InfoFragment"); 

, 나는 내가 GA, 에 있지만 중포 기지에서 화면보기 이벤트를 받게됩니까 알고 있습니다.

나중에 firebaseAnalytics.setCurrentScreen이 실제로 Firebase에 화면보기 이벤트를 보내지 않는다는 것을 깨닫습니다. firebaseAnalytics.setCurrentScreen은 암시 적 매개 변수를 준비하기 만합니다. 그것은 다음 이벤트 동안 firebase에 대해서만 전송됩니다.

현재 조각 내에서 어떤 이벤트도 명시 적으로 실행하지 않았습니다.

Firebase가 더 나은 예측 (Firebase가 어떤 화면을 볼 때 사용자를 식별하도록 도와주세요)을 돕기 위해 다음과 같이 명시 적으로 "화면보기"이벤트를 보내야합니까?

private static void trackFBView(Activity activity, String view) { 
    if (activity == null) { 
     return; 
    } 

    FirebaseAnalytics firebaseAnalytics = getFirebaseAnalytics(); 
    if (firebaseAnalytics == null) { 
     return; 
    } 

    firebaseAnalytics.setCurrentScreen(activity, view, null); 

    // Question: Should I do this to help Firebase makes better prediction? 
    firebaseAnalytics.logEvent(view + "_ScreenView", null); 
} 

답변

4

여기에는 몇 가지 오해가 있다고 생각합니다.

이 먼저 나타났습니다로, setCurrentScreen가 자동으로 미래 이벤트에 부착 된 매개 변수을 만듭니다. 이벤트는 Firebase로 보내지고 매개 변수가 첨부 된 유일한 것입니다. 매개 변수는 이벤트와 관련해서 만 존재할 수 있습니다. '스크린 매개 변수'는 충돌보고 로그에 나타나기 때문에 일반 매개 변수보다 조금 더 특별하며 사용자를 쉽게 만들 수 있습니다. 이 answer은 제가 방금 말한 것을 요약합니다.

두 번째 오해는 Firebase 예측의 작동 방식에 대한 것입니다. 오늘의 예측은 이벤트에서만 가능합니다. 즉, 사용자 지정 예측을 만들면 매개 변수를 사용하지 않고 사용자가 작업 (이벤트)을 수행할지 여부 만 예측할 수 있습니다.

귀하의 경우, 귀하가하려는 일에 대해 더 알고 싶습니다. 사용자 참여도를 찾고 있다면 '벌떡'예측으로 이미 구워졌습니다. 분석 이벤트를 로깅해도 글로벌 "이 앱을 사용하는 사용자입니까?"아이디어를 기반으로하므로 예측에 영향을 미치지 않습니다. 이제 다른 한편으로는 사용자가 앱의 일부를 사용하고 있다면 select_stock과 같은 맞춤 이벤트를 만들고 예측을 사용하여 사용자가 주식을 볼 것인지 여부를 추측 할 수 있습니다. 예측 또는 A/B 테스트가 수행되는 특정 작업의 참여 또는 증가를 측정하는 데 사용되는 것으로 생각하고 싶습니다.

일반적으로 엄밀히 말하자면 수동 시청자 대신 액션 사용자로 앱을 붙여야합니다. 예를 들어 사용자가 주식을 선택하거나 즐겨 찾기를 공유하거나 공유하거나 검색 할 때 등의 작업을 수행 할 수 있습니다.그런 다음 예측 또는 A/B 테스트에서 변경 사항이 특정 참여자의 전반적인 참여에 어떤 영향을 미치는지 확인할 수 있습니다. "사용자가 X를 더 많이 또는 덜 사용하고 있습니까?"

TL : DR : 아니요, 로깅 이벤트는 일반적인 것이므로 "다음 7 일 이내에이 앱을 사용할 것으로 예상됩니까?"라는 이유로 churn 예측에 영향을주지 않습니다. 그러나 사용자가 특정 작업을 더 많이 수행 할 것인지 또는 더 적은 작업을 수행 할 것인지 파악한 다음 예측 또는 A/B 테스트에 사용할 이벤트를 기록 할 수 있습니다.

정보는 predefined predictions이며, 개요는 using the predictions feature이고, 이야기는 full length example of how predictions can be used입니다.

편집, 응답 코멘트 :

나는 내가 중포 기지 엔지니어 아니에요 내가 Google 직원이 당신과 함께 자신의 영업 비밀을 공유하는 의심 것을 말함으로써이 서문을하고 싶습니다, 그래서 대부분 같은데요 이리. 내가 생각할 수있는 가장 쉬운 방법 중 하나 인 체크 아웃 예제를 사용할 것입니다.

예측을 시도하고 이해하려면 먼저 약간의 기계 학습을 이해해야합니다. ML 모델은 당신이 그것에 대해 생각하면 다소 바보입니다. 단지 입력 세트를 일부 출력 숫자 (확률)에 매핑하려고하는 것입니다. 예측 (Prediction)은 이벤트 매개 변수를 허용하지 않으므로 주어진 사용자 세션 중에 발생하는 일련의 분석 이벤트에 대한 Google의 피드를 추측합니다. AFAIK, 입력이 ML 모델에 공급되는 순서는 중요하지 않으므로 이벤트가 발생하는 순서는 고려되지 않습니다 (Google은 그 주위에 방법을 알았을 것입니다).

손에있는 ML 모델에 대한 가정을 통해 우리의 계산 예제로 돌아갈 수 있습니다. 기본적으로 사용자가 실제로 방문하는 화면을 추적하여 의미없는 이벤트를 남기거나 실제로 남용하고 있다고 생각합니다. 사용자가 '장바구니', '주소 입력'및 '결제'화면을 탐색한다고 가정 해 보겠습니다. 이 경우 모델은 이러한 일련의 이벤트가 구매와 높은 상관 관계가 있음을 확인하기 위해 자체적으로 학습하게됩니다.

"글쎄, 잘됐다!" 그다지 빠르지는 않습니다. 그런 예측은 실제로 아무 것도 예측하지 않기 때문에 쓸모가 없습니다. 그것은 단지 "오 이런, 체크 아웃 화면으로 만드는 사용자는 보통 물건을 구입합니다." 나는 로깅 스크린 이벤트가 실제로 당신의 예측을 만들 것이라고 생각한다. 이 경우에는이 악화된다. 사용자가 체크 아웃 화면을 방문했지만 그때 그들이 당신에게 신용 카드 또는 무언가를 줄 때 무서워서 떠난다 고 가정 해 보자. 이 모델은 "그 사람들이 그 화면을 방문했기 때문에 완전히 물건을 사러 갈 것"이라고 생각할 것입니다. 그러나 그것은 잘못된 것입니다.

다른 한편으로는, 내가 전에 언급 한대로 액션 사용자를 로깅하는 것이 훨씬 더 유용 할 것입니다. 예를 들어 실제로 예측할 수있는보다 정확한 예측은 item_added_to_card 이벤트 수를 사용하여 학습 할 수 있습니다. 사용자가 장바구니에 추가하는 항목이 많을수록 물건을 사기가 더 커졌습니다.

다시 앱에 대해 잘 모르겠지만 클릭 이벤트를 기록하면 상세한 기사 창을 보거나 기사를 좋아하거나 공유하는 것이 단순히 기사 창을 보는 것보다 더 많은 통찰력을 제공하는 것처럼 보입니다. 그러나, 나는 당신이 어떤 종류의 사용자 행동을 하느냐에 달려 있다고 생각합니다. 물건을 구입 한 대부분의 사용자가 기사 화면에서 많은 시간을 보낸다면 네가 이벤트를 기록하는 것이 얼마나 힘든지 보지 못합니다.

필자가 직면하려는 일반적인 포인트는 예측이 사용자 참여를 측정하는 이벤트로 더 잘할 것이라고 생각한다는 것입니다.따라서 수동 시청이 가능하지만 일부 사용자가 해당 화면을 열어두기를 원한다면 기사보기는 기본 탭 일 수도 있습니다. 거의 모든 사용자가 해당 화면을 통과 할 것이므로 모델에 새로운 정보를 제공하지는 않습니다. 엄지 손가락의 규칙은 "사용자가 클릭하면 로그인하십시오." 그런 다음 기사를 클릭하여 기사를 구매할 가능성이 높은 사용자처럼 패턴을 찾을 수있는 ML 모델의 분석 이벤트를 확실히 얻을 수 있습니다.

추신 : 이런 종류의 모델을 리버스 엔지니어링하는 것은 어렵고 나는 내 가정에서 완전히 틀릴 수 있습니다.

+0

그러나 학습 목적을 위해 화면 정보를 제공하지 않고 Firebase 예측이 정확한 예측을 할 수 있다는 것은 이상합니다. 예를 들어, 실제로 'StockNewsFragment'를 보는 사용자는'StockChartFragment'를 보는 사용자보다'in_app_purchase'를 수행 할 확률이 높습니다. 정확한 화면 정보를 제공하지 않으면 사용자가'in_app_purchase'를 수행 할 가능성이 있는지 Firebase 예측이 어떻게 예측 될까요? –

+0

내 업데이트 된 답변보기, 너무 길어서 의견에 맞지 않았습니다. – SUPERCILEX

+0

Laurence는 Predictions가 TensorFlow를 사용하고 있지만 많이 설명하지 않는다는 것을 확인한 [이 기사] (https://medium.com/@lmoroney_40129/machine-learning-in-firebase-using-predictions-8a1df0c63b60)를 올렸습니다. – SUPERCILEX