diff --git a/cc-inspector/src/ga/type.ts b/cc-inspector/src/ga/type.ts index 48d958e..fc4007b 100644 --- a/cc-inspector/src/ga/type.ts +++ b/cc-inspector/src/ga/type.ts @@ -78,6 +78,14 @@ export enum GA_EventName { Hierarchy = "hierarchy", Inspector = "Inspector", EngineVersion = "engine_version", + /** + * 用户点击store广告链接 + */ + ClickPluginLink = "click_plugin_link", + /** + * 用户主动关闭store广告 + */ + CloseAd = "close_ad", } export enum GA_Button { Github = "github", diff --git a/cc-inspector/src/scripts/const.ts b/cc-inspector/src/scripts/const.ts index 6a99974..ff6fe10 100644 --- a/cc-inspector/src/scripts/const.ts +++ b/cc-inspector/src/scripts/const.ts @@ -1,3 +1,5 @@ +import { GA_EventName } from "../ga/type"; + export enum DocumentEvent { /** * 从inject到content的事件 @@ -8,4 +10,9 @@ export enum DocumentEvent { */ Content2Inject = "content2inject", EngineVersion = "engineVersion", + GoogleAnalytics = "googleAnalytics", +} +export interface GoogleAnalyticsData { + event: GA_EventName; + params: string; } diff --git a/cc-inspector/src/scripts/content/index.ts b/cc-inspector/src/scripts/content/index.ts index c5feb05..3a5cc8f 100644 --- a/cc-inspector/src/scripts/content/index.ts +++ b/cc-inspector/src/scripts/content/index.ts @@ -4,7 +4,7 @@ import { ChromeConst } from "cc-plugin/src/chrome/const"; import { debugLog, Page, PluginEvent } from "../../core/types"; import { ga } from "../../ga"; import { GA_EventName } from "../../ga/type"; -import { DocumentEvent } from "../const"; +import { DocumentEvent, GoogleAnalyticsData } from "../const"; import { Terminal } from "../terminal"; const terminal = new Terminal(Page.Content); @@ -33,6 +33,16 @@ document.addEventListener(DocumentEvent.EngineVersion, async (event: CustomEvent ga.fireEventWithParam(GA_EventName.EngineVersion, version); } }); +document.addEventListener(DocumentEvent.GoogleAnalytics, (event: CustomEvent) => { + const data: GoogleAnalyticsData = event.detail; + if (data && data.event) { + if (data.params) { + ga.fireEventWithParam(data.event, data.params); + } else { + ga.fireEvent(data.event); + } + } +}); // #region 和Inject通讯 document.addEventListener(DocumentEvent.Inject2Content, (event: CustomEvent) => { let data: PluginEvent = PluginEvent.create(event.detail); diff --git a/cc-inspector/src/scripts/inject-view/app.vue b/cc-inspector/src/scripts/inject-view/app.vue index 9ed276a..c3a6d4b 100644 --- a/cc-inspector/src/scripts/inject-view/app.vue +++ b/cc-inspector/src/scripts/inject-view/app.vue @@ -25,6 +25,8 @@ import { defineComponent, onMounted, ref, toRaw } from "vue"; import Banner from "./banner.vue"; import { emitter, Msg } from "./const"; import { AdItem, getAdData } from "./loader"; +import { ga } from "./util"; +import { GA_EventName } from "../../ga/type"; export default defineComponent({ name: "ad", components: { Banner }, @@ -80,6 +82,7 @@ export default defineComponent({ ads, onClose() { isShow.value = false; + ga(GA_EventName.CloseAd); }, onMouseEnter() { stopAutoScroll = true; diff --git a/cc-inspector/src/scripts/inject-view/banner.vue b/cc-inspector/src/scripts/inject-view/banner.vue index f28fc8a..f848f61 100644 --- a/cc-inspector/src/scripts/inject-view/banner.vue +++ b/cc-inspector/src/scripts/inject-view/banner.vue @@ -1,12 +1,18 @@