Отслеживание Omniture и JQuery - PullRequest
5 голосов
/ 17 ноября 2011

Я создал несколько веб-сайтов с контентом, загружаемым с помощью jQuery и CSS, вызывающих контейнеры #div.Кто-нибудь знает способ использования кода отслеживания Omniture Site Catalyst при создании этих типов одностраничных сайтов?Возможный?

Ранее я использовал Omniture с более традиционными html-сайтами, вставив нижеприведенный кусок трудно читаемого кода, предоставленного программным обеспечением.В этом случае кажется, что он отслеживает все .html-страницы.

       <!-- SiteCatalyst Code version: H.17.
Copyright 1997-2008 Omniture, Inc. More info available at
http://www.omniture.com -->
<script language="JavaScript" type="text/javascript" src="http://www.urlofsite.com/js/s_code.js"></script>
<script language="JavaScript" type="text/javascript"><!--
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code=s.t();if(s_code)document.write(s_code)//--></script>
<script language="JavaScript" type="text/javascript"><!--
if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
//--></script><noscript><a href="http://www.omniture.com" title="Web Analytics"><img
src="http://code.urlofsite.com/b/ss/ranhrollup/1/H.17--NS/0"
height="1" width="1" border="0" alt="" /></a></noscript><!--/DO NOT REMOVE/-->

<!-- End SiteCatalyst code version: H.17. -->
</body>
</html>

Есть ли в любом случае это разбить и создать несколько строк Javascript с помощью операторов if, которые применяют код отслеживания кспецифичные #div#?

Обновление:

Я говорил со специалистом, и он заявил, что вы можете добавить дополнительные st ()вызывает в событиях onClick все, что вы хотите отслеживать в качестве дополнительного просмотра страницы.Например, у вас есть следующий обработчик событий щелчка, настроенный для ссылки «Книги»

$('a.manned-flight').click(function() {
  $('html, body').animate({
  scrollTop: 1250
}, 1000, function() {
  parallaxScroll(); // Callback is required for iOS
});
  return false;
});

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

$('a.manned-flight').click(function() {
  s.pageName = "www.urlofwebsite.com:Books";
  s.t();
  $('html, body').animate({
    scrollTop: 1250
  }, 1000, function() {
    parallaxScroll(); // Callback is required for iOS
  });
  return false;
});

Но с учетом того, насколько велик сайт и сколько областей контента я должен определить, это кажется непрактичным подходом и несколько неуклюжим, мудрым кодом.Есть ли способ сделать это с массивом Javascript?

Ответы [ 2 ]

5 голосов
/ 20 ноября 2011

Много месяцев назад мне пришлось настроить аналитический инструмент Omniture для системы Web CMS, в частности для продуктов наших компаний и компонентов корзины покупок. Код был включен на каждой странице в шаблоне нашего сайта (т.е. включает файл). Предполагая, что ваш сайт не является полностью статическим сайтом, вы можете сделать то же самое, поместив код в свой файл .js, шаблон, включаемый файл, главную страницу, представление (каким бы методом вы ни использовали повторное использование на всем сайте). Если я правильно помню, Omniture был непреклонен в том, чтобы иметь свой код именно перед закрывающим тегом тела. Как только код введен в действие, запишите некоторый javascript для назначения значений определенным переменным, которые будут использоваться для установки соответствующих значений в коде Omniture. Например, если случайно на вашей странице создается хороший заголовок SEO, вы можете извлечь значение из заголовка, которое будет использоваться для имени страницы Omniture. Это всего лишь пример.

С другой стороны, если ваш сайт статический, ваши варианты не так просты. Вам было бы лучше, если бы вы имели контроль над тем, как генерировались ваши div. Под этим я подразумеваю, что если бы вы могли возвращать данные в свои div обычным способом, вы можете сгенерировать соответствующую информацию для ваших переменных Omniture, используя javascript или вашу любимую библиотеку javascript (например, jQuery). Более того, если у вас есть полный контроль над тем, как генерируется HTML, вы можете добавить определенный класс, за которым следует следить, как в случае с вашим a.manned-flight. Однако я бы искал что-то более общее для всех типов кликов.

Как я уже сказал, если у вас есть контроль над данными, которые будут отображаться, вам будет проще извлечь данные из отображенного HTML. В противном случае будет сложнее предоставить значимую информацию, необходимую Omniture. Надеюсь, это поможет.

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

<div class="product-item">
    <input class='item-title' type='hidden' value='Book Title #1 Specific Page Name'/>
    <input class='other-stuff-for-analytics' type='hidden' value='More stuff here'/>
    <h3>Book Title #1</h3>
    <p>Description of Book Title #1 and some junk...</p>
</div>
<div class="product-item">
    <input class='item-title' type='hidden' value='Book Title #2 Specific Page Name'/>
    <input class='other-stuff-for-analytics' type='hidden' value='More stuff here'/>
    <h3>Book Title #2</h3>
    <p>Description of Book Title #2 and some junk...</p>
</div>
<div class="product-item">
    <input class='item-title' type='hidden' value='Book Title #3 Specific Page Name'/>
    <input class='other-stuff-for-analytics' type='hidden' value='More stuff here'/>
    <h3>Book Title #3</h3>
    <p>Description of Book Title #3 and some junk...</p>
</div>

<!-- The code below could be in your template/include file/master page/view/ .js file -->
<script>
    $('div.product-item').click(function () {
        var analyticsPageName = "";
        /* Possibly pull the value from hidden input  */
        analyticsPageName = $(this).children('input.item-title').val();

        /* OR Pull the information from the block of HTML that has the page title */
        analyticsPageName = $(this).children('h3').text();

        // ---OR---
        //whatever else you need to do to scrape your HTML
        //to get the information to plug into a variable

        s.pageName = analyticsPageName;
        s.t();
        $('html, body').animate({
            scrollTop: 1250
        }, 1000, function () {
            parallaxScroll(); // Callback is required for iOS
        });
        return false;
    });
</script>
0 голосов
/ 22 декабря 2011

Я думаю, что в Jquery есть библиотека плагинов jquery.address, которая реализует своего рода автоматическое отслеживание действий на основе JQuery.Эта библиотека изначально настроена для Google Analytics , но в прошлом я также добавлял код Omniture SiteCatalyst.

Вы можете попробовать это.

...