Интеграция Google Analytics в приложение GWT

Это должно быть полностью просто, но я не могу получить его работа независимо от того, что я пробую. Я пытаюсь использовать Google Analytics с приложением GWT. Из того, что я понял, существует два способа сделать это:

Сначала синхронно, путем введения отслеживания кода в конце страницы HTML раздела <head> и затем вызова этого метода:

public static native void recordAnalyticsHit(String pageName) /*-{
    pageTracker._trackPageview(pageName);
}-*/;

Второй является асинхронным, путем введения отслеживания кода сразу после <тела> тег и затем вызов этого метода:

public static native void recordAnalyticsHit(String pageName) /*-{
    _gaq.push(['_trackPageview(' + pageName + ')']);
}-*/;

При выполнении каждого из тех методов, однако, я получаю это исключения в размещенном режиме:

[ERROR] [myproject] Uncaught exception escaped
com.google.gwt.core.client.JavaScriptException: (ReferenceError): pageTracker is not defined

[ERROR] [myproject] Uncaught exception escaped
com.google.gwt.core.client.JavaScriptException: (ReferenceError): _gaq is not defined

При наблюдении сайта в Firebug я вижу, что ga.js загружается, но это об этом.

Кто-либо получал Аналитику, работающую с GWT? Кроме того, делает _gaq, принимают название страницы как trackPageview параметр, начиная со всех примеров, я видел использование этот вызов:

_gaq.push(['_trackPageview()']);

(Конечно, который также не работает на меня.)

16
задан Domchi 16 March 2010 в 20:18
поделиться

1 ответ

Это всего лишь предположение, но вам, вероятно, нужно ссылаться на главную страницу (ту, куда был включен JS-код Google Analytics) через $wnd в JSNI, например, так:

public static native void recordAnalyticsHit(String pageName) /*-{
    $wnd.pageTracker._trackPageview(pageName);
}-*/;

Код JSNI (и вообще код GWT) запускается в iframe, чтобы сохранить чистоту пространства имен, поэтому вам нужна ссылка $wnd на главное окно.

23
ответ дан 30 November 2019 в 21:53
поделиться
Другие вопросы по тегам:

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