我即将进入mixpanel的下一个计划,因为有太多的人,我想先删除一些旧用户。
有没有一种简单的方法/script/api来批量删除旧用户?
发布于 2015-05-04 14:52:25
我已经编写了两个可能会派上用场的脚本:mixpanel-engage-query和mixpanel-engage-post。
使用第一个脚本(查询),您可以查询人员数据并获得配置文件列表,例如,所有将$last_seen设置为早于X个月的日期的用户。
使用第二个脚本(post),您可以批量地对这些配置文件执行操作,例如删除它们。请参阅an example of how to perform a batch delete自述文件。
发布于 2014-02-28 07:15:59
是的有。查看HTTP spec,您将发现以下内容。
$delete
string从Mixpanel中永久删除配置文件,以及它的所有属性。忽略该值-配置文件由来自请求本身的$distinct_id确定。
// This removes the user 13793 from Mixpanel
{
"$token": "36ada5b10da39a1347559321baf13063",
"$distinct_id": "13793",
"$delete": ""
}
批处理请求
http://api.mixpanel.com/track/上的events端点和http://api.mixpanel.com/engage/上的配置文件更新端点都接受批量更新。要将一批消息发送到端点,应使用POST而不是GET请求。不是发送单个JSON对象作为数据查询参数,而是发送一个base64编码的JSON对象列表,作为应用程序/x-www-form-urlencoded POST请求主体的数据参数。
// Here's a list of events
[
{
"event": "Signed Up",
"properties": {
"distinct_id": "13793",
"token": "e3bc4100330c35722740fb8c6f5abddc",
"Referred By": "Friend",
"time": 1371002000
}
},
{
"event": "Uploaded Photo",
"properties": {
"distinct_id": "13793",
"token": "e3bc4100330c35722740fb8c6f5abddc",
"Topic": "Vacation",
"time": 1371002104
}
}
]
Base64编码后,该列表变为:
Ww0KICAgIHsNCiAgICAgICAgImV2ZW50IjogIlNpZ25lZCBVcCIsDQogICAgICAgICJwcm9wZXJ0aWVzIjogew0KICAgICAgICAgICAgImRpc3RpbmN0X2lkIjogIjEzNzkzIiwNCiAgICAgICAgICAgICJ0b2tlbiI6ICJlM2JjNDEwMDMzMGMzNTcyMjc0MGZiOGM2ZjVhYmRkYyIsDQogICAgICAgICAgICAiUmVmZXJyZWQgQnkiOiAiRnJpZW5kIiwNCiAgICAgICAgICAgICJ0aW1lIjogMTM3MTAwMjAwMA0KICAgICAgICB9DQogICAgfSwNCiAgICB7DQogICAgICAgICAiZXZlbnQiOiAiVXBsb2FkZWQgUGhvdG8iLA0KICAgICAgICAgICJwcm9wZXJ0aWVzIjogew0KICAgICAgICAgICAgICAiZGlzdGluY3RfaWQiOiAiMTM3OTMiLA0KICAgICAgICAgICAgICAidG9rZW4iOiAiZTNiYzQxMDAzMzBjMzU3MjI3NDBmYjhjNmY1YWJkZGMiLA0KICAgICAgICAgICAgICAiVG9waWMiOiAiVmFjYXRpb24iLA0KICAgICAgICAgICAgICAidGltZSI6IDEzNzEwMDIxMDQNCiAgICAgICAgICB9DQogICAgfQ0KXQ==
因此,将事件作为批处理发送的POST请求的主体为:
data=Ww0KICAgIHsNCiAgICAgICAgImV2ZW50IjogIlNpZ25lZCBVcCIsDQogICAgICAgICJwcm9wZXJ0aWVzIjogew0KICAgICAgICAgICAgImRpc3RpbmN0X2lkIjogIjEzNzkzIiwNCiAgICAgICAgICAgICJ0b2tlbiI6ICJlM2JjNDEwMDMzMGMzNTcyMjc0MGZiOGM2ZjVhYmRkYyIsDQogICAgICAgICAgICAiUmVmZXJyZWQgQnkiOiAiRnJpZW5kIiwNCiAgICAgICAgICAgICJ0aW1lIjogMTM3MTAwMjAwMA0KICAgICAgICB9DQogICAgfSwNCiAgICB7DQogICAgICAgICAiZXZlbnQiOiAiVXBsb2FkZWQgUGhvdG8iLA0KICAgICAgICAgICJwcm9wZXJ0aWVzIjogew0KICAgICAgICAgICAgICAiZGlzdGluY3RfaWQiOiAiMTM3OTMiLA0KICAgICAgICAgICAgICAidG9rZW4iOiAiZTNiYzQxMDAzMzBjMzU3MjI3NDBmYjhjNmY1YWJkZGMiLA0KICAgICAgICAgICAgICAiVG9waWMiOiAiVmFjYXRpb24iLA0KICAgICAgICAgICAgICAidGltZSI6IDEzNzEwMDIxMDQNCiAgICAgICAgICB9DQogICAgfQ0KXQ==
两个端点将在单个批次中接受最多50条消息。通常,批处理请求将具有与事件相关联的"time“属性,或者与配置文件更新相关联的"$time”属性。
发布于 2019-05-27 17:13:55
pip install mixpanel-api
此脚本将删除自2019年1月1日以来未见的任何个人资料:
from mixpanel_api import Mixpanel
mixpanel = Mixpanel('MIXPANEL_SECRET', token='MIXPANEL_TOKEN')
deleted_count = mixpanel.people_delete(query_params={ 'selector' : 'user["$last_seen"]<"2019-01-01T00:00:00"'})
print(deleted_count)
将MIXPANEL_SECRET和MIXPANEL_TOKEN替换为您自己的项目令牌。
https://stackoverflow.com/questions/19049621
复制相似问题