Почему «chrome.runtime.onInstalled» запускается без новых установок?Срабатывает событие «onInstalled» без новых установок?

#javascript #google-chrome-extension #google-analytics

#javascript #google-chrome-extension #google-analytics

Вопрос:

У меня проблема с моим расширением chrome analytics. Я пытался искать похожие вопросы, но не нашел никого с подобной проблемой.

Событие onInstalled в моем коде запускается без получения новых установок. Ни моя аналитика (которая отслеживает URL-адрес «track_install /»), ни аналитика Chrome Web Store не показывают такого количества новых установок. Мы говорим о более чем 10-кратной разнице в количестве новых установок в CWS или analytics по сравнению с количеством запусков onInstalled, и в моем случае такое поведение сохраняется в течение нескольких месяцев.

Кто-нибудь еще сталкивался с таким поведением?

Вот как выглядит мой код:

 chrome.runtime.onInstalled.addListener(function(details){
    if(details.reason == "install"){
        _gaq.push(['_trackEvent', 'install', 'extension installed']);
        setUninstallUrl();
    }
}
  

Комментарии:

1. onInstalled : «Срабатывает при первой установке расширения, при обновлении расширения до новой версии и при обновлении Chrome до новой версии».

2. @Andreas насколько я знаю, указание «details.reason==’install'» ограничивает его только установками?

3. Это не может произойти без фактического установки расширения. Это было бы ошибкой в Chrome. Я думаю, что это ошибка в статистике CWS, поскольку недавно я видел несколько отчетов, в которых говорится, что статистика заморожена на недели или даже дольше.

4. Я думаю, что это проблема с событием. Как я упоминал, разница превышает 10 раз, и если хотя бы четверть от этого числа запущенных событий oninstalled была установками, это будет отражено в еженедельных активных пользователях. Кроме того, мое расширение является платным, поэтому новые установки также отражаются в платежах. Очевидно, что это событие запускается по какой-то причине, которую я не могу понять

5. Тогда это может быть только ошибка в браузере или пользователи фактически переустанавливают расширение.

Ответ №1:

Редактировать: Doh! Я только что увидел, что это было в 2019 году. Неважно. Однако мне любопытно, как вы это решили.

Я довольно новичок в javascript. Но я нашел этот пример здесь

 chrome.runtime.onInstalled.addListener((reason) => {
    if (reason === chrome.runtime.OnInstalledReason.INSTALL) {
      chrome.tabs.create({
        url: 'onboarding.html'
      });
    }
  });
  

Я не понимаю, почему ваш код будет работать, но мне кажется странным, что вы можете получать какие-либо данные из details.reason . Не уверен, как возвращается перечисление.

Еще одно не очень заметное отличие заключается в том, что === в моем примере, в то время как вы используете == . В моем ограниченном понимании тип должен быть одинаковым, и это не имеет значения.

В любом случае, я думаю, я не смогу сильно помочь. Я надеюсь, вы в состоянии разобраться в этом.