小编8ct*_*pus的帖子

Google Analytics 4 - 在不使用 gtag.js 或 firebase 的情况下使用测量协议 API

是否可以使用 GA4 测量协议将事件发送到 Google Analytics,并在 GA 仪表板中查看和分析它们,而无需使用gtag.jsGA4 或任何其他前端脚本?用例是一些事件被发送到我的服务器,我将通过 API 将这些事件推送到 GA。

让我想到的一件事是官方的Measurement Protocol API 说:

为了使事件有效,它必须具有已用于从 gtag.js 发送事件的 client_id。您需要在客户端捕获此 ID 并将其包含在对测量协议的调用中。在向您的酒店发送事件时,我们使用“client_id”作为 client_id。您需要将其替换为来自 gtag.js 的真实 client_id。

https://developers.google.com/analytics/devguides/collection/protocol/ga4/verify-implementation?client_type=gtag#client_send

这表明只有具有有效client_id来源的事件gtag.js才会被计数。我对随机生成进行了一些实验client_ids,发现我能够在RealtimeGA4 控制台的部分(该Event count by Event name部分)中看到我的事件,但所有其他部分都是空的,并且该Users in last 30 min部分始终显示 0。

有人可以向我解释为什么它为零以及这样的用例是否有效?谢谢

analytics google-analytics measurement-protocol google-analytics-4

15
推荐指数
2
解决办法
3265
查看次数

Google Analytics v4 测量协议 - 如何发送技术和采集数据

背景:

我正在将采集数据跟踪到移动应用程序。某些链接通过我的网站重定向到 App Store 或 Google Play 商店,其中 Google Analytics 收集这些重定向的数据。

该移动应用程序还利用了一项名为“App Clips”的新 iOS 功能,它基本上是一个无需用户通过商店下载即可打开的应用程序片段。当应用程序剪辑启动时,“中间人”重定向网站永远不会打开。

为了在 Android 和 iOS 采集上获得一致的数据,我想page_view通过测量协议收集事件,直接从“App Clip”触发。

问题:

GA v4 测量协议 API 处于 alpha 版本。该page_view事件实际上在文档中缺失,但仍然可以发送。

我想了解如何填充请求中的事件参数,以便发送“技术”和“采集”类别所需的数据。这至少意味着用户代理数据、确切的设备型号、活动、媒介和来源。

{
    "client_id": "<what_goes_here?>",
    "timestamp_micros": "1627192577008000",
    "non_personalized_ads": false,
    "events": [
        {
            "name": "page_view",
            "params": {
                "page_title": "App Clip",
                "language": "en-us",
                "page_location": "https://example.com/x?utm_campaign=my_campaign",
                "screen_resolution": "1170x2532",
                //"page_referrer": ""
                "page_path": "/x?utm_campaign=my_campaign"
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我不想在 App Clip 中使用 Firebase SDK,原因有两个:

  1. 我希望 App Clip 是轻量级的,并且 Apple 不鼓励使用第 3 方库
  2. 我无法保证发送 …

google-analytics firebase measurement-protocol apple-appclips google-analytics-4

6
推荐指数
1
解决办法
1947
查看次数

使用 PSR 7、17 和 18 而不是 Guzzle 的与客户端无关的 API 包装器

PSR

PSR-7PSR-17PSR-18的推出都是一项计划的一部分,旨在使

构建需要以 HTTP 客户端无关的方式向服务器发送 HTTP 请求的应用程序

请参阅PSR-18:HTTP 客户端的 PHP 标准

我一直在使用许多历史上严重依赖 Guzzle 而不是抽象接口的应用程序。这些应用程序中的大多数使用包含 JSON 正文的 GET 或 POST 请求以及也包含 JSON 正文的响应来发出简单的 API 请求,或者针对 HTTP 4xx 或 5xx 错误抛出异常。

API 包装器

这个问题来自最近的一个项目,在该项目中,我尝试开发一个 API 包,该包没有明确依赖于 Guzzle,而是仅依赖于 PSR 接口。

这个想法是创建一个ApiWrapper可以使用以下方式启动的类:

  1. 满足 PSR-18 的HTTP 客户ClientInterface
  2. 满足 PSR-17 要求的请求工厂RequestFactoryInterface
  3. 满足 PSR-17 标准的Stream FactoryStreamFactoryInterface

这个类将有它需要的任何东西:

  1. 使用请求工厂流工厂发出请求 (PSR-7)
  2. 使用HTTP 客户端发送请求
  3. 处理响应 - 因为我们知道这将满足 PSR-7ResponseInterface

这样的 …

php guzzle psr-7

5
推荐指数
1
解决办法
2268
查看次数

模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

我从 GitHub 下载了一个我和我朋友正在开发的项目,但是当我尝试运行时

npm run serve
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

./src/main.js 中的错误

Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main resolved in /home/haider/Desktop/L7G/node_modules/@babel/helper-compilation-targets/package.json
    at applyExports (internal/modules/cjs/loader.js:524:9)
    at resolveExports (internal/modules/cjs/loader.js:541:12)
    at Function.Module._findPath (internal/modules/cjs/loader.js:661:22)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:963:27)
    at Function.Module._load (internal/modules/cjs/loader.js:859:27)
    at Module.require (internal/modules/cjs/loader.js:1036:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/home/haider/Desktop/L7G/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (internal/modules/cjs/loader.js:1147:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Module.load (internal/modules/cjs/loader.js:996:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Module.require (internal/modules/cjs/loader.js:1036:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/home/haider/Desktop/L7G/node_modules/@babel/preset-env/lib/index.js:11:14)
    at Module._compile (internal/modules/cjs/loader.js:1147:30)

 @ multi (webpack)-dev-server/client?http://192.168.0.109:8080/sockjs-node (webpack)/hot/dev-server.js ./src/main.js
Run Code Online (Sandbox Code Playgroud)

main.js 的内容:

import Vue from …
Run Code Online (Sandbox Code Playgroud)

javascript node.js npm vue.js babeljs

4
推荐指数
1
解决办法
5656
查看次数