Mixpanel是一个分析平台,用于跟踪移动和网络上的事件。
我可以从 API 导出所有事件,但他们有一种称为会话的东西,它们是根据我发送的事件计算的虚拟事件,是否有可能获得像会话 sta 这样的会话...
我遇到 Mixpanel 合并问题,导致随机用户合并在一起。我正在尝试调试这个问题,为此我需要一个 JQL 查询来显示哪些用户拥有超过 1 个(或 X 个)
我尝试导出所有用户;但我无法这样做。我尝试根据页数导出;但没有成功。 此代码仅导出 1000 个用户并返回 Error500。 导入请求
我对每个 API 数量占 API 总数的百分比有疑问。 我通过 Mixpanel JQL 来达到这个目的遇到了挑战,我也使用了减速器。 现在我明白了...
如何在 Mixpanels 的 JQL 中查询事件的多个属性?
函数 main (){ return Events({ from_date: "2023-04-06", to_date: "2023-05-26", event_selectors: [{event: "FeedExited"}, {event: "GameExited"} ,{事件:“
如何解决 – “拒绝执行内联脚本,因为它违反了以下内容安全策略”
我正在使用 Vanilla JS 在一个简单的 chrome 扩展中设置 Mixpanel。我没有使用 NPM,但遵循此文档。 下面是我在 Index.html 中引入 Mixpanel SDK 的设置: 我正在使用 Vanilla JS 在一个简单的 chrome 扩展中设置 Mixpanel。我没有使用 NPM,但遵循这个 docs。 下面是我的设置,我在 Index.html 中引入 Mixpanel SDK: <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript"> <!-- Paste this right before your closing </head> tag --> <script type="text/javascript"> (function (f, b) { if (!b.__SV) { var e, g, i, h; window.mixpanel = b; b._i = []; b.init = function (e, f, c) { function g(a, d) { var b = d.split("."); 2 == b.length && ((a = a[b[0]]), (d = b[1])); a[d] = function () { a.push([d].concat(Array.prototype.slice.call(arguments, 0))); }; } var a = b; "undefined" !== typeof c ? (a = b[c] = []) : (c = "mixpanel"); a.people = a.people || []; a.toString = function (a) { var d = "mixpanel"; "mixpanel" !== c && (d += "." + c); a || (d += " (stub)"); return d; }; a.people.toString = function () { return a.toString(1) + ".people (stub)"; }; i = "disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split( " "); for (h = 0; h < i.length; h++) g(a, i[h]); var j = "set set_once union unset remove delete".split(" "); a.get_group = function () { function b(c) { d[c] = function () { call2_args = arguments; call2 = [c].concat(Array.prototype.slice.call(call2_args, 0)); a.push([e, call2]); }; } for ( var d = {}, e = ["get_group"].concat( Array.prototype.slice.call(arguments, 0)), c = 0; c < j.length; c++) b(j[c]); return d; }; b._i.push([e, f, c]); }; b.__SV = 1.2; e = f.createElement("script"); e.type = "text/javascript"; e.async = !0; e.src = "undefined" !== typeof MIXPANEL_CUSTOM_LIB_URL ? MIXPANEL_CUSTOM_LIB_URL : "file:" === f.location.protocol && "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//) ? "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js" : "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"; g = f.getElementsByTagName("script")[0]; g.parentNode.insertBefore(e, g); } })(document, window.mixpanel || []); </script> </head> <body> <script type="module" src="popup.js"></script> </body> </html> 在我的popup.js中,我参考了以下内容 //Import Mixpanel SDK import mixpanel from "mixpanel-browser"; // Near entry of your product, init Mixpanel mixpanel.init("0000", { debug: true, track_pageview: true, persistence: "localStorage", }); 当我检查 Mixpanel 对象是否存在时,我在控制台中看到以下错误 index.html:12 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-6VDlGRSSdUDK2nuG1Ys7GZ0tuFVwEcvszIXy9+2ULI4='), or a nonce ('nonce-...') is required to enable inline execution. index.html:12 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'wasm-unsafe-eval' 'inline-speculation-rules' http://localhost:* http://127.0.0.1:*". Either the 'unsafe-inline' keyword, a hash ('sha256-6VDlGRSSdUDK2nuG1Ys7GZ0tuFVwEcv'), or a nonce ('nonce-...') is required to enable inline execution. index.html:1 Uncaught TypeError: Failed to resolve module specifier "mixpanel-browser". Relative references must start with either "/", "./", or "../". 我可以在您的代码中看到两个问题: 内容安全政策 模块解析问题 1。解决方案-内容安全策略 Chrome 扩展程序有一个默认的内容安全策略,出于安全原因会阻止内联脚本。您有两种选择来解决此问题。 选项 1: 将此内联脚本移至外部文件(例如:mixpanel-init.js)。 (function (f, b) { if (!b.__SV) { var e, g, i, h; window.mixpanel = b; b._i = []; b.init = function (e, f, c) { function g(a, d) { var b = d.split("."); 2 == b.length && ((a = a[b[0]]), (d = b[1])); a[d] = function () { a.push([d].concat(Array.prototype.slice.call(arguments, 0))); }; } var a = b; "undefined" !== typeof c ? (a = b[c] = []) : (c = "mixpanel"); a.people = a.people || []; a.toString = function (a) { var d = "mixpanel"; "mixpanel" !== c && (d += "." + c); a || (d += " (stub)"); return d; }; a.people.toString = function () { return a.toString(1) + ".people (stub)"; }; i = "disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split( " "); for (h = 0; h < i.length; h++) g(a, i[h]); var j = "set set_once union unset remove delete".split(" "); a.get_group = function () { function b(c) { d[c] = function () { call2_args = arguments; call2 = [c].concat(Array.prototype.slice.call(call2_args, 0)); a.push([e, call2]); }; } for ( var d = {}, e = ["get_group"].concat( Array.prototype.slice.call(arguments, 0)), c = 0; c < j.length; c++) b(j[c]); return d; }; b._i.push([e, f, c]); }; b.__SV = 1.2; e = f.createElement("script"); e.type = "text/javascript"; e.async = !0; e.src = "undefined" !== typeof MIXPANEL_CUSTOM_LIB_URL ? MIXPANEL_CUSTOM_LIB_URL : "file:" === f.location.protocol && "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//) ? "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js" : "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"; g = f.getElementsByTagName("script")[0]; g.parentNode.insertBefore(e, g); } })(document, window.mixpanel || []); 那么你的代码将看起来像这样。 <!DOCTYPE html> <html lang="en"> <head> <script src="mixpanel-init.js"></script> </head> <body> <script type="module" src="popup.js"></script> </body> </html> 选项 2: 对所有内联脚本使用 CSP(内容安全策略)指令 - 但由于存在安全风险,通常不建议使用此方法。但如果您想让脚本保持内联,您可以将 has 添加到扩展程序的 manifest.json 中的 CSP。 "content_security_policy": "script-src 'self' 'sha256-6VDlGRSSdUDK2nuG1Ys7GZ0tuFVwEcvszIXy9+2ULI4='; object-src 'self';" 只需将哈希值 sha256-... 替换为正确的值即可。 2。解决方案-模块解析问题 正如您所说,您没有使用npm,那么您一定没有安装“mixpanel-browser”,那么很明显您会收到此错误。 要解决这个问题,您应该安装 Mixpanel。 npm install --save mixpanel-browser 此外,您还必须使用 Webpack 或任何其他工具捆绑代码,否则您会再次遇到相同的错误,因为您正在尝试使用 ES 模块导入 import mixpanel from "mixpanel-browser"; 如果您需要任何其他帮助,请随时询问。我很乐意提供帮助。
关于 Mixpanel 免费套餐的直接问题! 如果在免费套餐中并且达到跟踪事件的限制会发生什么 它会默默地失败吗? 或者用户会看到任何错误消息吗?
在 Laravel 中使用 Mixpanel API,我认为我的代码缺少一些东西,但我不知道是什么
这是我的代码: 这是我的代码: <?php namespace App\Services; use Mixpanel\Mixpanel; use App\Models\User; use Illuminate\Support\Facades\Config; use Illuminate\Contracts\Auth\Authenticatable; class MixpanelService { private \Mixpanel $mixpanel; public function __construct() { $this->mixpanel = \Mixpanel::getInstance(config('services.mix_panel.token'), [ 'host'=>'api-eu.mixpanel.com', ]); } public function addUser(Authenticatable $user) { $this->mixpanel->people->set($user->id, [ '$first_name' => $user->name, '$email' =>$user->email, ], $ip=0); } } 我按照这个教程, https://www.youtube.com/watch?v=Ojl-SXVzCTQ&t=432s 在 10:43 分钟,我按照他的代码操作,但他没有显示第 1 到 5 行中的内容 有人可以帮助我吗? 嘿,我是来自 Mixpanel 支持的 Rishi。虽然我对 Laravel 不太熟悉,但可能的情况是作业本身正在创建一个进程,该进程要么没有被终止(或者至少没有以 SDK 拾取的方式终止),并且队列没有被刷新,所以你也许可以通过调用 flush() 和 people->flush() 发送数据来解决此问题。 需要澄清的是,每次调用 track 或发送人员更新时,PHP SDK 都会对数据进行排队,而不是发送请求,并且默认情况下,当脚本终止时队列会刷新。在这种情况下,该作业可能是一个正在进行的进程,我们没有将其视为已终止,因此永远不会调用刷新函数。但是,当代码有意义时,您可以手动调用flush()(您将需要调用事件和配置文件更新的两个方法)。 进一步的调试步骤是在初始化中启用调试标志,如果正在进行 people->set 调用,该标志将进行记录。如果正在记录调用并且flush()不会导致数据出现在您的项目中,那么我建议您仔细检查您要发送到的项目是否基于EU,以及初始化时的令牌是否匹配。如果您仍然遇到问题,请随时通过 http://mixpanel.com/get-support 与我们联系,我们很乐意调查您可能拥有的任何调试日志。 你是如何让它发挥作用的? 敬请赐教。 谢谢
我正在尝试实现 Mixpanel,并努力处理匿名事件与最终已知用户事件之间的连接。 假设我有一个匿名用户将产品添加到购物车。我是
我正在尝试创建一个 Cypress 脚本来执行 Mixpanel 的登录,对我的仪表板进行一些修改,并使用 Windows 任务计划程序安排它每天运行。我已经写好了
我有一个带有 mixpanel 实现的应用程序。漏斗流有三个步骤,但它没有按预期工作。 漏斗步骤如下: 第 1 步:用户位于登陆页面。(使用“
将 Google 跟踪代码管理器与数据层变量(“ payment_type ”)一起使用时,如果不同设备上的多个用户同时使用不同的值将数据推送到数据层,这是否会导致
具有静态 HTML 和普通 javascript 的混合面板
我想在静态 HTML 和普通 JavaScript 页面中使用 Mixpanel。我能找到的所有示例都使用 Bower 或 npm 来安装 mixpanel,但这些示例并不存在于简单的 HTML 和 javascript 页面中。 ...
Firebase A/B 测试 - 了解用户在设备上属于哪个组
我们设置了在 Firebase 上运行的 A/B 测试。为了分析事件,我们使用 Mixpanel 而不是 Firebase。假设我们有 User1 和 User2。 用户 1 被分配到实验组 A,用户 2 被分配到
Mixpanel 到 biggquery 每日/每月导出限制
因此 GA4 每天向 bigquery 导出 100 万个事件的限制。我想知道 Mixpanel 是否有类似的每日/每月限额。 我在网上搜索过,但似乎找不到相关的
如何将 Mixpanel 集成到 Flutter 应用程序中?
我按照此处给出的步骤进行操作 添加后 导入'包:mixpanel_flutter/mixpanel_flutter.dart'; ... 类 _YourClassState 扩展 State { 混合面板 混合面板; ...
使用原始导出API下载Mixpanel事件并根据distinct_id进行过滤
我在 Mixpanel 中有一些事件,我可以使用 Raw Export API 成功下载它们。在此示例中,我正在过滤“城市”字段。这有效。 导入请求 你...
刚刚探索mixpanel的数据导出。事件从网络应用程序推送到 mixpanel,之后我尝试从 mixpanel 中提取事件;尝试使用 UI,我们可以直接通过
在index.html中,我添加了来自https://mixpanel.com/help/reference/javascript的mixpanel代码。 在我的 导出类 MixpanelService { 构造函数(){ mixpanel.init("sdfsdf", '', "开发"...
我一直在尝试使用 gtm 将 mixpanel 集成到我的 Shopify 商店中已经有一段时间了,但我遇到了一个问题。 Mixpanel 没有存储与不同 id 相关的 mp_ cookie,导致