2013-11-16 3 views
12

Это мой main.js файлPhoneGap Google Analytics не отслеживает на всех

/* Google Analytics */ 
(function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + 
     '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
})(); 
var _gaq = _gaq || []; 

function _track(page){ 
    try { 
     _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']); /* But with my correct one */ 
     console.log('google analytics:' + page); 
     if (page != '') { 
      _gaq.push(['_trackPageview', 'Mobile: '+page]); 
     } else { 
      _gaq.push(['_trackPageview'],'Mobile'); 
     } 
    } catch(err) { 
     console.log(err); 
    } 
} 

Так Каждый раз, когда я хочу, чтобы отслеживать любую страницу, я использую:

_track('/top-rated/');

И я могу видеть этот журнал :

google analytics: /top-rated/

Но я не могу видеть журнал на странице в режиме реального времени Google Analytics

Кстати у меня в config.xml

<access origin=".*"/> 
+0

http://www.blastam.com/blog/index.php/2013/07/ga-universal-analytics-phonegap-mobile-apps/ –

ответ

13

Причина, по которой GA не работает на устройстве, заключается в том, что Google Analytics ожидает, что протокол будет HTTP или HTTPS, но при загрузке приложения протокол является файлом: ///, поскольку вы открываете файл с устройства в WebView ,

В таком случае ГА не разрешает хранить файлы cookie & выключается. Также есть новая версия ga.js, называемая analytics.js (также называемая Universal Analytics), которая в основном представляет собой расширенную версию. Вы можете найти разницу между версиями здесь - http://www.cardinalpath.com/which-version-of-google-analytics-is-right-for-you-determine-whether-you-should-upgrade-to-universal-analytics/

Если вы хотите продолжать использовать ga.js, то вы можете использовать это -
https://github.com/ggendre/GALocalStorage
Это проект GitHub, который разрешает файл: /// проблемы ,

Если вы хотели бы использовать Universal Analytics, то вы можете использовать это -
http://www.blastam.com/blog/index.php/2013/07/ga-universal-analytics-phonegap-mobile-apps/
Это руководство, чтобы сделать его совместимым с PhoneGap

+0

Большое вам спасибо. Ребята, просто следуйте блоге блога. Это будет работать. И не забывайте, что вам еще нужно сделать шаг 4! –

2

Вы можете использовать плагин для Cordova, что делает жизнь легко ..

http://www.raymondcamden.com/index.cfm/2013/3/28/Google-Analytics-and-PhoneGap

+0

Привет @Purus, Спасибо, что написал здесь. Так что я пытаюсь сделать несезе? нет трудозатрат без плагина? –

+0

По моему пониманию, это тоже должно работать. Но если есть проблемы, чтобы сделать вашу жизнь легкой, почему бы нам не попробовать. Также вы не можете видеть информацию о отслеживании в реальном времени, так как это будет 24-часовая задержка, чтобы начать отслеживание. – Purus

+0

как насчет того 24 часа этого 24 часа задержки? Я не понимаю –

3

С PhoneGap, вы открываете с файла URI, и, как правило, что наборы свойство origin - null, хотя это зависит от браузера. Это свойство необходимо указать для большинства веб-серверов, чтобы принять запрос, учитывая тот факт, что он возник из запроса AJAX, как в этом случае. Это также может быть проблемой с куки-файлами, что, вероятно, является проблемой.

В этом случае этот URL-адрес будет работать: https://github.com/ggendre/GALocalStorage. Чтобы заставить его работать, вы должны включить localstorage для Phonegap.

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

Чтобы преодолеть этот фактор, вы можете настроить веб-службу и изменить все веб-запросы в Google Analytics, чтобы указать на свой сервер, и вы можете проксировать эти запросы на серверы Google, чтобы преодолеть эту проблему.

В вашем сервере, вам нужно это набор свойств, чтобы получить доступ с помощью PhoneGap:

Access-Control-Allow-Origin: * 

Вы могли бы использовать что-то вроде Node.js и узел-HTTP-прокси доступны из менеджера пакетов НПМ, который должно быть легко, учитывая, что это все javascript. После этого вам просто нужно преобразовать все ссылки на Google Analytics Domain, чтобы указать на свой веб-сервер внутри локальной копии файла Google Analytics.

Все, что вам нужно сделать, это изменить доменную часть URL-адресов в файле javascript в Google Analytics, чтобы указать на ваш сервер и принять этот домен и поместить его в прокси-сервер Node.JS, который может быть не таким сложным, как большинство людей думать.

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

Смежные вопросы