Mixpanel - массовое удаление старых пользователей

Я собираюсь перейти к следующему плану в Mixpanel, поскольку у меня слишком много людей, и я хотел бы сначала удалить некоторых старых пользователей.

Есть ли простой способ / скрипт / api для массового удаления старых пользователей?


person henry.oswald    schedule 27.09.2013    source источник


Ответы (4)


Я написал два сценария, которые могут пригодиться; mixpanel-entertainment-query и mixpanel-Engagement-post.

Используя первый скрипт (запрос), вы можете запросить данные о людях и получить список профилей, например все пользователи, у которых для $ last_seen установлена ​​дата старше X месяцев.

Используя второй сценарий (сообщение), вы можете выполнять действия с этими профилями в пакетном режиме, например, удалять их. Смотрите в README пример того, как выполнить пакетное удаление .

person stpe    schedule 04.05.2015

Да, есть. Просматривая спецификацию HTTP, вы обнаружите следующее.

$ удалить

string Безвозвратно удалить профиль из Mixpanel вместе со всеми его свойствами. Значение игнорируется - профиль определяется по идентификатору $ independent_id из самого запроса.

// This removes the user 13793 from Mixpanel
{
    "$token": "36ada5b10da39a1347559321baf13063",
    "$distinct_id": "13793",
    "$delete": ""
}

Пакетные запросы

И конечная точка событий в http://api.mixpanel.com/track/, и конечная точка обновления профиля на http://api.mixpanel.com/engage/ принимайте пакетные обновления. Чтобы отправить пакет сообщений в конечную точку, вы должны использовать POST вместо запроса GET. Вместо отправки одного объекта JSON в качестве параметра запроса данных отправьте список объектов JSON в кодировке base64 в качестве параметра данных тела запроса POST application / x-www-form-urlencoded.

// 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», связанный с обновлениями профиля.

person MyGGaN    schedule 27.02.2014

Использование модуля Python Mixpanel-api

pip install mixpanel-api 

Этот скрипт удалит любой профиль, который не просматривался с 1 января 2019 года:

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 собственными токенами проекта.

person Ishai Jaffe    schedule 27.05.2019

Установите Mixpanel Python API (Нажмите здесь)

pip install mixpanel-api 

Создайте файл python: delete_people.py, скопируйте и вставьте код ниже и внесите изменения в соответствии с конфигурацией вашего проекта, то есть секретом, токеном, параметрами фильтра и т. Д.

from mixpanel_api import Mixpanel
from datetime import datetime
now = datetime.now()
current_time = now.strftime("%Y_%m_%d_%H_%M_%S")
if __name__ == '__main__':
    #Mixpanel Project :     
    credentials = {
    'API_secret': '<Your API Secret>',
    'token': '<Your API Token>',
    }
    # first we are going to make a Mixpanel object instance
    mlive = Mixpanel(credentials['API_secret'])

    # Mixpanel object with token to delete people
    ilive = Mixpanel(credentials['API_secret'],credentials['token'])

    #Prepare parameters for delete condition
    #<filter_by_cohort_here> - Get from mixpanel explore UI, from engage api xhr call (https://mixpanel.com/api/2.0/engage)
    parameters = {'filter_by_cohort':'<filter_by_cohort_here>','include_all_users':'true','limit':0}

    # Backup data before deleting
    print("\n Creating backup of data\n")
    mlive.export_people('backup_people_'+current_time+'.json', parameters)

    # Delete people using parameters filter
    print("\n Backup Completed! Deleting Data\n")
    ilive.people_delete(query_params=parameters)

    print("\n Data Deleted Successfully\n")

Запустите команду ниже с терминала

python delete_people.py

Примечание: метод people_delete API mixpanel автоматически создаст файл backup_timestamp.json в том же каталоге, в котором вы поместили этот скрипт

person Rahul Thakkar    schedule 26.11.2019