Google analytics 使用Google Analytics在位置0处的JSON中出现意外标记G

Google analytics 使用Google Analytics在位置0处的JSON中出现意外标记G,google-analytics,angular5,measurement-protocol,Google Analytics,Angular5,Measurement Protocol,我试图在我的Angular 5项目中使用Google Analytics的测量协议。我将Google Analytics通用代码放在index.html中,并对该服务进行如下http调用 index.html <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gt

我试图在我的Angular 5项目中使用Google Analytics的测量协议。我将Google Analytics通用代码放在
index.html
中,并对该服务进行如下http调用

index.html

<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());

    gtag('config', 'UA-XXXXXXXX-Y', {
      'cookieDomain': 'none'
    });
    // console.log(window.dataLayer);
  </script>
问题是谷歌返回了一个奇怪的错误,我不知道这意味着什么,也不知道这个错误的原因。我的实现是否很糟糕

来自谷歌的错误:

错误

HttpErrorResponse{headers:HttpHeaders,状态:200,状态文本:“OK”,url:“…”,OK:false,…}

错误:{error:SyntaxError:JSON中的意外标记G位于XMLHttp…的JSON.parse()位置0处,文本:“GIF89a�����,D、 “}

似乎服务器正在尝试JSON解析GIF图像。在文档中找不到任何内容,谷歌也没有显示任何信息


非常感谢您的帮助。

Google Analytics endpoint for data collection返回一个透明的gif文件(对于除服务器错误以外的所有内容,它都返回200状态,因此您无法使用此文件查看您的数据是否被跟踪)。gif不能解码为JSON


如果需要JSON响应,则需要使用(google analytics.com/debug/collect)。如果您的有效负载有效,它将提供信息,但不会跟踪呼叫。

谢谢您的帮助。但我不知道如何将订阅从HttpClient转换为映像。我试图返回一个
可观察的
,但仍然得到相同的错误。我对angular不太了解,我可以告诉你,你不能JSON.stringify gif图像(也就是说,这不是GA错误消息,这只是一个Javascript错误),这就是你所要求的。也许你应该编辑/修改你的问题(或者问一个新问题)。JSON stringify是在得到错误后添加的。我正试图把图像弄脏。非常感谢你的帮助。
import { Injectable } from '@angular/core';
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
import { DataService } from './Data.service';

@Injectable()
export class AnalyticsService {

  private anUID = 'UA-XXXXXXXX-Y';
  private analyticsURL = 'https://www.google-analytics.com/collect?';

  constructor(private http: HttpClient, private datos: DataService) { }

  public pageViewLista(): void {
    this.http.get(
      this.setScreenViewUrl(
        encodeURI('Lista de empresas'))).subscribe((data) => {
          console.log('Received data from GAnalytics: ' + JSON.stringify(data));
        }
    );
  }

  protected setScreenViewUrl (pantalla: string): string {
    const constructUrl = `${this.analyticsURL}v=1&t=screenview&tid=${this.anUID}&cid=${this.datos.id}&an=${this.datos.app}&dt=${pantalla}&cd=${pantalla}`;
    return constructUrl;
  }

}