日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

全埋點功能

環(huán)境準備

qt_common_sdk: ^2.1.0

|---依賴原生iOS 1.5.8.PX 版本

|---依賴原生 Android 1.6.3.PX 版本

初始化部分:

重要

要使用SDK 的全埋點功能首先得完整集成FlutterSDK 詳情參照

flutter SDK的集成教程

1. 使用全埋點

全埋點默認關(guān)閉,可通過以下方法打開:

import 'package:qt_common_sdk/qt_common_auto_track.dart';

QTAutoTrack().enable();

關(guān)閉全埋點:

import 'package:qt_common_sdk/qt_common_auto_track.dart';

QTAutoTrack().disable();

完整 Demo

import 'package:qt_common_sdk/qt_common_sdk.dart';
import 'package:qt_common_sdk/qt_common_auto_track.dart';
...

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    if (!sdkHasInit) {
      sdkHasInit = true;
      QTCommonSdk.setCustomDomain(DOMAIN, DOMAIN);
      QTCommonSdk.setLogEnabled(true);
      QTCommonSdk.initCommon(APP_KEY, APP_KEY, '配置發(fā)布渠道');
      
    }
    // 全埋點相關(guān)的依賴QTCommonSdk初始化
    QTAutoTrack()
        .config(QTAutoTrackConfig(
          pageConfigs: [
            QTAutoTrackPageConfig<AutoTrackPage>(
              pageName: 'Home',
              pagePath: '/Home',
              pageTitle: 'test Home',
            ),
            QTAutoTrackPageConfig<AutoTrackPageA>(
              pageName: 'Page2',
              pagePath: '/Page2',
              pageTitle: 'test Page2',
            ),
            QTAutoTrackPageConfig<AutoTrackPageSkip>(
              pageName: 'Page3',
              pagePath: '/Home',
              pageTitle: 'test Page3',
              skipMe: true
            )
          ],
          eventHandler: (model) => {
            // 前置回調(diào)函數(shù)
            QTTrackLogger.i("測試頁面",model)
          },
        ))
        .enable() // 開啟埋點
        .enableLog();
    
     super.initState();
  }

  ...
    @override
    Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: QTTrackNavigationObserver.wrap([]),
      initialRoute: '/',
      routes: {
        '/': ((context) => Home()),
        '/page2': ((context) => Page2()),
        '/page3': ((context) => Page3()),
      },
    );
  }
}

2. 使用頁面全埋點

2.1. 添加頁面路由監(jiān)聽

使用Flutter頁面全埋點需要手動開啟。全埋點中頁面PV事件是通過監(jiān)聽NavigatorObserver 采集的,因此想要頁面全埋點生效我們需要直接在 MaterialApp 中配置 QTTrackNavigationObserver 如下所示:

import 'package:qt_common_sdk/qt_common_auto_track.dart';

...
@override
Widget build(BuildContext context) {
  return MaterialApp(
    navigatorObservers: [QTTrackNavigationObserver()],
    ...
  );
}
...

也可以在已有的 navigatorObservers 列表中,通過 QTTrackNavigationObserver.wrap 包裹:

import 'package:qt_common_sdk/qt_common_auto_track.dart';

...
  @override
  Widget build(BuildContext context) {
  return MaterialApp(
    navigatorObservers: QTTrackNavigationObserver.wrap([]),
    ...
  );
}
...

2.2. 設(shè)置頁面自動埋點

開啟全埋點后頁面自動上報默認是開啟的,如果需要設(shè)置頁面采集相關(guān)功能,可以調(diào)用如下api:

// 啟用頁面埋點
QTAutoTrack().enablePageTrack();

/// 禁用頁面埋點
QTAutoTrack().disablePageTrack();

若只需禁止某頁面的自動采集上報的接口,您可以在pageConfigs里面配置對應(yīng)的屬性:

QTAutoTrack()
  .config(QTAutoTrackConfig(
    pageConfigs: [
      ...,
      QTAutoTrackPageConfig<AutoTrackPageSkip>(
        pageName: 'Page3', // 頁面編碼
        pagePath: '/Home', // 頁面路由對應(yīng)的路徑
        pageTitle: 'test Page3', // 頁面標題
        skipMe: true
      )
    ],
    eventHandler: (model) => {
      // 前置回調(diào)函數(shù)
      QTTrackLogger.i("測試頁面",model)
      },
  ))
  .enable() // 開啟埋點
  .enableLog();

其中

  • pageName 表示頁面編碼

  • pagePath 路由對應(yīng)的路徑

  • skipMe 為是否關(guān)閉該頁面的自動瀏覽事件采集(true表示關(guān)閉,false表示開啟)

注意:skipMe設(shè)置的優(yōu)先級低于關(guān)閉頁面瀏覽事件自動采集的總開關(guān)QTAutoTrack().disablePageTrack()

3. 使用自動點擊全埋點

重要: Android端需要開啟全埋點上報功能后事件才能正確上報集成代碼如下:

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        QtConfigure.setCustomDomain("您的收數(shù)服務(wù)域名", null);
        // 打開調(diào)試log
        QtConfigure.setLogEnabled(true);
        // 采樣率拉取依賴全埋點開關(guān)設(shè)置,如需要事件采樣率控制功能,請按需調(diào)用此API
        QtTrackAgent.setAutoEventEnabled(true);        
        //...
    }
    //... 
}

