ToneSnap_FSX_Flutter/lib/firebase/firebase_analytics_manager.dart
fengshengxiong caded892d9 1.新增瀑布流插页广告
2.新增增埋点
2024-08-14 13:56:43 +08:00

294 lines
7.2 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Author: fengshengxiong
// Date: 2024/6/26
// Description: firebase_analytics管理
import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:tone_snap/utils/log_util.dart';
import 'package:tone_snap/utils/obj_util.dart';
class FirebaseAnalyticsManager {
/// 埋点
/// name事件名
/// parameters业务参数
static void logEvent(String eventName, {Map<String, Object>? parameters}) {
try {
FirebaseAnalytics.instance.logEvent(
name: eventName,
parameters: parameters,
);
} catch (e) {
LogUtil.e(e.toString());
}
}
/// 启动页曝光
static void logLaunchPV() {
logEvent('launch_pv');
}
/// 跳转
static void logJumpEvent(String? side, String? reason) {
logEvent('jump_event',
parameters: {
'side': ObjUtil.getStr(side),
'reason': ObjUtil.getStr(reason)
},
);
}
/// A面首页曝光
static void logHomeAPV() {
logEvent('home_a_pv');
}
/// B面首页曝光
static void logHomeBPV() {
logEvent('home_b_pv');
}
/// 首页资源曝光成功
static void logHomeBModuleShowsuccesAction() {
logEvent('home_b_module_showsucces_action');
}
/// 首页资源曝光失败
static void logHomeBModuleFailAction(String? failreason) {
logEvent('home_b_module_fail_action',
parameters: {
'failreason': ObjUtil.getStr(failreason)
},
);
}
/// 点击首页模块
static void logHomeBModuleClick(String? modulename) {
logEvent('home_b_module_click',
parameters: {
'modulename': ObjUtil.getStr(modulename)
},
);
}
/// B面我的曝光
static void logMeBPV() {
logEvent('me_b_pv');
}
/// 点击歌曲
static void logSongClick(String? songfrom) {
logEvent('song_click',
parameters: {
'songfrom': ObjUtil.getStr(songfrom)
},
);
}
/// B面歌曲曝光
static void logPlayerBpv(String? videoid, String? videoname, String? artistname) {
logEvent('player_b_pv',
parameters: {
'videoid': ObjUtil.getStr(videoid),
'videoname': ObjUtil.getStr(videoname),
'artistname': ObjUtil.getStr(artistname),
},
);
}
/// 统计加载时间
static void logPlayerBDelayAction(String? videoid, String? videoname, String? artistname, String? delay) {
logEvent('player_b_delay_action',
parameters: {
'videoid': ObjUtil.getStr(videoid),
'videoname': ObjUtil.getStr(videoname),
'artistname': ObjUtil.getStr(artistname),
'delay': ObjUtil.getStr(delay),
},
);
}
/// 播放成功
static void logPlayerBSuccessAction(String? videoid, String? videoname, String? artistname) {
logEvent('player_b_success_action',
parameters: {
'videoid': ObjUtil.getStr(videoid),
'videoname': ObjUtil.getStr(videoname),
'artistname': ObjUtil.getStr(artistname),
},
);
}
/// 播放失败
static void logPlayerBFailAction(String? failreason) {
logEvent('player_b_fail_action',
parameters: {
'failreason': ObjUtil.getStr(failreason)
},
);
}
/// 收藏
static void logPlayerBLoveClick(String? videoid, String? videoname, String? artistname) {
logEvent('player_b_love_click',
parameters: {
'videoid': ObjUtil.getStr(videoid),
'videoname': ObjUtil.getStr(videoname),
'artistname': ObjUtil.getStr(artistname),
},
);
}
/// 取消收藏
static void logPlayerBUnloveClick(String? videoid, String? videoname, String? artistname) {
logEvent('player_b_unlove_click',
parameters: {
'videoid': ObjUtil.getStr(videoid),
'videoname': ObjUtil.getStr(videoname),
'artistname': ObjUtil.getStr(artistname),
},
);
}
/// 点击下载
static void logPlayerBDownloadClick(String? videoid, String? videoname, String? artistname) {
logEvent('player_b_download_click',
parameters: {
'videoid': ObjUtil.getStr(videoid),
'videoname': ObjUtil.getStr(videoname),
'artistname': ObjUtil.getStr(artistname),
},
);
}
/// 下载成功
static void logPlayerBDownloadsuccessAction(String? videoid, String? videoname, String? artistname) {
logEvent('player_b_downloadsuccess_action',
parameters: {
'videoid': ObjUtil.getStr(videoid),
'videoname': ObjUtil.getStr(videoname),
'artistname': ObjUtil.getStr(artistname),
},
);
}
/// 下载失败
static void logPlayerBDownloadfailAction(String? failreason) {
logEvent('player_b_downloadfail_action',
parameters: {
'failreason': ObjUtil.getStr(failreason)
},
);
}
/// B面搜索曝光
static void logSearchPV() {
logEvent('search_pv');
}
/// 搜索SUG曝光
static void logSearchSugShow() {
logEvent('search_sug_show');
}
/// 输入搜索内容,点击搜索(包含联想点击)
static void logSearchSugClick(String? sugname) {
logEvent('search_sug_click',
parameters: {
'sugname': ObjUtil.getStr(sugname)
},
);
}
/// 搜索结果曝光
static void logSearchResultPV() {
logEvent('search_result_pv');
}
/// 搜索有结果
static void logSearchResultsuccessAction() {
logEvent('search_resultsuccess_action');
}
/// 搜索无结果
static void logSearchResultfailAction(String? failreason) {
logEvent('search_resultfail_action',
parameters: {
'failreason': ObjUtil.getStr(failreason)
},
);
}
/// 搜索点击
static void logSearchFromAction(String? searchfrom) {
logEvent('search_from_action',
parameters: {
'searchfrom': ObjUtil.getStr(searchfrom)
},
);
}
/// 播放器弹出
static void logPlayerBImp() {
logEvent('player_b_imp');
}
/// 列表加载
static void logPlayerBList() {
logEvent('player_b_list');
}
/// 创建歌单
static void logCreateList() {
logEvent('create_list');
}
/// 曲库点击
static void logLibraryClick(String? clickfrom, String? folderclick) {
logEvent('library_click',
parameters: {
'clickfrom': ObjUtil.getStr(clickfrom),
'folderclick': ObjUtil.getStr(folderclick)
},
);
}
/// 广告展示机会
static void logPlayAdsChanceAction() {
logEvent('play_ads_chance');
}
/// 广告加载失败
static void logPlayAdsLoadFailure(String? error) {
logEvent('play_ads_loadFailure',
parameters: {
'error': ObjUtil.getStr(error),
},
);
}
/// 广告展示成功
static void logPlayAdsShowSuccess(Ad ad) {
var mediation = '';
if (ad.responseInfo != null && ad.responseInfo!.responseExtras.isNotEmpty) {
mediation = ad.responseInfo!.responseExtras['mediation_group_name'];
}
logEvent('play_ads_showSuccess',
parameters: {
'platform': ObjUtil.getStr(ad.responseInfo?.loadedAdapterResponseInfo?.adSourceName),
'source': ObjUtil.getStr(ad.responseInfo?.loadedAdapterResponseInfo?.adSourceInstanceName),
'unitName': ObjUtil.getStr(mediation),
},
);
}
/// 广告展示失败
static void logPlayAdsShowFailure(String? error) {
logEvent('play_ads_showFailure',
parameters: {
'error': ObjUtil.getStr(error),
},
);
}
}