Векторная авторегрессионная оценка в MATLAB

Это февраль 2017 года, и нет необходимости в дальнейшем редактировать analytics.js, ни для библиотеки, ни для плагина, или, по крайней мере, я не нуждаюсь в них. Многие вещи, которые были сказаны в прошлые годы, устарели или просто устарели, так что вот мое современное всестороннее руководство.

1. Файл config.xml

В вашем файле config.xml вы должны разрешить запрос на межсайтовый сайт:

2. HTML

В вашем метатеге CSP, если вы его захотите, вы также должны разрешить звонки в Google. Это может выглядеть так:

3. Javascript

Вот прокомментированный код для webapp, который может запускаться как в браузере, так и в комплекте с программой Cordova. Вы можете игнорировать блок else, если вам не нужен браузер.

// the default GA code, nothing to change
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

var fields = {
  // note: you can use a single tracking id for both the app and the website,
  // don't worry it won't mix the data. More about this in the 3rd section
  trackingId: 'UA-XXXXXXXX-Y'
};

// if we are in the app (the protocol will be file://)
if(document.URL.indexOf('http://') !== 0){

  // we store and provide the clientId ourselves in localstorage since there are no
  // cookies in Cordova
  fields.clientId = localStorage.getItem('ga:clientId');
  // disable GA's cookie storage functions
  fields.storage = 'none';

  ga('create', fields);

  // prevent tasks that would abort tracking
  ga('set', {
    // don't abort if the protocol is not http(s)
    checkProtocolTask: null,
    // don't expect cookies to be enabled
    checkStorageTask: null
  });

  // a callback function to get the clientId and store it ourselves
  ga(function(tracker){
    localStorage.setItem('ga:clientId', tracker.get('clientId'));
  });

  // send a screenview event
  ga('send', {
    // these are the three required properties, check GA's doc for the optional ones
    hitType: 'screenview',
    // you can edit these two values as you wish
    screenName: '/index.html',
    appName: 'YourAppName'
  });
}
// if we are in a browser
else {

  ga('create', fields);

  // send a pageview event
  ga('send', {
    // this is required, there are optional properties too if you want them
    hitType: 'pageview'
  });
}

3. Ваша учетная запись GA

  • Чтобы отслеживать трафик мобильного приложения, создайте представление типа App.

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

  • Применить настраиваемый фильтр с именем «Приложение? => Да» на созданном представлении, чтобы он был только показать хиты screenview. Существует официальное руководство здесь
  • Затем, чтобы отслеживать трафик с веб-сайта, создайте второй вид типа Website. Примените к нему специальный фильтр «Приложение? => Нет».
  • Если вы хотите, чтобы объединенное представление вашего трафика в сети и в приложении, создайте третий вид типа App. По умолчанию (без фильтра) он покажет все данные.

Дополнительные примечания

  • Теперь все идет по https, больше нет необходимости в протоколе http ваши и CSP
  • Имейте в виду, что запись *.google-analytics.com в CSP не будет работать. Хотя эта политика работает в Chrome (56), это не в Кордове (5.6.0)
  • . Аналитика Google не требует каких-либо разрешений приложений, таких как ACCESS_NETWORK_STATE или ACCESS_WIFI_STATE, как я читал в другом месте
  • Все это было протестировано с помощью приложения для Android (я ожидаю, что он будет работать и в приложениях iOS), с установленным плагином Crosswalk

1
задан Tony Chivers 17 January 2019 в 15:08
поделиться

1 ответ

Я не уверен насчет определений, используемых оператором Vec , продуктом Кронекера и матрицей тождеств, определенной в главе:

vec_beta=reshape(beta,[],1); % Reshape one vector column at time
kron_AB=kron(A,B);   %Kronecker Tensor Product
I_k=eye(k);          %kxk Identity matrix

Но да, вы должны сделать:

cov_vec_beta=kron(S_alpha,inv(X'*X))
0
ответ дан Brethlosze 17 January 2019 в 15:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: