javascript - Hur man ändrar standardvärdet för "non-interaction"-händelser i Google Analytics


Jag använder Googles Model Viewer i mitt projekt, och tyvärr behandlar det vissa händelser som non-interaction: false när de borde vara non-interaction: true. I mitt fall är det dessa händelser som triggas när modellen laddas, när den upptäcker en användare med AR-stöd, och när den upptäcker en användare med QR-stöd.

Hur kan jag manuellt ställa in dessa händelsers värden för icke-interaktion till sant? Jag har försökt lösningar liknande detta utan framgång:

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}"
  },

Jag har också försökt med lösningen här, samt flera liknande. Använder jag fel variabelnamn eller index för icke-interaktion?

La till mer kod som begärt

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
      });
    }
    ...
}

REDIGERA: Med @d-_-b:s förslag fann jag att den korrekta formen av lösningen är att skicka in nonInteraction som ett objekt enligt följande:

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

Det är uppenbart viktigt att behålla citationstecknen runt namnet 'nonInteraction' när det skickas in som ett objekt

Svar #1

För Universal Analytics bör nonInteraction-egenskapen skickas som ett objekt (se dokumentation):

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

Om du använder gtag.js behöver du lägga till non_interaction: true som dokumenterat här

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

Relaterade artiklar