跳转至

数据采集自定义规则

View

Activity

  • 需要 FTRUMConfig.setEnableTraceUserView(true) 开启状态
FTSdk.initRUMWithConfig(new FTRUMConfig()
    .setViewActivityTrackingHandler(new FTViewActivityTrackingHandler() {
        @Override
        public HandlerView resolveHandlerView(Activity activity) {
            String activityName = activity.getClass().getSimpleName();

            // 根据 Activity 名称自定义视图名称
            if (activityName.startsWith("Main")) {
                return new HandlerView("自定义主页面");
            } else if (activityName.startsWith("Detail")) {
                HashMap<String, Object> properties = new HashMap<>();
                properties.put("extra_key", "extra_value");
                return new HandlerView("自定义详情页面", properties);
            }

            // 返回 null 跳过跟踪
            return null;
        }
    })
);
FTSdk.initRUMWithConfig(
    FTRUMConfig()
        .setViewActivityTrackingHandler(object : FTViewActivityTrackingHandler {
            override fun resolveHandlerView(activity: Activity): HandlerView? {
                val activityName = activity.javaClass.simpleName
                return when {
                    activityName.startsWith("Main") ->
                        HandlerView("自定义主页面")
                    activityName.startsWith("Detail") -> {
                        val properties = hashMapOf<String, Any>("extra_key" to "extra_value")
                        HandlerView("自定义详情页面", properties)
                    }
                    else -> null // 跳过跟踪
                }
            }
        })
)

Fragment

  • 需要同时开启 FTRUMConfig.setEnableTraceUserView(true)FTRUMConfig.setEnableTraceUserViewInFragment(true)
FTSdk.initRUMWithConfig(new FTRUMConfig()
    .setViewFragmentTrackingHandler(new FTViewFragmentTrackingHandler() {
        @Override
        public HandlerView resolveHandlerView(FragmentWrapper fragment) {
            String fragmentName = fragment.getSimpleClassName();

            // 根据 Fragment 名称自定义视图名称
            if (fragmentName.equals("HomeFragment")) {
                return new HandlerView("自定义首页片段");
            } else if (fragmentName.startsWith("Detail")) {
                HashMap<String, Object> properties = new HashMap<>();
                properties.put("extra_key", "extra_value");
                return new HandlerView("自定义详情片段", properties);
            }

            // 返回 null 跳过跟踪
            return null;
        }
    })
);
FTSdk.initRUMWithConfig(
    FTRUMConfig()
        .setViewFragmentTrackingHandler(object : FTViewFragmentTrackingHandler {
            override fun resolveHandlerView(fragment: FragmentWrapper): HandlerView? {
                val fragmentName = fragment.simpleClassName
                return when {
                    fragmentName == "HomeFragment" ->
                        HandlerView("自定义首页片段")
                    fragmentName.startsWith("Detail") -> {
                        val properties = hashMapOf<String, Any>("extra_key" to "extra_value")
                        HandlerView("自定义详情片段", properties)
                    }
                    else -> null // 跳过跟踪
                }
            }
        })
)

Action

  • 需要 FTRUMConfig.setEnableTraceUserAction(true) 开启状态
FTSdk.initRUMWithConfig(new FTRUMConfig()
    .setActionTrackingHandler(new FTActionTrackingHandler() {
        @Override
        public HandlerAction resolveHandlerAction(ActionEventWrapper actionEventWrapper) {
            // 获取操作类型
            ActionSourceType actionType = actionEventWrapper.getSourceType();

            // 根据操作类型自定义跟踪
            if (actionType == ActionSourceType.CLICK_VIEW) {
                HashMap<String, Object> properties = new HashMap<>();
                properties.put("extra_key", "extra_value");
                return new HandlerAction("自定义按钮点击", properties);
            } else if (actionType == ActionSourceType.CLICK_LIST_ITEM) {
                return new HandlerAction("自定义列表项点击");
            }

            // 返回 null 跳过跟踪
            return null;
        }
    })
);
FTSdk.initRUMWithConfig(
    FTRUMConfig()
        .setActionTrackingHandler(object : FTActionTrackingHandler {
            override fun resolveHandlerAction(actionEventWrapper: ActionEventWrapper): HandlerAction? {
                return when (actionEventWrapper.sourceType) {
                    ActionSourceType.CLICK_VIEW -> {
                        val properties = hashMapOf<String, Any>("extra_key" to "extra_value")
                        HandlerAction("自定义按钮点击", properties)
                    }
                    ActionSourceType.CLICK_LIST_ITEM ->
                        HandlerAction("自定义列表项点击")
                    else -> null // 跳过跟踪
                }
            }
        })
)

Resource

  • 需要 FTRUMConfig.setEnableTraceUserResource(true) 开启状态
FTSdk.initRUMWithConfig(new FTRUMConfig()
    .setResourceUrlHandler(new FTInTakeUrlHandler() {
        @Override
        public boolean isInTakeUrl(String url) {
            // 返回 true 表示不采集;返回 false 表示采集
            return url.startsWith("https://url.rule");
        }
    })
);
FTSdk.initRUMWithConfig(
    FTRUMConfig()
        .setResourceUrlHandler(object : FTInTakeUrlHandler {
            override fun isInTakeUrl(url: String): Boolean {
                // 返回 true 表示不采集;返回 false 表示采集
                return url.startsWith("https://url.rule")
            }
        })
)

文档评价

文档内容是否对您有帮助? ×