فهرست منبع

[공통][New] Google Analytics - 콘텐츠: more info...

hyodong.min 6 سال پیش
والد
کامیت
e68054d7fc

+ 11 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/helper/FirebaseAnalyticsHelper.java

@@ -32,11 +32,7 @@ public class FirebaseAnalyticsHelper extends Helper {
     static final String ITEM_NAME = "item_name";
     static final String FILTER_GROUP = "filter_group";
     static final String FILTER_ITEM = "filter_item";
-
-    public static final String TYPE = "type";
-    public static final String TYPE_RECOMMEND = "추천";
-    public static final String TYPE_LIST = "목록";
-    public static final String TYPE_BANNER = "배너";
+    static final String TYPE = "type";
 
     protected Param() {
     }
@@ -152,6 +148,16 @@ public class FirebaseAnalyticsHelper extends Helper {
     logScreen(context.getString(screenStringId), itemName);
   }
 
+  /**
+   * 화면 진입 시 로그
+   *
+   * @param screenStringId
+   * @param itemNameId
+   */
+  public void logScreen(@StringRes int screenStringId, @StringRes int itemNameId) {
+    logScreen(context.getString(screenStringId), context.getString(itemNameId));
+  }
+
   /**
    * 컨텐츠 클릭 이벤트 로깅
    *

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/Presenter.java

@@ -862,7 +862,7 @@ public abstract class Presenter<M extends Model, V extends IView> implements ILi
    * @param navigationBar
    */
   public void onNavigationClickSearch(NavigationBar navigationBar) {
-    firebaseAnalyticsHelper.click(getAnalyticsScreenName(), R.string.fa_search);
+    firebaseAnalyticsHelper.click(getAnalyticsScreenName(), R.string.fa_button_search);
 
     go(ScreenID.SEARCH);
   }
@@ -873,7 +873,7 @@ public abstract class Presenter<M extends Model, V extends IView> implements ILi
    * @param navigationBar
    */
   public void onNavigationClickMenu(NavigationBar navigationBar) {
-    firebaseAnalyticsHelper.click(getAnalyticsScreenName(), R.string.fa_all_menu);
+    firebaseAnalyticsHelper.click(getAnalyticsScreenName(), R.string.fa_button_all_menu);
 
     model.setDeliveryPackaging(model.getScreenId());
     go(ScreenID.ALL_MENU);

+ 7 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/category/CategoryMainPresenter.java

@@ -1,6 +1,7 @@
 package kr.co.zumo.app.lifeplus.view.screen.category;
 
 import android.support.annotation.CallSuper;
+import android.support.annotation.StringRes;
 import android.support.v7.app.ActionBar;
 import android.util.Log;
 
@@ -12,7 +13,6 @@ import kr.co.zumo.app.lifeplus.bean.api.EventDetailBean;
 import kr.co.zumo.app.lifeplus.bean.api.FlagContentsBean;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
 import kr.co.zumo.app.lifeplus.helper.ActionBarHelper;
-import kr.co.zumo.app.lifeplus.helper.FirebaseAnalyticsHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
@@ -150,7 +150,7 @@ public abstract class CategoryMainPresenter<M extends CategoryMainModel, V exten
         flagContentsBean = model.getSelectedRecommendBean();
 
         logContents(
-          FirebaseAnalyticsHelper.Param.TYPE_RECOMMEND,
+          R.string.fa_type_recommend,
           event.getIndex(),
           flagContentsBean.getTitleWithTrim()
         );
@@ -172,10 +172,10 @@ public abstract class CategoryMainPresenter<M extends CategoryMainModel, V exten
 
         break;
       case Event.CONTENTS:
-        linkContents(FirebaseAnalyticsHelper.Param.TYPE_LIST, event.getIndex());
+        linkContents(R.string.fa_type_list, event.getIndex());
         break;
       case Event.BANNER:
-        linkContents(FirebaseAnalyticsHelper.Param.TYPE_BANNER, event.getIndex());
+        linkContents(R.string.fa_type_banner, event.getIndex());
         break;
       default:
         onCategoryEvent(event);
@@ -183,7 +183,7 @@ public abstract class CategoryMainPresenter<M extends CategoryMainModel, V exten
     }
   }
 
