2

Любые идеи о том, как реализовать аналитику Mixpanel через segment.io, которая может отслеживать все производственные и непроизводственные среды.Файл конфигурации реализации Segment.io и mixpanel для производственных и непроизводственных сред?

На данный момент я создал 3 разных проекта (dev, постановка и производство) на обеих панелях: & segment.io. И трассировать их. Но когда я меняю код dev и подталкиваю к постановке и получению, он перезаписывает основной код аналитики.

Я не использую ruby ​​.... Я использую javascript. Какие-либо предложения? Будет ли работать файл конфигурации, который заменяет токен?

ответ

1

Спасибо. Я провел некоторое исследование. У меня есть более простой способ реализовать это, если кто-то не знаком с файлами конфигурации или не имеет доступа к этим файлам.

У меня может быть условие if, которое я могу использовать при инициализации сегмента i/o.

var apikey; 
    if (window.location.host === "dev.xyz.com") { 
     apikey = <api_key>; 
    } else if (window.location.host === "staging.xyz.com") { 
     apikey = <api_key>; 
    } else if (window.location.host === "prod.com") { 
     apikey = <api_key>; 
    } 

    analytics.load(apikey); 

Заменить соответствующими api_keys из сегмента ввода-вывода. Это хорошо работает.

+0

Недостатком этого подхода является то, выставляет слишком много информации о вашей внутренней реализации населению. – Hady

0

Файл конфигурации, который заменяет токены, является идеальным решением.

Вы хотите сделать что-то подобное в Фрагмент кода JavaScript:

analytics.load("<%= config.segmentio.apiKey %>");

Где конфиг это параметры DEV от параметров DEV машина, и постановка/Prod на постановку и прод.

0

Я бы предположил, что в качестве части вашего шага сборки вы запекаете в переменной конфигурации, которая идентифицирует среду, в которой работает ваш код внутри - например. ['Dev', 'Staging', 'Production'].

Вы бы тогда сделать что-то подобное тому, что @monical предложил за исключением без использования URL-адреса в соединении:

var token; 

switch(environment) { 
    case 'Staging': 
     token = 'TOKEN_STAGE'; 
     break; 
    case 'Production': 
     token = 'TOKEN_PROD'; 
     break; 
    default: 
     token = 'TOKEN_DEV'; 
} 

analytics.load(token);