PetChat Source Map

PetChat 功能、SDK、参数下发与埋点总览

以下内容只读取 /Users/xiaomao822/Desktop/git/petchat/PetChat 的代码和文档,并展示在当前官网项目中。

11

功能分支

40

SDK/能力集成

223

埋点事件

43

下发参数

PetChat Branch

dev_1.1.8

Commit

1d0128b

Last PetChat Change

feat:订阅页D的开发

2026-09-15 18:28:14 +0800

Current layer

PetChat 功能总览

11 个下层节点

由同步脚本扫描 PetChat/Module 下的业务目录、源码文件和主要类名生成。

来源:PetChat/Module

Current layer

三方 SDK 与触发点

6 个下层节点

由 Podfile 和源码 import/调用点扫描生成。

来源:Podfile, PetChat/Common, PetChat/Module

Remote Config

参数下发默认值、功能与触发位置

基于 `PCRemoteConfigKeys`、`PCAppRemoteConfig` 和实际业务调用点整理,覆盖 Firebase Remote Config 与友盟 RemoteConfig 的统一读取层。

参数 Key模块默认值对应功能触发代码位置解析位置
Demo_Key公共能力false / defaultPetTalkTrialConfig.freeTrialCountDemo Key:用于验证“参数下发 + 解析层”链路是否打通。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:925
pet_magic_free_trial_count公共能力1Pet Magic:免费试用次数(默认 1)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1053, PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1075
pet_talk_free_trial_count公共能力false / defaultPetTalkTrialConfig.freeTrialCountPet Talk:免费试用配置。 兼容两种下发方式: 1)旧版直接下发整数字符串; 2)1.0.9 起下发 JSON(内含 `free_trial_count` / `emotion_free_trial_count`)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:936
emotion_free_trial_count公共能力false / defaultPetTalkTrialConfig.freeTrialCountPet Talk:情绪翻译免费次数(兼容独立 key 的兜底读取)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:947, PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:966
pet_talk_guide_config公共能力0Pet Talk:首页引导开关(默认 0)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:984
local_audio_detection_enabled公共能力falsePet Talk:客户端本地音频静音检测开关(默认 false)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:990
pettalk_memories_enable公共能力truePet Talk:回忆模块展示开关(默认 true)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:996
translation_complete_popup公共能力关闭Pet Talk:翻译完成订阅弹窗配置(默认关闭)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1002, PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1009
selected_offer公共能力商品兜底Pet Talk:翻译完成订阅弹窗默认商品兜底。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1004, PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1013
pet_magic_subscribe_mode公共能力0Pet Magic:订阅模式(默认 0,可直接下发 0/1,也可下发 1.0.9 打包 JSON)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1040, PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1046
high_quality公共能力defaultPetMagicConfig.subscribeMode / defaultPetMagicConfig.freeTrialCountPet Magic:高清保存次数/开关(1.0.9 业务配置)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1060, PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1082
pet_sounds_free_trial_count公共能力5Pet Sounds:免费试用次数(默认 5)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1091
pet_sounds_subscribe_mode公共能力0Pet Sounds:订阅模式(默认 0)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1097
Pet_sounds_rating_guide公共能力4Pet Sounds:播放完成第几次后触发评分引导(默认 4)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1103
pet_game_free_game_list公共能力defaultPetMagicConfig.highQualityCount / 5Pet Game:免费用户可进入的游戏 ID 列表。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1109
pet_game_free_play_times_per_day公共能力5 / 0Pet Game:免费用户每日可正式开始游戏的次数。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1114
rating_prompt_type公共能力defaultPetGameConfig.freeGameList / defaultPetGameConfig.freePlayTimesPerDay评分引导样式:`system` 为系统评分弹窗,`custom` 为自定义评分弹窗。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1140
petthought_free_trial_count公共能力3Pet Thoughts:免费试用次数(默认 3)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1152
pet_thought_free_trial_count公共能力defaultPetGameConfig.freePlayTimesPerDay / return "system"Pet Thoughts:免费试用次数旧版 key 兼容。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1153
petthought_default_free_style公共能力免费风格(默认Pet Thoughts:非订阅用户默认免费风格(默认 real_insight)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1161
petthought_share_qr_url公共能力return "system" / 3Pet Thoughts:分享图二维码落地页 URL(支持 `{style_name}` 占位符)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1169
ai_vet_free_trial_count公共能力1AI Health Assistant:免费试用次数(默认 1)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1192
subscribe_page_type公共能力0订阅页类型(默认 0)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1198
sub_offer_popup公共能力见解析代码首次进入订阅页的优惠弹窗配置(V1.1.7)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1587
Promote_Sub_Group公共能力见解析代码买量用户订阅分组配置(JSON 数组字符串)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1270
Organic_Sub_Group公共能力见解析代码自然用户订阅分组配置(JSON 数组字符串)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1278
Sub_PageD_Group公共能力见解析代码D 版订阅页展示配置(商品位数量、折算价格单位与节省率口径)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1285
Grouping公共能力1 / 0独立 Grouping 分组事件参数。 - Note: 运营配置 value(如 `A`)后,客户端需上报 `Grouping_A`。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1207
Grouping_X公共能力1 / 0Grouping 参数兼容命名。 - Note: 部分文档以 `Grouping_X` 描述该参数,这里兼容一次旧命名读取。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1213
Main_Page_Show公共能力1 / 0首页首次展示目标页配置。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1220
store_entry_config公共能力0商城入口配置(JSON 对象字符串)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1228
store_products_config公共能力见解析代码商城商品列表配置(JSON 对象字符串)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1236
boarding_enabled公共能力true引导页总开关:首次启动是否展示 `PCGuideVC`。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1390
boarding_first公共能力true旧版引导页第 1 页是否展示。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1396
boarding_second公共能力true旧版引导页第 2 页是否展示。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1402
boarding_third公共能力true旧版引导页第 3 页是否展示。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1408
boarding_page_show启动true1.0.9 新版引导页顺序配置(JSON 数组字符串)。PetChat/Module/Launch/PCLaunchVC.swift:460PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1414
Iap_pop_open公共能力defaultIapPopOpenConfig.isEnabled / defaultIapPopOpenConfig.openTime强拉支付配置主 key。 兼容两种下发方式: 1)直接下发 `0/1`; 2)下发 JSON(内含 `Iap_pop_open` / `IAP_Pop_Open_Time` / `Force_Offer_ID`)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1462
IAP_Pop_Open公共能力defaultIapPopOpenConfig.isEnabled / defaultIapPopOpenConfig.openTime远端配置 IAP_Pop_Open,由 PCRemoteConfigKeys.iapPopOpenUpper 声明。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1463
iap_pop_open公共能力defaultIapPopOpenConfig.isEnabled / defaultIapPopOpenConfig.openTime远端配置 iap_pop_open,由 PCRemoteConfigKeys.iapPopOpenLower 声明。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1464
IAP_Pop_Open_Time公共能力defaultIapPopOpenConfig.isEnabled / defaultIapPopOpenConfig.openTime强拉支付时机(兼容独立 key 兜底)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1467
iap_pop_open_time公共能力defaultIapPopOpenConfig.isEnabled / defaultIapPopOpenConfig.openTime远端配置 iap_pop_open_time,由 PCRemoteConfigKeys.iapPopOpenTimeLower 声明。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1468
Force_Offer_ID公共能力defaultIapPopOpenConfig.isEnabled / defaultIapPopOpenConfig.openTime强拉支付商品 ID(兼容独立 key 兜底)。未扫描到业务触发点PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1481, PetChat/Common/Managers/RemoteConfig/PCAppRemoteConfig.swift:1496