開啟全埋點后頁面自動上報默認是開啟的,如果需要設(shè)置頁面采集相關(guān)功能,可以調(diào)用如下api:

// 啟用點擊全埋點
QTAutoTrack().enableClick();

/// 禁用頁面埋點
QTAutoTrack().disableClick();

import 'package:qt_common_sdk/qt_common_auto_track.dart';

...
  @override
void initState() {
  QTAutoTrack().enable().disableClick();  // 開啟全埋點,禁用自動點擊埋點
  super.initState();
}
...

3.1. 設(shè)置 click 元素的自定義ID

我們通過 Key 來設(shè)置元素的自定義 ID,自定義 ID 在 click 埋點中會作為事件id進行上報,值是 Key 的 toString() 方法返回值,可以直接使用 QTElementKey

觸發(fā) click 埋點的元素目前支持以下組件:

  • GestureDetector

  • InkWell

  • ElevatedButton

  • ListTile

對于支持列表以外的組件,則無法通過 Key 設(shè)置自定義 ID,click 埋點會觸發(fā)在組件內(nèi)部的 GestureDetector 上。

import 'package:qt_common_sdk/qt_common_auto_track.dart';

...
ListTile(
  key: QTElementKey('custom-key'),
  title: Text("Click Me"),
  onTap: () {}
)
...

3.2. 忽略 click 元素

如果不希望統(tǒng)計某些元素的 click 埋點,可以通過以下辦法忽略 click 元素: 通過 QTElementKey 設(shè)置 skipMe

import 'package:qt_common_sdk/qt_common_auto_track.dart';

...
ListTile(
  key: QTElementKey('custom-key', skipMe: true),
  title: Text("Click Me"),
  onTap: () {},
)
...

通過 ignoreElementKeys() 方法指定元素的 key:

import 'package:qt_common_sdk/qt_common_auto_track.dart'

...
final customKey = QTElementKey('custom-key');

...
QTAutoTrack().ignoreElementKeys([customKey]);

...
ListTile(
  key: Key("custom-key"),
  title: Text("Click Me"),
  onTap: () {},
)
...

通過 ignoreElementStringKeys() 方法指定元素 key 的 string 值,只要與 key 的 toString() 返回值匹配即可生效,這里建議使用 QTElementKey

import 'package:qt_common_sdk/qt_common_auto_track.dart';

...
QTAutoTrack().ignoreElementStringKeys(['custom-key']);

...
ListTile(
  key: QTElementKey('custom-key'),
  title: Text("Click Me"),
  onTap: () {},
)
...

2.8 開啟日志

日志默認關(guān)閉,可通過以下方式開啟:

import 'package:qt_common_sdk/qt_common_auto_track.dart';

QTAutoTrack().enableLog();

3.1 配置相關(guān)(可選)

3.1 示例

  • pageConfigs:用于配置頁面的參數(shù),影響 pageview,pageleave 埋點。需要指定頁面的類型,配置只對指定頁面生效。

  • pageName:頁面的自定義 ID,對應(yīng)埋點方案中的事件編碼。

  • pageTitle:頁面的標題,如果不配置,則使用 AppBar 中指定的 title,配置后優(yōu)先使用配置的值。在

  • pagePath:頁面的路徑,如果不配置,則使用 MaterialApp 中通過 routes 配置的路徑,配置后優(yōu)先使用配置的值。在 page_end,pageleave 埋點中會放在 page_path 字段上報。z

  • skipMe:默認為 false,設(shè)置為 true 后會忽略當前頁面的 pageview,pageleave 埋點。

  • ignoreElementKeys:忽略入?yún)⒅型ㄟ^ Key 指定元素的 click 埋點。

  • ignoreElementStringKeys:忽略入?yún)⒅型ㄟ^字符串指定元素的 click 埋點,匹配方式是字符串內(nèi)容必須與元素 key 的 toString() 返回值相同。

  • enablePageTrack:默認為 true,設(shè)置為 false 后會關(guān)閉所有的 pageview 埋點。

  • enableClick:默認為 true,設(shè)置為 false 后會關(guān)閉所有的 click 埋點。

import 'package:qt_common_sdk/qt_common_auto_track.dart';


QTAutoTrack().config(QTAutoTrackConfig(
  pageConfigs: [
    QTAutoTrackPageConfig<AutoTrackPage>(
      pageName: 'Home',
      pagePath: '/Home',
      pageTitle: 'test Home',
    ),
    QTAutoTrackPageConfig<AutoTrackPageA>(
      pageName: 'Page2',
      pagePath: '/Page2',
      pageTitle: 'test Page2',
    ),
    QTAutoTrackPageConfig<AutoTrackPageSkip>(
      pageName: 'Page3',
      pagePath: '/Home',
      pageTitle: 'test Page3',
      skipMe: true
    )
  ],
  eventHandler: (model) => {
    // 前置回調(diào)函數(shù)
    QTTrackLogger.i("測試頁面",model)
  },
  ignoreElementKeys: [],
  ignoreElementStringKeys: [],
  enablePageTrack: true,
  enableClick: true,
));