javascript - 如何更改 Google Analytics 中 "non-interaction"事件的默认值

标签 javascript json typescript google-analytics model-viewer

我在我的项目中使用 Google 的模型查看器,不幸的是,它将某些事件视为 non-interaction: false 而它们应该是 non-interaction: true。在我的例子中,这些是在模型加载时、检测到支持 AR 的用户时以及检测到支持 QR 的用户时触发的事件。

如何手动将这些事件的非交互值设置为 true?我尝试过类似的解决方案但无济于事:

export type AnalyticsEvent = {
  type: string;
  category: string;
  action: string;
  label: string;
  value: number;
  nonInteraction: boolean;
};
export const USER_WITH_AR_SUPPORT_TEMPLATE: AnalyticsEvent = {
  type: 'event',
  category: AR_CATEGORY,
  action: 'UserWithArSupport',
  label: '',
  value: '',
  nonInteraction: true,
};
"kind": "javascript-module",
"path": "src/globals/ArEvents.ts",
"declarations": [
  {
    "kind": "variable",
    "name": "userWithArSupportTemplate",
    "type": {
      "text": "AnalyticsEvent"
    },
    "default": "{\n  type: 'event',\n  category: ARCategory,\n  action: 'UserWithArSupport',\n  label: '',\n ,\n nonInteraction: true}"
  },

我也尝试过解决方案 here ,以及几个类似的。我是否为非交互使用了错误的变量名或索引?

按要求添加了更多代码

public sendGaEvent(uaCode: string, eventData: AnalyticsEvent, sku: string, log: boolean) {
    ...
    const instance = this[$analyticsMap].get(uaCode);
    const tracker = instance!.tracker;
    if (!tracker) {
      const queue = instance!.queue;
      queue!.enqueue(eventData);

      LoggerInstance.log({
        sender: this,
        message: 'Enqueuing GA event',
        force: log
      });
    } else {
      ga(`${tracker}.send`, 
        eventData.type,
        eventData.category,
        eventData.action,
        eventData.label,
        eventData.nonInteraction,
        {
          hitCallback: () => LoggerInstance.log({
            sender: this,
            message: 'GA event successfully sent!',
            objectToLog: eventData,
            force: log
          })
        }
      );

      LoggerInstance.log({
        sender: this,
        message: 'Sending GA event',
        force: log
      });
    }
    ...
}

编辑:使用@d-_-b 的建议,我发现将 nonInteraction 作为对象传递的解决方案的正确形式如下:

ga(
   'send', 
   'event', 
   'AR_CATEGORY', 
   'UserWithArSupport', 
   'label', 
   {'nonInteraction': true}
);

在将名称“nonInteraction”作为对象传递时,在名称“nonInteraction”两边加上引号显然很重要

最佳答案

对于 Universal Analytics,nonInteraction 属性应作为对象 (see docs) 传递:

ga('send', 'event', 'AR_CATEGORY', 'UserWithArSupport', 'label', {
  nonInteraction: true
});

如果您使用的是 gtag.js,则需要将 non_interaction: true 添加为 documented here

 gtag('event', '<event-name>', {
   'event_label': '',
   'event_category': 'AR_CATEGORY',
   'event_action': 'UserWithArSupport',
   'non_interaction': true
 }); 

关于javascript - 如何更改 Google Analytics 中 "non-interaction"事件的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73322479/

相关文章:

typescript - 如何防止 "any"在 TypeScript 类型和接口(interface)中使用

javascript - Cordova 联系人插件 ContactFindOptions 过滤器

javascript - NodeJS - Jimp - 处理 .png 图像以减少其重量(质量)

javascript - $.getjson 不工作/json 存储

php - json_encode 可以触发 catch block 吗?

python - 在编写 JSON 时防止循环的 pythonic 方法是什么?

html - 如何通过数据绑定(bind)设置组件主机名

javascript - 如何使用输入标签字段代替默认的 django?

javascript - jquery hide 隐藏子菜单内容

reactjs - React hooks 被乱序调用