TrackingContent.ets 5.58 KB
import { ParamType } from '../common/PublicParams'
import { TrackConstants } from "../common/TrackConstants"
import { TrackingUtils } from '../common/TrackingUtils'
import { Tracking } from './Tracking'
import { PointerMatrix } from '@kit.TestKit'
import { StringUtils } from 'wdKit/Index'

export class TrackingContent {

  ///  内容曝光/内容点击 事件
  /// eventType  曝光 / 点击类型
  /// pageName 如果是统一业务值 见 TrackConstants
  /// pageId
  /// extParams 模型转换成字段参数传值   转换方法见 TrackParamConvert
  static common(eventType: TrackConstants.EventType, pageId: string, pageName: string, extParams?: ParamType) {
    let params = TrackingUtils.generateParams(extParams)
    if (pageId.length) {
      params["pageId"] = pageId
    }
    if (pageName.length) {
      params["pageName"] = pageName
    }
    if (eventType === TrackConstants.EventType.Click) {

      params["action"] = TrackConstants.ActionType.DetailPageShow
      TrackingUtils.fillPositionWith(params)
      Tracking.event("content_click", params)
    } else if (eventType === TrackConstants.EventType.Show) {

      params["action"] = TrackConstants.ActionType.Show
      TrackingUtils.fillPositionWith(params)
      Tracking.event("content_exposure", params)
    }else if(eventType === TrackConstants.EventType.CurrentNumberPanelContentExposure){
      params["action"] = TrackConstants.ActionType.Show
      TrackingUtils.fillPositionWith(params)
      Tracking.event(TrackConstants.ActionType.CurrentNumberPanelContentExposure, params)
    }
  }

  static commonShare(shareType: number, pageId: string, pageName: string, extParams?: ParamType) {

  }

  static like(like: boolean, pageId: string, pageName: string, extParams?: ParamType) {
    let params = TrackingUtils.generateParams(extParams)
    if (pageId.length) {
      params["pageId"] = pageId
    }
    if (pageName.length) {
      params["pageName"] = pageName
    }
    params["action"] = like ? TrackConstants.ActionType.Like : TrackConstants.ActionType.DisLike
    TrackingUtils.fillPositionWith(params)
    Tracking.event(like ? "content_like_click" : "content_cancel_like_click", params)
  }

  static collect(collect: boolean, pageId: string, pageName: string, extParams?: ParamType) {
    let params = TrackingUtils.generateParams(extParams)
    if (pageId.length) {
      params["pageId"] = pageId
    }
    if (pageName.length) {
      params["pageName"] = pageName
    }
    params["action"] = collect ? TrackConstants.ActionType.Collect : TrackConstants.ActionType.UnCollect
    TrackingUtils.fillPositionWith(params)
    Tracking.event(collect ? "content_collection_click" : "content_cancel_collection_click", params)
  }

  static follow(follow: boolean, followUserId: string, followUserName: string, pageId: string, pageName: string, extParams?: ParamType) {
    let params = TrackingUtils.generateParams(extParams)
    if (pageId.length) {
      params["pageId"] = pageId
    }
    if (pageName.length) {
      params["pageName"] = pageName
    }
    params[follow ? "followPDUserId" : "cancelFollowPDUseId"] = followUserId
    params[follow ? "followUserName" : "cancelFollowUserName"] = followUserName

    params["action"] = follow ? TrackConstants.ActionType.Follow : TrackConstants.ActionType.UnFollow
    TrackingUtils.fillPositionWith(params)

    /// 关注号主的,特殊处理下itemId字段,不用所在内容的推荐字段
    params["itemId"] = followUserId + "_author"
    Tracking.event(follow ? "follow_click" : "cancel_follow_click", params)
  }

  static commentClick(pageId: string, pageName: string, extParams?: ParamType) {
    TrackingContent.clickWithEventAction("content_comment_click",pageId,pageName,TrackConstants.ActionType.Comment,extParams);
  }

  static clickWithEventAction(event: string,pageId: string, pageName: string,action: string, extParams?: ParamType) {
    let params = TrackingUtils.generateParams(extParams)
    if (pageId.length) {
      params["pageId"] = pageId
    }
    if (pageName.length) {
      params["pageName"] = pageName
    }
    if(!StringUtils.isEmpty(action)){
      params["action"] =action
    }
    TrackingUtils.fillPositionWith(params)
    Tracking.event(event, params)
  }

  static clickWithEvent(event: string,pageId: string, pageName: string,extParams?: ParamType) {
   TrackingContent.clickWithEventAction(event,pageId,pageName,'',extParams);
  }

  static commentShare(pageId: string, pageName: string, extParams?: ParamType) {

  }


  /**
   *  直播预约埋点
   * @param isSubscribeFlag
   * @param pageId
   * @param pageName
   * @param extParams
   */
  static subscribeClick(isSubscribeFlag:boolean ,pageId: string, pageName: string,extParams?: ParamType){
    let params = TrackingUtils.generateParams(extParams)
    if (pageId.length) {
      params["pageId"] = pageId
    }
    if (pageName.length) {
      params["pageName"] = pageName
    }

    let event = isSubscribeFlag?'live_subscribe_click':'cancel_live_subscribe_click'
    TrackingUtils.fillPositionWith(params)
    Tracking.event(event, params)
  }


  // 内容下载点击事件  1.图片   2.音频  3.视频
  static download(donwloadContentType: number, pageId: string, pageName: string, extParams?: ParamType) {
    let params = TrackingUtils.generateParams(extParams)
    if (donwloadContentType) {
      params["donwloadContentType"] = donwloadContentType
    }
    if (pageId.length) {
      params["pageId"] = pageId
    }
    if (pageName.length) {
      params["pageName"] = pageName
    }
    params["action"] =TrackConstants.ActionType.Download
    TrackingUtils.fillPositionWith(params)
    Tracking.event("download_click", params)
  }

}