Analytics

埋点触发逻辑与代码位置

基于 `PCReport.report` 扫描和 PetChat 埋点实现清单整理,包含 Thinking/Firebase 与 Adjust 两类上报目标。

事件 ID模块触发逻辑位置参数目标
animation_timeout订阅tExposure < 24 * 60 * 60 } /// 上报订阅优惠弹窗动画加载失败。 /// /// - Parameter reason: 失败原因,字段值与飞书埋点表保持一致。 func reportSubOfferPopupAnimationT…PetChat/Module/VIP/VC/PCVIPBaseVC.swift:2024failReasonThinking/Firebase
Restore_Click订阅erProperties ) } /// 恢复购买。 func restoreVIP(placement: String? = nil) { markPaywallUserInteractionForAnalytics() guard beginPurcha…PetChat/Module/VIP/VC/PCVIPBaseVC.swift:644-Thinking/Firebase
Restore_Fail订阅eport.report(withEvent: Event(type: .other, key: PCAdjustEventID.restoreSuccess.rawValue)) PCToastTool.show(PCLocal(str: "vip.res…PetChat/Module/VIP/VC/PCVIPAViewController.swift:395, PetChat/Module/VIP/VC/PCVIPBViewController.swift:391, PetChat/Module/VIP/VC/PCVIPCViewController.swift:396, PetChat/Module/VIP/VC/PCVIPCustomViewController.swift:533-Thinking/Firebase
Restore_Success订阅geWithFailureToastIfNeeded() { return } PCToastTool.showError(message) } } override func vipDidCompleteRestore(success: Bool, mes…PetChat/Module/VIP/VC/PCVIPAViewController.swift:390, PetChat/Module/VIP/VC/PCVIPBViewController.swift:386, PetChat/Module/VIP/VC/PCVIPCViewController.swift:391, PetChat/Module/VIP/VC/PCVIPCustomViewController.swift:528-Thinking/Firebase
Sub_Agree_Close订阅ewControlellerDidFinidsh(self, agree: true) } } @objc private func close() { dismissAnimation { [weak self] in guard let `self` =…PetChat/Module/VIP/VC/PCAgreementPopupViewController.swift:201, PetChat/Module/VIP/VC/PCVIPCustomViewController.swift:409-Thinking/Firebase
Sub_Agree_Show订阅et productID = selectedProductID { reportSubClickForContinueButton(productID: productID) } if let agree = agreementView { if agre…PetChat/Module/VIP/VC/PCVIPCustomViewController.swift:327, PetChat/Module/VIP/VC/PCVIPCustomViewController.swift:384-Thinking/Firebase
Sub_Agree_Success订阅URL(string: ConstantURL.loadMemberURL())!) } } @objc private func buttonClick() { dismissAnimation { [weak self] in guard let `se…PetChat/Module/VIP/VC/PCAgreementPopupViewController.swift:192, PetChat/Module/VIP/VC/PCVIPCustomViewController.swift:333, PetChat/Module/VIP/VC/PCVIPCustomViewController.swift:390-Thinking/Firebase
Sub_Close订阅appendPetTalkAnalyticsParamsIfNeeded(context: context, to: &param) appendSubOfferPopupAnalyticsParamsIfNeeded(to: &param) param.m…PetChat/Module/VIP/VC/PCVIPBaseVC.swift:2235-Thinking/Firebase
Sub_Show订阅o: &param) appendPetTalkAnalyticsParamsIfNeeded(context: context, to: &param) appendSubOfferPopupAnalyticsParamsIfNeeded(to: &par…PetChat/Module/VIP/VC/PCVIPBaseVC.swift:2497, PetChat/Module/VIP/VC/PCVIPBaseVC.swift:534-Thinking/Firebase + Adjust
Sub_Success订阅appendPetTalkAnalyticsParamsIfNeeded(context: context, to: &param) appendSubOfferPopupAnalyticsParamsIfNeeded(to: &param) param.m…PetChat/Module/VIP/VC/PCVIPBaseVC.swift:2276-Thinking/Firebase
AI_Health_Assistant_Consult_Click公共能力/// 上报症状填写页开始咨询点击。 static func reportConsult(draft: PCPetHealthDraft) { let description = draft.symptomDescription.trimmingCharac…PetChat/Module/PetCare/Model/PCPetHealthAssistantModels.swift:188bodyPart, issueTags, descriptionLengthThinking/Firebase
AI_Health_Assistant_Entry_Click公共能力ic let petCarePage = "petcare_page" static let careTopicSearch = "care_topic_search" } /// 上报 AI 健康助手入口点击。 static func reportEntr…PetChat/Module/PetCare/Model/PCPetHealthAssistantModels.swift:163entrySourceThinking/Firebase
AI_Health_Assistant_Info_Next_Click公共能力lue, param: [PCAdjustEventParamKey.entrySource.rawValue: source] )) } /// 上报宠物信息页下一步点击。 static func reportInfoNext(draft: PCPetHe…PetChat/Module/PetCare/Model/PCPetHealthAssistantModels.swift:172entrySourceThinking/Firebase
AI_Health_Assistant_Load_Fail公共能力awValue: draft.issueKeys.joined(separator: ",") ] )) } /// 上报 AI 健康助手加载失败。 static func reportLoadFail(elapsedSeconds: Int, reason…PetChat/Module/PetCare/Model/PCPetHealthAssistantModels.swift:229timeLower, failReasonThinking/Firebase
AI_Health_Assistant_Load_Success公共能力ssistantStartLoad.rawValue, param: [:] )) } /// 上报 AI 健康助手加载成功。 static func reportLoadSuccess(draft: PCPetHealthDraft, elapsedSec…PetChat/Module/PetCare/Model/PCPetHealthAssistantModels.swift:216-Thinking/Firebase
AI_Health_Assistant_Start_Load公共能力ng { guard let key else { return "" } return key == "unvaccinated" ? "not_vaccinated" : key } /// 上报 AI 健康助手开始加载。 static func rep…PetChat/Module/PetCare/Model/PCPetHealthAssistantModels.swift:207-Thinking/Firebase
Article_Click公共能力/// 上报文章点击。 static func reportArticleClick(article: PCPetCareArticle, source: String) { var param = articleParams(article) param[…PetChat/Module/PetCare/Model/PCPetCareModels.swift:285-Thinking/Firebase
Article_Collect公共能力PCReport.report(withEvent: Event(type: .other, key: PCAdjustEventID.articleShow.rawValue, param: param)) } /// 上报文章收藏操作。 static f…PetChat/Module/PetCare/Model/PCPetCareModels.swift:297-Thinking/Firebase
Article_Show公共能力/// 上报文章展示。 static func reportArticleShow(article: PCPetCareArticle, source: String) { var param = articleParams(article) param[P…PetChat/Module/PetCare/Model/PCPetCareModels.swift:292-Thinking/Firebase
ATT_Reject公共能力e: .adjust, token: "bn92oo", key: "ATT_Success")) PCReport.report(withEvent: Event(type: .other, key: "ATT_Success")) } else { PC…PetChat/Common/Tool/PCFileTool.swift:223-Thinking/Firebase
ATT_Show公共能力return } hasRequestedTrackingPermission = true let status = ATTrackingManager.trackingAuthorizationStatus switch status { case .n…PetChat/Common/Tool/PCFileTool.swift:214-Adjust
ATT_Success公共能力tatus NotificationCenter.default.post(name: .pcTrackingAuthorizationDidChange, object: nil) if status == .authorized { PCReport.r…PetChat/Common/Tool/PCFileTool.swift:220, PetChat/Common/Tool/PCFileTool.swift:221-Adjust
Care_Topic_Tab_Click公共能力e.rawValue: isEnabled ? ActionType.on : ActionType.off ])) } /// 上报 Pet Care 专题分类点击。 static func reportCareTopicTabClick(petType:…PetChat/Module/PetCare/Model/PCPetCareModels.swift:275petType, categoryThinking/Firebase
custom_Prompt_Finish公共能力type: .other, key: AnalyticsEvent.submit, param: [ "Source": result.source.rawValue, "Feedback": String(feedback.prefix(256)), "L…PetChat/Common/Managers/PCFeedbackManager/PCFeedbackManager.swift:142, PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:323Source, Feedback, LengthThinking/Firebase
custom_Prompt_Finish公共能力type: .other, key: AnalyticsEvent.submit, param: [ "Source": result.source.rawValue, "Feedback": String(feedback.prefix(256)), "L…PetChat/Common/Managers/PCFeedbackManager/PCFeedbackManager.swift:142, PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:323Source, Feedback, LengthThinking/Firebase
Daily_Tip_Action公共能力Id.rawValue: tip.tipId, PCAdjustEventParamKey.source.rawValue: source ])) } /// 上报每日小贴士弹窗操作。 static func reportDailyTipAction(tip…PetChat/Module/PetCare/Model/PCPetCareModels.swift:260actionType, tipIdThinking/Firebase
Daily_Tip_Reminder_Set公共能力Key.actionType.rawValue: actionType, PCAdjustEventParamKey.tipId.rawValue: tip.tipId ])) } /// 上报每日小贴士提醒开关操作。 static func reportD…PetChat/Module/PetCare/Model/PCPetCareModels.swift:268actionTypeThinking/Firebase
Daily_Tip_Show公共能力ect" static let close = "close" static let on = "on" static let off = "off" } /// 上报每日小贴士弹窗展示。 static func reportDailyTipShow(tip…PetChat/Module/PetCare/Model/PCPetCareModels.swift:251petType, tipId, sourceThinking/Firebase
Feedback_Close公共能力PCReport.report(withEvent: Event(type: .other, key: AnalyticsEvent.show, param: [ "Source": source.rawValue ])) } func reportFeed…PetChat/Common/Managers/PCFeedbackManager/PCFeedbackManager.swift:130, PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:307SourceThinking/Firebase
Feedback_Show公共能力feedbackView = nil view.dismiss(animated: animated) { view.removeFromSuperview() completion?() } } func reportFeedbackShow(source…PetChat/Common/Managers/PCFeedbackManager/PCFeedbackManager.swift:124, PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:297SourceThinking/Firebase
Feedback_Submit公共能力"Source": source.rawValue ])) } func reportFeedbackSubmit(result: PCFeedbackResult) { let feedback = result.content.trimmingChara…PetChat/Common/Managers/PCFeedbackManager/PCFeedbackManager.swift:137, PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:322Source, Feedback, LengthThinking/Firebase
Main_Page_Show公共能力else { return } appDelegate.window?.backgroundColor = .color_bg appDelegate.window?.rootViewController = PCTabBarController() app…PetChat/Base/PCRouter.swift:28CountryThinking/Firebase
My_Library_Show公共能力PCReport.report(withEvent: Event(type: .other, key: PCAdjustEventID.articleCollect.rawValue, param: articleParams(article))) } //…PetChat/Module/PetCare/Model/PCPetCareModels.swift:302-Thinking/Firebase
Pet_Magic_Finish_Page_Show公共能力"" ) { basePayload in var successPayload = basePayload successPayload[PCAdjustEventParamKey.time.rawValue] = elapsedTime Dispatch…PetChat/Common/Managers/ProgressManager/PCProgressManager.swift:380-Thinking/Firebase
Pet_Magic_Load_Again公共能力ad_Again`。 func reportPetMagicLoadAgainIfNeeded(using template: TemItemInfo?) { guard let template, PCTempManager.consumePetMagic…PetChat/Common/Managers/PCPhotoPickManager/View/PCPhotoPickerImageView.swift:407, PetChat/Module/PetMagic/PCPetMagicDetailVC.swift:927-Thinking/Firebase
Pet_Magic_Load_Fail公共能力dataModel.dataModel) payload[PCAdjustEventParamKey.time.rawValue] = elapsedTime payload[PCAdjustEventParamKey.reason.rawValue] = …PetChat/Common/Managers/PCPhotoPickManager/View/PCPhotoPickerImageView.swift:304, PetChat/Common/Managers/ProgressManager/PCProgressManager.swift:358, PetChat/Common/Managers/ProgressManager/PCProgressManager.swift:538-Thinking/Firebase
Pet_Magic_Load_Success公共能力= elapsedTime DispatchQueue.main.async { PCReport.report(withEvent: Event(type: .other, key: PCAdjustEventID.petMagicFinishPageSh…PetChat/Common/Managers/ProgressManager/PCProgressManager.swift:381-Thinking/Firebase
Pet_Magic_Select_Free_Photo公共能力Sample) } /// 上报 PetMagic 常驻 Free 示例图被选择的埋点。 func reportPetMagicFreeExampleSelected(template: TemItemInfo?) { guard showsFreeSamp…PetChat/Common/Managers/PCPhotoPickManager/ViewModel/PCPhotoSelectVM.swift:516-Thinking/Firebase
Pet_Magic_Start_Load公共能力mplate))) } /// 在真实发起 Pet Magic 任务创建前上报 `Pet_Magic_Start_Load`,避免免费次数不足的订阅拦截误报。 func reportPetMagicStartLoad(using template: TemI…PetChat/Common/Managers/PCPhotoPickManager/View/PCPhotoPickerImageView.swift:413-Thinking/Firebase
petchat.rating.dismissed.at公共能力已定义,未扫描到触发调用。PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:1-Thinking/Firebase
petchat.rating.pet_sounds.completed.count公共能力已定义,未扫描到触发调用。PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:1-Thinking/Firebase
petchat.rating.presentation.timestamps公共能力已定义,未扫描到触发调用。PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:1-Thinking/Firebase
petchat.rating.translation.guide.shown公共能力已定义,未扫描到触发调用。PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:1-Thinking/Firebase
Rating_Guide_Close公共能力PCReport.report(withEvent: Event(type: .other, key: AnalyticsEvent.show, param: [ "Source": source.rawValue ])) } func reportFeed…PetChat/Common/Managers/PCFeedbackManager/PCFeedbackManager.swift:130, PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:307SourceThinking/Firebase
Rating_Guide_Show公共能力feedbackView = nil view.dismiss(animated: animated) { view.removeFromSuperview() completion?() } } func reportFeedbackShow(source…PetChat/Common/Managers/PCFeedbackManager/PCFeedbackManager.swift:124, PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:297SourceThinking/Firebase
Rating_Guide_Submit公共能力"Source": source.rawValue ])) } func reportFeedbackSubmit(result: PCFeedbackResult) { let feedback = result.content.trimmingChara…PetChat/Common/Managers/PCFeedbackManager/PCFeedbackManager.swift:137, PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:322Source, Feedback, LengthThinking/Firebase
Rating_Prompt_Show公共能力romptType: String) { PCReport.report(withEvent: Event(type: .other, key: AnalyticsEvent.show, param: [ "Source": source.rawValue,…PetChat/Common/Managers/PCRatingManager/PCRatingManager.swift:301Source, Prompt_TypeThinking/Firebase
Store_Entry_Click公共能力s(string: rawURL.trimmingCharacters(in: .whitespacesAndNewlines))?.host?.lowercased() ?? "" } /// 上报商城入口点击。 private func reportSt…PetChat/Common/Managers/StoreEntry/PCStoreEntryManager.swift:250entryIDThinking/Firebase
Store_External_Jump_Result公共能力ate func reportStoreExternalJumpResult( entryID: String, productID: String, domain: String, result: String, failReason: String ) …PetChat/Common/Managers/StoreEntry/PCStoreEntryManager.swift:302entryID, productID, jumpURLDomain, result, failReasonThinking/Firebase
Store_Product_Click公共能力n ] )) } /// 上报商城商品点击。 private func reportStoreProductClick(_ item: PCStoreProductItem, displayIndex: Int, entryID: String, domai…PetChat/Common/Managers/StoreEntry/PCStoreEntryManager.swift:280entryID, productID, productName, productIndex, priceText, jumpURLDomainThinking/Firebase
Store_Product_List_Load_Fail公共能力[PCAdjustEventParamKey.entryID.rawValue: entryID] )) } /// 上报商城商品列表页无法展示。 private func reportStoreProductListLoadFail(entryID: St…PetChat/Common/Managers/StoreEntry/PCStoreEntryManager.swift:268entryID, failReasonThinking/Firebase
Store_Product_List_Show公共能力, param: [PCAdjustEventParamKey.entryID.rawValue: entryID] )) } /// 上报商城商品列表页展示成功。 private func reportStoreProductListShow(entryI…PetChat/Common/Managers/StoreEntry/PCStoreEntryManager.swift:259entryIDThinking/Firebase
Adjust_Check_Start归因Finished: @escaping (PCAttributionInitialWindowResult) -> Void, onResolved: ((PCAttributionResolution) -> Void)? = nil ) { attrib…PetChat/Common/Managers/AdjustManager/AdjustManager.swift:491-Thinking/Firebase
Adjust_Get_Promote归因passTime: Int? = nil) { guard attribution.isPaidUser else { return } guard !UserDefaults.standard.bool(forKey: StorageKey.promote…PetChat/Common/Managers/AdjustManager/AdjustManager.swift:1074-Thinking/Firebase
Adjust_Get_Promote_Final归因eFinalReported) else { return } var params = promoteParams(from: attribution) params[PCAdjustEventParamKey.form.rawValue] = final…PetChat/Common/Managers/AdjustManager/AdjustManager.swift:1100-Thinking/Firebase
Adjust_Get_Promote_Server归因tServerAttribution) { guard attribution.isPaidUser else { return } guard !UserDefaults.standard.bool(forKey: StorageKey.promoteSe…PetChat/Common/Managers/AdjustManager/AdjustManager.swift:1086-Thinking/Firebase
Adjust_Get_Success归因ypeNames.contains(eventName) == false if shouldReportType { reportedSDKAttributionTypeNames.insert(eventName) } } if shouldReport…PetChat/Common/Managers/AdjustManager/AdjustManager.swift:1131passTime, adNetwork, campaignThinking/Firebase
Adjust_Init归因se) } } func registerSDK() { if register { return } register = true configOECallBackParam() Adjust.initSdk(adjustConfig) PCReport…PetChat/Common/Managers/AdjustManager/AdjustManager.swift:454-Thinking/Firebase
action埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
action_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
ad_network埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
adgroup_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
audio_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
audio_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
body_part埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
campaign埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
campaign_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
category埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Country埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
creative_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Currency埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
date埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
description_des埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
device_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
discount_id埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
discount_text埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Domain埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
domain_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
duration埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
emotion埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
emotion_list埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
entry_id埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
entry_source埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
fail_reason埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
feedback_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Form埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
free_times_left埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
game_id埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
IAP埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
ID埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
input_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
is_favorite埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
issue_tags埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
jump_url_domain埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
lock_status埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
media_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
mode埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
network_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
number埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
order_id埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
page_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
page_name1埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
pass_time埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
pet_age_month埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
pet_age_year埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Pet_Magic_Select_Saved_Photo埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Pet_Num埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Pet_Talk_Video_Load_Fail埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Pet_Talk_Video_Load_Success埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Pet_Talk_Video_Select_Fail埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Pet_Talk_Video_Select_Success埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Pet_Talk_Video_Start_Load埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Pet_Talk_Video_Upload_Click埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
pet_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
pet_weight埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
play_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
popup_type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Price埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
price_text埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
product_id埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
product_index埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
product_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
qr_url埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Reason埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Request_Domain埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Resource_Cover_URL埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
resource_id埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Resource_Name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Resource_URL埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
result埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Retry_Count埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
score埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
sound_status埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
sounds_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
source埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Source埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
speed埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
style_name埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Sub_Agree_Rejct埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
sub_page埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
sub_success_order_report埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
sub_success_order_report_fail埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
sub_success_order_report_success埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
target_count埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
text_des埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
time埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Time埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Times埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
tip_id埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
title埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
translate_direction埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Type埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
vaccine_status埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
validation_result埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
video_duration埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
video_number埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
video_time埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Voice_id埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
voice_personality埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
X_Times埋点已定义,未扫描到触发调用。PetChat/Common/Managers/EventManager/PCAdjustEvents.swift:1-Thinking/Firebase
Loading_Show启动ert.addAction(retryAction) present(alert, animated: true) } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(a…PetChat/Module/Launch/PCLaunchVC.swift:377-Thinking/Firebase
User_Page_Reject启动) guard delegate == nil else { return } transitionToMainInterface() } @objc private func handleUnAgree() { makeToast(PCLocal(str:…PetChat/Module/Launch/PCAgreementVC.swift:178, PetChat/Module/Launch/PCAgreementVC.swift:179-Thinking/Firebase
User_Page_Show启动super.viewDidLoad() createUI() // Do any additional setup after loading the view. } override func viewDidAppear(_ animated: Bool)…PetChat/Module/Launch/PCAgreementVC.swift:30-Thinking/Firebase
User_Page_Success启动ri(with: ConstantURL.loadServerURL()) } } @objc private func handleAgree() { PCOnboardingManager.hasAcceptedAgreement = true dele…PetChat/Module/Launch/PCAgreementVC.swift:171-Thinking/Firebase
Click_Bottom_Button主导航y = 0 tabBar.layer.shadowOffset = .zero tabBar.layer.shadowRadius = 0 tabBar.layer.shadowPath = nil } func handleTabDidSwitch(fro…PetChat/Module/MainTab/PCTabBarController.swift:243typeThinking/Firebase
Page_Show主导航meter index: 当前展示 tab 的索引。 private func reportPageShow(for index: Int) { guard let pageName = pageShowName(for: index) else { ret…PetChat/Module/MainTab/PCTabBarController.swift:356pageName, timeThinking/Firebase
Onboard_ClickOnboarding导页继续按钮点击埋点。 /// /// - Parameter index: 当前点击时所在页索引(0-based)。 private func reportOnboardClick(for index: Int) { guard let params = …PetChat/Module/Guide/PCGuideVC.swift:309pageName, numberThinking/Firebase
Onboard_ShowOnboarding// 上报引导页子页展示埋点。 /// /// - Parameter index: 当前展示页索引(0-based)。 private func reportOnboardShow(for index: Int) { guard let params = …PetChat/Module/Guide/PCGuideVC.swift:298pageName, numberThinking/Firebase
onboarding_next_clickOnboardingdTapStartButton), for: .touchUpInside) } /// 点击“开始魔法时刻” @objc private func didTapStartButton() { guard let selectedType else { re…PetChat/Module/Guide/PCSelectPetVC.swift:275petTypeThinking/Firebase
Add_Pets_ClickPet Hubottom.equalToSuperview() } } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } @objc private…PetChat/Module/PetHub/View/HubAddPetSection.swift:382-Thinking/Firebase
Add_Pets_SuccessPet HubPCToastTool.show(PCLocal(str: "common.success"),duration: 1) { _ in PCDBManager.shared.getPetDataList { [weak self] records, _ in…PetChat/Module/PetHub/PCPetHubAddPetVC.swift:224Pet_NumThinking/Firebase
Pet_Magic_Click_CreatePet MagicbuttonTitle: PCLocal(str: "alert.ok") ) } } /// “开始创作”按钮事件,发起任务。 @objc private func handleMakeButtonTapped() { reportPetMagicLoad…PetChat/Module/PetMagic/PCPetMagicDetailVC.swift:852resource_id, Resource_Name, Resource_Cover_URL, Resource_URLThinking/Firebase
Pet_Magic_Click_LikePet MagicmePlaybackAfterUserTemplateSwitch() } /// 上报 PetMagic 点赞/取消点赞事件。 /// /// - Parameter isLiked: 最新点赞状态。 func reportPetMagicLike(isL…PetChat/Module/PetMagic/PCPetMagicDetailVC.swift:908-Thinking/Firebase
Pet_Magic_Click_Like_CancelPet Magic} /// 上报 PetMagic 点赞/取消点赞事件。 /// /// - Parameter isLiked: 最新点赞状态。 func reportPetMagicLike(isLiked: Bool) { PCReport.report(withEv…PetChat/Module/PetMagic/PCPetMagicDetailVC.swift:908-Thinking/Firebase
Pet_Magic_Create_ClickPet MagicURL":self.dataModel.cover ?? "","Resource_URL":self.dataModel.url ?? ""])) } } } } func eventClickActive() { reportPetMagicLoadAg…PetChat/Module/PetMagic/PCPetMagicDetailVC.swift:748-Thinking/Firebase
Pet_Magic_Detail_Page_ShowPet Magico, list: [TemItemInfo]) { let detailVC = PCPetMagicDetailVC() detailVC.dataModel = selected detailVC.dataArr = list detailVC.mode…PetChat/Module/PetMagicNew/vc/PCPetMagicNewListVC.swift:826resource_id, Resource_Name, Resource_Cover_URL, Resource_URLThinking/Firebase
Pet_Magic_Enter_Album_PagePet Magiceak self, weak pickerVC] in self?.handlePhotoPickerTaskCreated(pickerVC: pickerVC) } self.present(pickerVC, animated: true) PCRep…PetChat/Module/PetMagic/PCPetMagicDetailVC.swift:740resource_id, Resource_Name, Resource_Cover_URL, Resource_URLThinking/Firebase
Pet_Magic_Feedback_ClickPet Magic() )) startSharingContent(for: item) } /// 反馈按钮事件。 @objc private func handleFeedbackTapped() { guard let item = dataModel else { …PetChat/Module/PetMagic/PCPetMagicDetailVC.swift:453-Thinking/Firebase
Pet_Magic_Feedback_Click_SubmitPet Magictype: .other, key: PCAdjustEventID.petMagicFeedbackShow.rawValue, param: analyticsParams() )) } func reportSubmitClickEvent() { P…PetChat/Module/PetMagic/PCPetMagicFeedbackVC.swift:625-Thinking/Firebase
Pet_Magic_Feedback_ShowPet Magicts.bottom = overlap + 24 self.view.layoutIfNeeded() } } } // MARK: - Analytics private extension PCPetMagicFeedbackVC { func repo…PetChat/Module/PetMagic/PCPetMagicFeedbackVC.swift:617-Thinking/Firebase
Pet_Magic_Share_ClickPet MagicwnloadState(resourceId: currentItem.id ?? "") } } /// 分享按钮事件。 @objc private func handleShareTapped() { guard let item = dataModel…PetChat/Module/PetMagic/PCPetMagicDetailVC.swift:442-Thinking/Firebase
pet_audio_clickPet Soundscell.maskHidden = !shouldShowVipMask(for: visibleItem) } } /// 上报语音包点击埋点。 /// /// - Parameter item: 当前点击的语音包。 private func report…PetChat/Module/PetSounds/PCPetSoundsVC.swift:870audioType, petType, voicePersonality, audioNameThinking/Firebase
Pet_Game_Card_ClickPet Soundsreturn "fish_chase" } } } /// 宠物游戏 V1.1.4 埋点封装。 enum PCPetGameAnalytics { /// 上报游戏卡片点击事件。 static func reportCardClick(gameID: Str…PetChat/Module/PetSounds/Manager/PCPetGameAccessManager.swift:78gameID, lockStatus, freeTimesLeftThinking/Firebase
Pet_Game_EndPet SoundstGameStart.rawValue, param: [ PCAdjustEventParamKey.gameID.rawValue: gameID ])) } /// 上报游戏结束事件。 static func reportGameEnd(gameID:…PetChat/Module/PetSounds/Manager/PCPetGameAccessManager.swift:94gameIDThinking/Firebase
Pet_Game_Guide_ShowPet SoundsPlayTimeGuideView() guideView.onStart = onStart containerView.addSubview(guideView) guideView.snp.makeConstraints { make in make.…PetChat/Module/PetSounds/PCPetSoundsVC.swift:1215gameIDThinking/Firebase
Pet_Game_Setting_SavePet SoundsdjustEventParamKey.score.rawValue: max(0, score) ])) } /// 上报游戏设置保存事件。 static func reportSettingSave(gameID: String, targetCount:…PetChat/Module/PetSounds/Manager/PCPetGameAccessManager.swift:103on, gameID, targetCount, speed, soundStatusThinking/Firebase
Pet_Game_StartPet SoundsPCAdjustEventParamKey.freeTimesLeft.rawValue: PCPetGameAccessManager.shared.analyticsFreeTimesLeft() ])) } /// 上报正式进入游戏事件。 static…PetChat/Module/PetSounds/Manager/PCPetGameAccessManager.swift:87gameIDThinking/Firebase
Pet_Games_Page_ShowPet Sounds/// 上报宠物游戏列表展示事件,避免布局刷新导致重复上报。 private func reportGamePageShowIfNeeded() { guard selectedTab == .game, shouldReportGamePageShow e…PetChat/Module/PetSounds/PCPetSoundsVC.swift:834-Thinking/Firebase
Pet_Sounds_ClickPet Sounds音频成功开始播放后,再消耗一次免费次数,避免点击失败也扣次。 PCPetSoundsFreePlayManager.shared.consumeOnceAfterPlaySuccessIfNeeded() refreshVisibleVipMaskState…PetChat/Module/PetSounds/PCPetSoundsVC.swift:807Type, nameThinking/Firebase
Analyzing_Sound_FailPet TalkreportDomain.isEmpty == false { failParam[PCAdjustEventParamKey.requestDomain.rawValue] = reportDomain } failParam.merge(vipState…PetChat/Module/PetTalk/PCVoiceRecordVC.swift:609-Thinking/Firebase
Analyzing_Sound_SuccessPet Talk.type.rawValue: analysisRecordType(for: changeType), PCAdjustEventParamKey.time.rawValue: elapsed, ] successParam.merge(vipStateA…PetChat/Module/PetTalk/PCVoiceRecordVC.swift:360-Thinking/Firebase
Pet_Talk_History_Record_ClickPet Talkite.rawValue: item.isFavorite ] if let sourceMediaType = item.sourceMediaType { param[PCAdjustEventParamKey.inputType.rawValue] =…PetChat/Module/PetTalk/Manager/PCPetTalkAnalytics.swift:87-Thinking/Firebase
Pet_Talk_History_ShowPet TalkPCReport.report(withEvent: Event(type: .other, key: PCAdjustEventID.petTalkHistoryRecordClick.rawValue, param: param)) } /// 上报历史…PetChat/Module/PetTalk/Manager/PCPetTalkAnalytics.swift:92-Thinking/Firebase
Pet_Talk_Memory_ClickPet Talk.report(withEvent: Event(type: .other, key: PCAdjustEventID.petTalkHistoryShow.rawValue, param: [:])) } /// 上报 Memories 卡片点击事件。 s…PetChat/Module/PetTalk/Manager/PCPetTalkAnalytics.swift:97-Thinking/Firebase
Pet_Talk_Memory_Refresh_ClickPet Talk.setMemoryExpanded(true, animated: true) } memoryView.onCollapse = { [weak self] in self?.setMemoryExpanded(false, animated: true…PetChat/Module/PetTalk/PCPetTalkNewVC.swift:305-Thinking/Firebase
Pet_Talk_Mode_ClickPet Talkcase .catToHuman: return "Cat_To_Human" } } /// 上报 Pet Talk 人转宠物模式切换点击。 private func reportPetTalkModeClick(_ mode: HumanInputMod…PetChat/Module/PetTalk/PCPetTalkNewVC.swift:1864translateDirection, modeThinking/Firebase
Pet_Talk_Result_Favorite_ClickPet Talk, PCAdjustEventParamKey.playType.rawValue: playType ])) } /// 上报结果收藏点击事件。 static func reportFavoriteClick(pageName: String, isFav…PetChat/Module/PetTalk/Manager/PCPetTalkAnalytics.swift:48, PetChat/Module/PetTalk/Manager/PCPetTalkAnalytics.swift:66pageName, favoriteAction, translateDirection, inputTypeThinking/Firebase
Pet_Talk_Result_Feedback_ClickPet Talknt(type: .other, key: PCAdjustEventID.petTalkResultFavoriteClick.rawValue, param: param)) } /// 上报结果反馈点击事件。 static func reportFee…PetChat/Module/PetTalk/Manager/PCPetTalkAnalytics.swift:71feedbackType, translateDirection, inputTypeThinking/Firebase
Pet_Talk_Text_Translate_ClickPet TalkticsValue ] )) } /// 上报 Pet Talk 文字翻译按钮点击及校验结果。 private func reportPetTalkTextTranslateClick(textContent: String, validationResul…PetChat/Module/PetTalk/PCPetTalkNewVC.swift:1876textLength, validationResultThinking/Firebase
Stop_RecordingPet Talkring?) { recordType = type } @objc private func cancelTapped() { onCancel?() } @objc private func stopTapped() { if let recordTyp…PetChat/Module/PetTalk/View/PCPetTalkRecordingOverlayView.swift:322, PetChat/Module/PetTalk/View/PCPetTalkRecordingOverlayView.swift:326typeThinking/Firebase
Sub_ClickPet Talklet productID = translationCompleteProductID(from: config) isTranslationCompleteDirectPurchaseInProgress = true reportTranslation…PetChat/Module/PetTalk/PCVoiceRecordVC.swift:1111, PetChat/Module/VIP/VC/PCVIPAViewController.swift:300, PetChat/Module/VIP/VC/PCVIPBViewController.swift:296, PetChat/Module/VIP/VC/PCVIPBaseVC.swift:2198-Thinking/Firebase + Adjust
Talk_Guide_FinishPet Talkguard petVoiceCard.bounds.width > 0, petVoiceCard.bounds.height > 0 else { return false } return true } /// 完成首页引导后,记录本地状态并恢复顶部视频…PetChat/Module/PetTalk/PCPetTalkNewVC.swift:1028-Thinking/Firebase
Talk_Guide_ShowPet TalkshouldRetryTalkGuidePresentation = false attachGuideOverlayIfNeeded() guideContainerView().layoutIfNeeded() introVideoPlayerView.…PetChat/Module/PetTalk/PCPetTalkNewVC.swift:977-Thinking/Firebase
Tap_to_RecordPet Talkmodel.id = UUID().uuidString model.sourceText = text model.sourceMediaType = .text model.changeType = changeType model.createTime…PetChat/Module/PetTalk/PCPetTalkNewVC.swift:783, PetChat/Module/PetTalk/PCPetTalkNewVC.swift:1841typeThinking/Firebase
Translation_Result_Page_ShowPet TalkultPageParam: [String: Any] = [ PCAdjustEventParamKey.type.rawValue: recordType(for: changeType) ] resultPageParam.merge(vipState…PetChat/Module/PetTalk/PCVoiceRecordVC.swift:487-Thinking/Firebase
Translation_Result_VideoPlayPet Talklet albumCancel = "album_cancel" static let unknown = "unknown" } /// 上报翻译结果音色播放事件。 static func reportResultVoicePlay(voiceID: St…PetChat/Module/PetTalk/Manager/PCPetTalkAnalytics.swift:39voiceID, translateDirection, playTypeThinking/Firebase
Album_Page_Next_ClickPet Thoughts.fullScreen self.present(pickerVC, animated: true) { viewModel.backAction = { [weak self, weak pickerVC] in guard let self else {…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1592-Thinking/Firebase
pet_thought_entrance_clickPet Thoughts} /// 统一处理导航栏右侧按钮点击:空态展示引导,有会话时进入编辑。 @objc private func handleRightButtonTapped() { switch rightButtonMode { case .guide: /// 埋点:…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:712-Thinking/Firebase
Pet_Thoughts_Enter_Album_PagePet Thoughts视频;在选择达到上限时给出专属提示文案。 viewModel.onSelectionLimitReached = { [weak pickerVC] in pickerVC?.view.makeToastText(PCLocal(str: "petThoug…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1581-Thinking/Firebase
Pet_Thoughts_Load_AgainPet Thoughtsy.featurePetThoughts, resourceId: "", soundsName: "" )) return } pendingConsumeFreeUse = true } PCReport.report(withEvent: Event(…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:2349, PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:4588-Thinking/Firebase
Pet_Thoughts_Load_FailPet ThoughtsID, elapsedSeconds: elapsedSeconds, emotion: petThoughtsAnalyticsEmotion(for: humanMessageID) ) param[PCAdjustEventParamKey.failR…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1050-Thinking/Firebase
Pet_Thoughts_Load_SuccessPet ThoughtsView.reloadData() self.scrollToMessage(with: humanMessageID, at: .top, animated: true) self.scheduleConversationSave() PCReport.r…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:2162-Thinking/Firebase
Pet_Thoughts_Mood_Date_ClickPet ThoughtsoughtsMoodHistoryClick.rawValue, param: [:])) } /// 上报 Pet Thoughts 心情历史日期点击。 private func reportPetThoughtsMoodDateClick(entry: …PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1128-Thinking/Firebase
Pet_Thoughts_Mood_History_ClickPet ThoughtsleName), PCAdjustEventParamKey.failReason.rawValue: failReason ] )) } /// 上报 Pet Thoughts 心情历史入口点击。 private func reportPetThought…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1121-Thinking/Firebase
Pet_Thoughts_Retry_ClickPet ThoughtstyleName.rawValue: normalizedThoughtStyleName(styleName)] )) } /// 上报 Pet Thoughts 失败卡重试点击。 private func reportPetThoughtsRetryCl…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1081styleNameThinking/Firebase
Pet_Thoughts_Save_ClickPet ThoughtsramKey.styleName.rawValue: normalizedThoughtStyleName(styleName)] )) } /// 上报 Pet Thoughts 保存点击。 private func reportPetThoughtsSa…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1090-Thinking/Firebase
Pet_Thoughts_Share_ClickPet Thoughtsk.rawValue, param: petThoughtsActionParam(at: index) )) } /// 上报 Pet Thoughts 分享点击。 private func reportPetThoughtsShareClick(at i…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1099-Thinking/Firebase
Pet_Thoughts_Share_Image_ResultPet Thoughtshts 分享图生成结果。 private func reportPetThoughtsShareImageResult(at index: Int, result: String, failReason: String) { let context = pe…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1109styleName, result, qrURL, failReasonThinking/Firebase
Pet_Thoughts_Start_LoadPet ThoughtsoughtStyleName.all : [primaryStyleName] let usageTimes = nextPetThoughtsUsageTimes() let mediaType = petThoughtsMediaType(for: mo…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1633-Thinking/Firebase
Pet_Thoughts_Style_Unlock_ClickPet Thoughtsm: message, text: text).first ?? "" } return "" } /// 上报 Pet Thoughts 风格解锁点击。 private func reportPetThoughtsStyleUnlockClick(styl…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1072styleNameThinking/Firebase
Pet_Thoughts_Upload_Photo_ClickPet Thoughtsontext: PCVIPSubShowEntryContext( iapEntry: PCVIPIAPEntry.featurePetThoughts, resourceId: "", soundsName: "" )) return } PCReport…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:1570-Thinking/Firebase
Thought_Detail_ClickPet Thoughts= globalIndexForVisibleRow(indexPath.row) guard allMessages.indices.contains(globalIndex) else { return } guard shouldShowAnalysi…PetChat/Module/PetThoughts/PCPetThoughtsVC.swift:2832-Thinking/Firebase

立即使用

打开 App Store 下载 App

立即使用