Corrigindo nomes de eventos incorretos no Mixpanel

Você teve um dia ruim e acidentalmente começou a rastrear eventos com nome errado.

Ontem você rastreou sua página de destino com este
javascript mixpanel.track('Landing Page Visit');

Hoje você mudou acidentalmente o nome do evento:
javascript mixpanel.track('Home Page Visit');

Como você pode renomear Visita à página inicial para Visita à página inicial?

Tenho duas novidades para você:

O ruim: você não pode alterar os dados do mixpanel depois de enviá-los

O bom: você pode exportar os eventos com o nome errado, renomear manualmente e importar com o nome correto.

Renomeando os dados

O que você está fazendo é basicamente reproduzir os eventos já enviados, mas com um nome diferente. Os eventos antigos com o nome de visita à página inicial permanecerão lá, mas pelo menos a visita à página inicial estará correta.

O código

Este script Ruby simples usa API de importação e exportação do Mixpanel. Tive que usar duas bibliotecas cliente, mixpanel_client e mixpanel . Leia o resto do artigo antes de usá-lo.
Você deve editar api_key, api_secret, nome do evento antigo, nome do novo evento, token, from_date, to_date e add_zone

config = {api_key: 'XX', api_secret: 'YY'}
client
= Mixpanel::Client.new(config)

data
= client.request('export', {
event
: ['Home Page Visit'],
from_date
: '2013-10-13',
to_date
: '2013-10-13'
})

def rename(data, old_name, new_name)
data
= data.map do |row|
# make sure we have only old_name events
if row['event'] != old_name
raise
"The data contains another event name #{row['event']}"
end
row
['event'] = new_name
row

end
data

end

rename
(data, 'Home Page Visit', 'Landing Page Visit')

@mixpanel = Mixpanel::Tracker.new 'token', api_key: 'XX'

add_zone
= 3600 * 7 # 7 hours

data
.each.with_index do |row, i|
puts
"Importing row #{i} #{row['event']}"
puts
@mixpanel.import row['event'], row['properties'].merge('time' => (row['properties']['time'].to_i + add_zone).to_s)
end

Verifique os fusos horários

Cuidado com os fusos horários. Você pode definir o fuso horário do projeto, mas não é recomendado alterar o fuso horário do Mixpanel . O que significa que não há informações de fuso horário em eventos anteriores, eles são armazenados como horários locais.

Cenário

No meu caso, eu tinha o fuso horário dos EUA / Pacífico nas configurações do projeto Mixpanel. No entanto, os eventos antigos estavam no fuso horário UTC porque quando exportados e impressos como UTC, os horários eram iguais aos horários na IU do Mixpanel. Você pode dar uma olhada na documentação de exportação do Mixpanel, mas acho que há uma frase falsa. Os timestamps estão no tempo do projeto, mas são expressos como códigos de tempo Unix . Independentemente do fuso horário do projeto, os carimbos de data / hora exportados eram os mesmos – UTC. O que sustentava o fato de os horários serem armazenados como horários locais, sem fuso horário.

Quando importei dados com UTC para o Mixpanel com horário dos EUA / Pacífico, ele converteu meu horário para o horário dos EUA / Pacífico antes de salvar. O que resultou em um turno de 7 horas. Não era isso que eu queria.

Portanto, eu compensei o turno adicionando 7 horas ao meu horário UTC antes de importar. Como o horário dos EUA / Pacífico estava no fuso horário de -7 horas, o horário salvo foi exatamente o que importei.

Observe que não pude alterar o horário dos EUA / Pacífico nas configurações do projeto para UTC antes da importação porque os novos eventos que estavam sendo rastreados seriam mostrados com 7 horas de deslocamento em relação aos eventos anteriores.

Para complicar ainda mais, observe o horário de verão -> horário padrão (inverno). Em um país, eles mudam o horário em 1 hora, mas em outro país eles mudam o horário uma semana depois. O Mixpanel sabe que, portanto, quando alguns dados de evento são importados antes da data X, os outros dados importados após a data X serão salvos com deslocamento de 1 hora.

Experimente em uma conta de teste com o mesmo fuso horário

Primeiro execute o código com uma chave de API diferente para se certificar de que funciona. Olhe a seção de Fórmulas na IU do Mixpanel e compare os números de eventos antigos e novos e certifique-se de que os tempos estejam alinhados em intervalos de horas. por exemplo, tanto o evento antigo quanto o novo foram rastreados 11 vezes às 18h. Agora você pode executá-lo na conta Mixpanel desejada.

Ocultar dados de eventos antigos

É claro que os dados do evento (visita à página inicial) permanecerão no mixpanel, mas você oculta o evento em suas configurações.

Conclusão

Teste e teste. Não estou 100% certo de como os fusos horários do Mixpanel funcionam, então certifique-se de que funcione na sua conta de teste. Jogar com dados brutos no Mixpanel pode ser um pouco perigoso, especialmente nos fusos horários, já que não há como voltar atrás.
Cenário