-  private void linkContents(String type, int index) {
+  private void linkContents(@StringRes int type, int index) {
     FlagContentsBean flagContentsBean = model.getContents().get(index);
     if (getScreenId(flagContentsBean) == ScreenID.EVENT_DETAIL) {
       gotoEvent(flagContentsBean);
@@ -197,10 +197,10 @@ public abstract class CategoryMainPresenter<M extends CategoryMainModel, V exten
     }
   }
 
-  private void logContents(String type, int index, String title) {
+  private void logContents(@StringRes int type, int index, String title) {
     firebaseAnalyticsHelper.logContents(
       R.string.fa_screen_category,
-      type,
+      ResourceUtil.getString(type),
       model.getCategoryIndex() + 1,
       getAnalyticsScreenName(),
       index + 1,

+ 24 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsBaseModel.java

@@ -7,6 +7,7 @@ import android.support.annotation.CallSuper;
 import android.util.Log;
 
 import io.reactivex.disposables.Disposable;
+import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.APIData;
 import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsBookmarkRequestBean;
@@ -303,4 +304,27 @@ public abstract class ContentsBaseModel extends CoinModel {
     });
   }
 
+  /**
+   * GA 에 이용할 콘텐츠 타입 스트링
+   *
+   * @return
+   */
+  public int getContentsTypeString() {
+    int stringRes;
+    switch (getContentsType()) {
+      case ContentsItemBean.TYPE_LISTICLE:
+        stringRes = R.string.fa_contents_listicle;
+        break;
+      case ContentsItemBean.TYPE_CARD_LISTICLE:
+        stringRes = R.string.fa_contents_card_listicle;
+        break;
+      case ContentsItemBean.TYPE_CARD:
+        /* falls through */
+      default:
+        stringRes = R.string.fa_contents_card;
+        break;
+    }
+
+    return stringRes;
+  }
 }

+ 9 - 9
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsBasePresenter.java

@@ -87,7 +87,7 @@ public abstract class ContentsBasePresenter<M extends ContentsBaseModel, V exten
 
   @Override
   protected void startInternalOnce() {
-
+    firebaseAnalyticsHelper.logScreen(R.string.fa_screen_contents, model.getContentsTypeString());
   }
 
   @Override
@@ -283,14 +283,14 @@ public abstract class ContentsBasePresenter<M extends ContentsBaseModel, V exten
 
     share = new ShareEmail(view.getActivity());
     share.shareContents(model.getShareContents(), model.getSharePageIndex(), new IShareListener() {
-        @Override
-        public void onSuccess(String result) {
-          String subject;
-          subject = ResourceUtil.getString(R.string.share_title, model.getShareContents().getTitle());
-          String url = result;
-          String contents = ResourceUtil.getString(R.string.share_current_page_contents, subject, url);
-          onCommand(new EmailSendingCommand("", subject, contents));
-        }
+      @Override
+      public void onSuccess(String result) {
+        String subject;
+        subject = ResourceUtil.getString(R.string.share_title, model.getShareContents().getTitle());
+        String url = result;
+        String contents = ResourceUtil.getString(R.string.share_current_page_contents, subject, url);
+        onCommand(new EmailSendingCommand("", subject, contents));
+      }
 
       @Override
       public void onFailure(int errorCode, String result) {

+ 36 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsPresenter.java

@@ -5,7 +5,6 @@ import android.net.Uri;
 import android.os.Handler;
 import android.support.annotation.StringRes;
 import android.util.Log;
-import android.widget.Toast;
 
 import java.util.List;
 
@@ -229,6 +228,7 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
   protected void onEventInternal(Event event) {
     switch (event.getEventId()) {
       case Event.MORE:
+        logButton(Event.MORE);
         showMoreInfoPopup(event.getIndex());
         break;
       case Event.CLICK:
@@ -527,6 +527,9 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
           @Override
           public void onDialogResult(MoreInfoDialog dialog, Event event) {
             dialogBase = null;
+
+            logButton(event.getEventId());
+
             switch (event.getEventId()) {
               case Event.CALL_INFO:
                 String phoneNumber = event.getString();
@@ -548,12 +551,9 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
               case Event.LINK:
                 /* falls through */
               case Event.HOME_PAGE:
-                shipToWeb(event.getString(), ScreenID.WEB_FROM_CONTENTS);
-                go(ScreenID.WEB_FROM_CONTENTS);
-                break;
+                /* falls through */
               case Event.ADDRESS:
                 shipToWeb(event.getString(), ScreenID.WEB_FROM_CONTENTS);
-//                go(ScreenID.MAP);
                 go(ScreenID.WEB_FROM_CONTENTS);
                 break;
               default:
@@ -577,6 +577,37 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
     }
   }
 
+  private void logButton(int eventId) {
+    int stringRes;
+    switch (eventId) {
+      case Event.CALL_INFO:
+        stringRes = R.string.fa_button_tel;
+        break;
+      case Event.FACE_BOOK:
+        stringRes = R.string.fa_button_facebook;
+        break;
+      case Event.INSTAGRAM:
+        stringRes = R.string.fa_button_instagram;
+        break;
+      case Event.LINK:
+        stringRes = R.string.fa_button_link;
+        break;
+      case Event.HOME_PAGE:
+        stringRes = R.string.fa_button_homepage;
+        break;
+      case Event.ADDRESS:
+        stringRes = R.string.fa_button_address;
+        break;
+      case Event.MORE:
+        stringRes = R.string.fa_button_more_info;
+        break;
+      default:
+        stringRes = R.string.empty_string;
+        break;
+    }
+    firebaseAnalyticsHelper.click(R.string.fa_screen_contents, stringRes);
+  }
+
   private void linkDeep(String url, String deepUrl) {
     try {
       Intent intent = new Intent(Intent.ACTION_VIEW);

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainPresenter.java

@@ -281,7 +281,7 @@ public class MainPresenter extends Presenter<MainModel, IMainView> {
           // 권한이 없을 때만 실행
           requestPermissionsAndLoadWeather();
 
-          firebaseAnalyticsHelper.click(getAnalyticsScreenName(), R.string.fa_weather);
+          firebaseAnalyticsHelper.click(getAnalyticsScreenName(), R.string.fa_button_weather);
         }
 
         break;
@@ -540,7 +540,7 @@ public class MainPresenter extends Presenter<MainModel, IMainView> {
 
   @Override
   public void onNavigationClickLogo(NavigationBar navigationBar) {
-    firebaseAnalyticsHelper.click(getAnalyticsScreenName(), R.string.fa_bi);
+    firebaseAnalyticsHelper.click(getAnalyticsScreenName(), R.string.fa_button_bi);
 
     // reload
     home();

+ 20 - 4
app/src/main/res/values/strings.xml

@@ -940,15 +940,31 @@
   <string name="fa_screen_category">카테고리</string>
   <string name="fa_screen_category_filter">카테고리필터</string>
   <string name="fa_screen_category_filter_detail">카테고리필터상세</string>
+  <string name="fa_screen_contents">콘텐츠</string>
 
   <string name="fa_category_string">Category [%d] %s</string>
   <string name="fa_contents_string">Item [%d] %s</string>
   <string name="fa_item_string">Item %s</string>
 
-  <string name="fa_bi">BI</string>
-  <string name="fa_search">검색</string>
-  <string name="fa_all_menu">전체메뉴</string>
-  <string name="fa_weather">날씨</string>
+  <string name="fa_button_bi">BI</string>
+  <string name="fa_button_search">검색</string>
+  <string name="fa_button_all_menu">전체메뉴</string>
+  <string name="fa_button_weather">날씨</string>
+  <string name="fa_button_more_info">more info</string>
+  <string name="fa_button_tel">전화</string>
+  <string name="fa_button_link">링크</string>
+  <string name="fa_button_address">지도</string>
+  <string name="fa_button_homepage">홈페이지</string>
+  <string name="fa_button_instagram">인스타그램</string>
+  <string name="fa_button_facebook">페이스북</string>
+
+  <string name="fa_type_recommend">추천</string>
+  <string name="fa_type_list">목록</string>
+  <string name="fa_type_banner">배너</string>
+
+  <string name="fa_contents_listicle">리스티클</string>
+  <string name="fa_contents_card">카드</string>
+  <string name="fa_contents_card_listicle">카드리스티클</string>
   <string name="fa_category_menu">%s - 메뉴</string>
   <string name="fa_category_filter">%s - 필터</string>