From time to time, I receive ques­tions from clients ask­ing how to track some­thing that doesn’t fall under the gen­eral cat­e­gory of “page view”—a link, a but­ton, an image, a form interaction—something that can’t eas­ily be cap­tured sim­ply by tag­ging a page with Site­Cat­a­lyst code, even using cus­tom vari­ables. After all, when the page loads, you don’t know what link users will click, what but­tons they will press, or what val­ues they will enter into forms.

Nearly always, these solu­tions involve a fea­ture built in to Site­Cat­a­lyst JavaScript code called cus­tom links (also known as Cus­tom Link Track­ing, or Link Track­ing for short). For those not famil­iar with the con­cept, Link Track­ing allows you to pass data into Site­Cat­a­lyst prac­ti­cally when­ever you want—not just when the page loads—opening the door to track link clicks, image loads, form inter­ac­tions, and nearly any­thing else that hap­pens on your site. Ever.

If you are an expe­ri­enced Site­Cat­a­lyst user, you may already be famil­iar with a form of Cus­tom Link Track­ing; file down­loads and exit links are typ­i­cally tracked auto­mat­i­cally when Site­Cat­a­lyst code is imple­mented on your site. I’ll explain in more detail later how these fea­tures work; for now, suf­fice it to say that they lever­age the same basic func­tion­al­ity that we’re about to discuss.

Why Cus­tom Link Tracking?

It almost goes with­out say­ing that every web site is a dif­fer­ent ani­mal. How­ever, this point is worth mak­ing because it is the exact rea­son why Cus­tom Link Track­ing can be so pow­er­ful. If every site fol­lowed the same basic tem­plate, and if each orga­ni­za­tion had the same KPIs and goals, then Site­Cat­a­lyst code would be able to antic­i­pate what links and other user actions you would want to track, and would pass along the data accordingly.

You may work on a lead gen­er­a­tion site, pass­ing users along to part­ner sites via links on your pages.

You may oper­ate a media site, with suc­cess being deter­mined in part by impres­sions and click-throughs of third-party advertisements.

Your site may be retail-oriented, serv­ing upsell rec­om­men­da­tions via a sleek AJAX-based over­lay on shop­ping cart pages.

Or your site may be some­thing com­pletely different.

In each of these cases, apply­ing Cus­tom Link Track­ing code to links, images, form fields, and other page ele­ments where you want to track some­thing can pro­vide the insight that page view data doesn’t. Note that “Link Track­ing” is some­thing of a mis­nomer; while track­ing link clicks is its pri­mary pur­pose, this fea­ture can be applied to nearly any­thing, and not just to links.

A great exam­ple of this is an AJAX-heavy site, which relies heav­ily on Link Track­ing because of one of the feature’s main advan­tages: while it is capa­ble of pass­ing nearly any type of Site­Cat­a­lyst data, there is one thing that it does not do. It does not count a page view. Sites that change the con­tent of a page with­out actu­ally load­ing a new page may not want to count a new page view every time the con­tent changes. For these sites, Cus­tom Link Track­ing is perfect—it will pass any­thing but a page view.

How Does Link Track­ing Work?

The nuts-and-bolts of imple­ment­ing Cus­tom Link Track­ing are actu­ally fairly sim­ple as JavaScript goes. They are explained ade­quately in our Link Track­ing white paper, avail­able from the Site­Cat­a­lyst online help site. If you find that you still have ques­tions about the tech­ni­cal aspects of Link Track­ing after read­ing that white paper, leave me a com­ment and I’ll do my best to address them.

The Link Track­ing code is typ­i­cally applied either

  1. directly in an JavaScript event han­dler (usu­ally onclick, but oth­ers work as well), or
  2. for more dynamic func­tion­al­ity, in a sep­a­rate func­tion called in an event handler.

Link Track­ing (includ­ing auto­matic down­load and exit Link Track­ing) is based on a func­tion built into the Site­Cat­a­lyst “s” object, called s.tl(). When called, s.tl() builds a Site­Cat­a­lyst image request con­tain­ing the Cus­tom Link Track­ing data that you choose to pass, along with data for any other vari­ables you’ve cho­sen to populate.

As an aside, for those of you with Action­Source expe­ri­ence, s.tl() is the JavaScript ver­sion of s.trackLink(). Their pur­pose and struc­ture is the same.

In the case of auto­matic down­load and exit Link Track­ing, when a page loads, Site­Cat­a­lyst inserts an s.tl() func­tion call into the onclick event han­dlers for any link where the href attribute

  1. ends in one of the exten­sions spec­i­fied in the s.linkDownloadFileTypes vari­ables (for file down­loads), or
  2. does not con­tain any of the strings spec­i­fied in the s.linkInternalFilters variable.

There are, essen­tially, three “types” of cus­tom links; you can spec­ify the type of link that you want to count when you make the s.tl() func­tion call. These types are:

Link Type Descrip­tion Des­ti­na­tion Report
o Other/General. This is listed first because it is the most com­mon choice. Used as an all-purpose option, or when­ever you know that you don’t want the action to be con­sid­ered a file down­load or an exit link. Site Con­tent > Links > Cus­tom Links
d File Down­load. Use this when you want the action to be con­sid­ered a file down­load (e.g. an HTML page that con­tains the text of a length piece of documentation—it isn’t going to be tracked as a file down­load auto­mat­i­cally, but for your pur­poses it may be equiv­a­lent to down­load­ing the PDF). Site Con­tent > Links > File Downloads
e Exit Link. Set­ting this type will cause the action to be con­sid­ered an exit link. Site Con­tent > Links > Cus­tom Links

The value in the “Link Type” col­umn above goes into the sec­ond argu­ment in the s.tl() func­tion call to deter­mine the type of link to count, which also deter­mines which report that will receive the data gen­er­ated by the given link click (or other action).

A Few Things Every­one Should Know About Link Tracking

You can pass just about any­thing using Link Track­ing.
As I men­tioned above, there is really only one thing that Link Track­ing won’t do for you: count a page view (and may pass, but will not count, a page name). Any other cus­tom vari­able can be passed by lever­ag­ing the s.linkTrackVars and s.linkTrackEvents vari­ables explained in the online documentation.

Want to pass pur­chase data using cus­tom links? No prob­lem. On that final pur­chase but­ton, set s.linkTrackVars="events,products,purchaseID", set s.linkTrackEvents="purchase", set each of these vari­ables and events dynam­i­cally, call the s.tl() func­tion, and away you go.

Need to grab the user’s waist size when he/she clicks the “waist size” drop-down menu on your prod­uct view page? Piece of cake. The drop-down has an onchange event han­dler, so you can pass the waist size (or any­thing else, for that mat­ter) into a prop or eVar when­ever the drop-down selec­tion changes and fire off an s.tl() func­tion call. Voila. You know what per­cent­age of users is between a 32– and a 40-inch waist.

You have a sur­vey on your site, and you’re sick of los­ing out on data from par­tial responses? Pass the response to each ques­tion into a prop and tag the “Next” but­ton with Link Track­ing code. Some­thing like s.prop1="question 1:yes" or s.prop1="question1:no" for each of the ques­tions and pos­si­ble responses should do the trick. That way, when­ever some­one answers a ques­tion, you’ve got it recorded—even if he or she aban­dons the sur­vey halfway through.

Want to cap­ture an image load as a file down­load? Easy. When you’re putting Link Track­ing into the onload event han­dler in the image tag, just make sure to set the sec­ond argu­ment in s.tl() to a ‘d’ and you’re all set.

And I could keep going. As I said, if you aren’t sure how to cap­ture data that you need after read­ing this post and the avail­able doc­u­men­ta­tion, please leave me a com­ment and I’ll address it.

Cus­tom Link Track­ing does not count a page view.
I already men­tioned this, but it war­rants men­tion­ing again here. This means that you will not see any data in your Pages report due to Link Track­ing data. Your report suite page view totals will not change when cus­tom link data is passed. How­ever, Cus­tom Link Track­ing does count vis­its and vis­i­tors. Thus, it is pos­si­ble to have more vis­its than page views. I have seen this in rare cases for sites that rely very heav­ily on this feature.

You may some­times hear Omni­ture rep­re­sen­ta­tives refer to Link Track­ing image requests as “non-page view events.” Now you know why.

Cor­re­la­tion data is only avail­able when the two vari­ables in ques­tion were passed on the same image request.
What does this have to do with Link Track­ing? Occa­sion­ally, users will com­plain that when they go to a Cus­tom Traf­fic report and break down a value in the report by Pages, they get no data. My first ques­tion is always, “Are you pass­ing the prop data on a Link Track­ing image request?” If the answer is yes, then they’ve answered their own ques­tion. If the prop is pop­u­lated using Link Track­ing, then there is no page name value for that hit. Thus, the cor­re­la­tion doesn’t have any data for page name.

The workaround is to pass the page name into another prop on every cus­tom link image request, and then enable a cor­re­la­tion between the orig­i­nal prop and the new one stor­ing the page name.

If you are using Link Track­ing on some­thing other than a link, you’ll need to tweak s.tl() slightly.
The first argu­ment in the s.tl() func­tion call is set to “this” by default, with “this” refer­ring to the href attribute of the page ele­ment that trig­gered the s.tl() call. The only prob­lem with “this” in the con­text of non-links is that anchor tags (i.e. links) are typ­i­cally the only page ele­ments that have an href attribute. There­fore, if you are tag­ging a form field, a but­ton, an image, or any­thing that isn’t a true HTML link with Cus­tom Link Track­ing code, “this” will be null. Sim­ply change it to “true” and it should work just fine.

Cus­tom Links do count as server calls.
They can answer ques­tions that nor­mal page views can­not. At the same time, use them wisely.

Even if auto­matic down­load and exit link track­ing is work­ing fine, there may be cases where you should con­sider Cus­tom Link Track­ing for file down­loads and exit links.
In this post, I have already men­tioned and explained SiteCatalyst’s auto­matic file down­load and exit link track­ing mech­a­nism. This will track the URLs of your down­loaded files and exit links, but what if you want to pass addi­tional variables—props and eVars, or events—when these links are clicked? What if you want com­plete con­trol over the val­ues of these vari­ables when users down­load a file or exit your site? The auto­matic func­tion­al­ity is a great start, and, depend­ing on your busi­ness needs, it may be enough. How­ever, if you deter­mine that it isn’t enough, Cus­tom Link Track­ing is a great way to take the reins and get the most action­able data pos­si­ble regard­ing these user inter­ac­tions with your site.

You can­not debug Link Track­ing image requests using the JavaScript Debug­ger, so get famil­iar with a packet mon­i­tor.
I rec­om­mend Tam­per­Data for Fire­fox, HTTP­Watch for IE, or Charles for both. Each of these tools will allow you to fil­ter your HTTP requests to show only Site­Cat­a­lyst image requests by includ­ing only URLs con­tain­ing the string “/b/ss/”, which is a part of every Omni­ture request.

You can tell that you are look­ing at a Link Track­ing request if you see a “pe=” para­me­ter in the image request. It should be set to “lnk_”, fol­lowed by the let­ter that you chose in the sec­ond argu­ment of s.tl(), as described above.

The s.tl() func­tion involves a built-in 500 mil­lisec­ond delay for very good rea­son.
This delay is in place to allow the s.tl() func­tion to exe­cute before the next page loads, in cases where Link Track­ing is applied to links. If the next page loads before the image request has a chance to be sent, your data will not be tracked. Depend­ing on your imple­men­ta­tion, this 500 mil­lisec­ond delay may not be nec­es­sary. For instance, AJAX calls do not involve new page loads, so there is no threat of the browser mov­ing on to the next page before the Link Track­ing request is sent. To dis­able the delay, set the first argu­ment in s.tl() to “true,” as described in #4 above.

  • Alex

    Is a way to do there “non-page view events”(aka cus­tom link track­ing) if you are not using s_code.js? If one were to just add this “pe” vari­able to the omni­ture img request query params, would it not gen­er­ate a page view?

  • http://carnival.com melissa

    Hi,
    Where would the code be applied to in a link?

  • http://blogs.omniture.com/author/bgaines Ben Gaines

    Alex: Great ques­tion. If I under­stand cor­rectly, you want to “hard code” a cus­tom link request. This will work as you’ve sug­gested; add the “pe” para­me­ter to the image source query string, set to lnk_o, lnk_d, or lnk_e. You’ll want to include pev1 and pev2 para­me­ters as well. Set “pev1” to the URL of the page serv­ing the image and “pev2” to a friendly name of your choos­ing. All of this should be URL encoded. For example:

    http://yournamespace.112.2o7.net/b/ss/yourrsid/1/NS–H.19.4/s7918237484?pe=lnk_o&pev1=http%3A&2F%2Fwww.yoursite.com&pev2=my%20link

    This won’t count a page view and will be treated as a non-page view event, with the type being based on the value in the “pe” parameter.

  • http://blogs.omniture.com/author/bgaines Ben Gaines

    Melissa: I didn’t include this infor­ma­tion in the blog post to save space, since it’s doc­u­mented in our Link Track­ing white paper, but obvi­ously you’ve asked a very impor­tant ques­tion here. Typ­i­cally, this code is applied to the onClick event han­dler in a link. Tech­ni­cally, how­ever, it can be applied to any event han­dler. The white paper is full of great exam­ples of this. You can down­load it by log­ging in to Site­Cat­a­lyst and going to Help, then choos­ing Sup­port­ing Docs > White Papers from the left nav­i­ga­tion menu in the Help pop-up window.

  • http://www.howstuffworks.com Ben

    This con­cerns your last para­graph (about the 500ms delay). I am using a click event han­dler and for some requests (in Fire­fox only), I am get­ting an NS_LIB or NS_BINDING error. I am assum­ing that this is because the next page is exe­cuted before the return of the image. The delay built into s.tl() does now fire from within my event, so I cre­ated a 500ms delay. This fixes some prob­lems but not all. Most of the links that have prob­lems are from form posts or hrefs that pass a good chunk of data.

    Has any­one else expe­ri­enced this? Also, has any­one thought of using a call­back func­tion to s.tl() rather than a delay? With the action­source library, you can do this, but not the javascript library.

  • http://www.bjs.com Sid

    Hi,
    I have a page that has a log­i­cal name say ‘Maps’. Upon user action, an Ajax call is made and the orig­i­nal page is mostly trans­formed. The log­i­cal name is now say ‘Direc­tions’. How do I make Site­Cat­a­lyst aware of this new (log­i­cal) page and remem­ber its count even though the orig­i­nal page has not refreshed? It sounds like link track­ing tech­nique not work for me?
    Thx
    Sid

  • http://blogs.omniture.com/author/bgaines Ben Gaines

    Sid: You’re right. The s.tl() func­tion prob­a­bly isn’t what you want to use there. I sup­pose the answer to your ques­tion depends on whether you want to count a new page view when the page trans­for­ma­tion occurs. If so, then dur­ing the trans­for­ma­tion sim­ply set s.pageName=“Directions” and then make an s.t() func­tion call (with no argu­ments). This will pass another page view, with the new s.pageName value of “Directions.”

    If you do not want to count another page view, and sim­ply want to change the s.pageName value, you can do this by set­ting s.pageName=“Directions” but not call­ing s.t().

  • Andreas

    You can­not debug Link Track­ing image requests using the JavaScript Debug­ger, so get famil­iar with a packet mon­i­tor.“
    As long as you stay on the site, the debug­ger shows also s.tl calls. ;)

  • http://www.bjs.com Sid

    Thx Ben. That worked. I did want the ‘Direc­tions’ page to be counted like any other page.

  • http://homedepot.com Emily

    Hi Adam -

    On our site we only use the s.tl() func­tion when the link doesn’t load a new page (in Flash frag­ments, for instance). In most cases, rather, we pass a track­ing code via query string of the URL and cap­ture it in a cus­tom eVar. Since the eVar value can be passed in the same call as the next page load, does it make sense to avoid the s.tl() func­tion for track­ing links unless absolutely nec­es­sary? (Sav­ing you the extra server call, 1/2 sec delay, and the need to pass the page name on another prop?)

    Thanks!
    Em

  • http://www.ppc-advice.com Garry Przyk­lenk

    What if s.tl() calls DO gen­er­ate page views? What then?

    I was think­ing about using cus­tom events for par­tic­u­lar onclick and onload events instead of cus­tom links and pop­u­late a prop and evar at the same time, given there is extra value. How­ever, if I can fig­ure out why s.tl() gen­er­ates page views, I can post­pone all that.

    Regards,
    Garry

  • Sam

    Hi Ben,

    Thanks for the excel­lent articles!

    We are able to cap­ture page views and vis­its for a given page and also cap­tured clicks on links on the page using cus­tom link track­ing. Now, how do we go about report­ing click-through rate for the links which is = ( clicks on link / page views ) — please let me know how to go about doing the report­ing part.

    Thanks!

  • http://blogs.omniture.com/author/bgaines Ben Gaines

    Turns out I am behind on respond­ing to comments!

    Emily: Cus­tom links are prefer­able when the data you’re col­lect­ing is spe­cific to the indi­vid­ual link or there is a high like­li­hood of the user leav­ing before the next page loads. In the case you’ve described, I don’t see either of those being a fac­tor, and track­ing on the next page load is a com­pletely appro­pri­ate strategy.

  • http://blogs.omniture.com/author/bgaines Ben Gaines

    Garry: Hmmm… I’ve never heard of s.tl() calls gen­er­at­ing page views. Is it pos­si­ble that you have an s.t() call occur­ring at the same time as your cus­tom link call? A packet mon­i­tor would be help­ful in detect­ing this.

    If that isn’t the case, and you’re still see­ing page views result­ing from s.tl() calls, then I believe you’d want to dis­cuss with Client­Care as that is unex­pected to say the least. They’ll be able to help iso­late any issues in the imple­men­ta­tion that may be caus­ing this anom­aly in your reporting.

  • http://blogs.omniture.com/author/bgaines Ben Gaines

    Sam: There are a cou­ple of ways to track click-through rate on links tagged with cus­tom link track­ing code. One would be to pop­u­late an s.prop vari­able on all page views (using, say the page name as the value of the vari­able), and then also pop­u­late this prop on cus­tom link calls, using some sort of link ID or name unique to each link. Get your Account Man­ager to enable pathing on this prop, and then run Fall­out reports with the page name as the first “step” in the path, and the link name as the sec­ond step. This will show how many peo­ple did/did not click the link from the given page.

    The other way to do this is to com­pare data from two sep­a­rate reports — not some­thing I typ­i­cally advise — by look­ing at Instances in the Cus­tom Links report for the given links and com­par­ing that to the Page Views met­ric in the Pages report for the page con­tain­ing the links. Instances rep­re­sent “clicks” in the equa­tion you pro­vided, and page views are, of course, page views.

  • http://trip.com Abhi­lash

    Hi Ben, regard­ing your com­ment on 2009÷5÷18 @ 11:23 am
    I have the same prob­lem. Here is the flow of exe­cu­tion.
    On page load I am maing an s.t() call.
    I am call­ing a javascript func­tion when I click on a but­ton on the page.
    The java script func­tion is as fol­lows.
    var s=s_gi(s_account);
    s.events = “pur­chase”;
    s.product = “;id;1;1.0,”;
    s.tl();
    window.open(“url”,“mywindow”);

    When I ana­lyzed through a packet mon­i­tor I found the fol­low­ing.
    On page load: events = “event2”; (WHich is for Page view)
    On invok­ing the javascript func­tion above: events=“purchase,event2”

    I think, it is the “event2” being sent to Site Cat­a­lyst adding my page view count when I invoke the above java script.
    Since I open a new win­dow (exter­nal page) through the above java script func­tion. I need not con­sider that ans a page view for my land­ing page.
    Thanks for your help Ben.
    Abhilash

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Abhi­lash: I’d need to check out your imple­men­ta­tion to know for sure, but it sounds like you might have set s.linkTrackEvents=“event2” in your core JavaScript file (s_code.js). If you do this, and the event is passed on the page view, it will also be passed on the s.tl() func­tion call unless you change your s.linkTrackVars definition.

      A quick way to test this is to add s.linkTrackVars=“purchase” to your onclick han­dler. That should pre­vent event2 from being passed.

  • http://trip.com Abhi­lash

    Ben, thanks much for your response!
    I went back and ver­i­fied that I do not have s.linkTrackEvents=”event2″ set in my core JavaScript file (s_code.js). Instead it is set to “None”.
    I have also set s.linkTrackVars=”purchase” in my onclick han­dler. I have even tried by set­ting s.linkTrackEvents=“purchase”.
    But that didn’t help. I am sure that I am miss­ing some basic stuff here. I can still see event2 & pur­chase both are being sent to Site Cat­a­lyst when I invoke my click han­dler. I am using ‘Wasp’ to ana­lyze the packets.

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Abhi­lash: Hmmmm… intrigu­ing. At this point, I would rec­om­mend get­ting in touch through Omni­ture Client­Care through your organization’s autho­rized sup­ported users. With­out dig­ging into the depths of your imple­men­ta­tion, I’m not sure what else to say. If s.linkTrackEvents is set to ‘pur­chase’ then event2 shouldn’t be passed. There is def­i­nitely an answer there, though—the rock stars in Client­Care will track it down for you.

  • Andrey

    Ben,

    I have some ques­tions, two hours of test­ing and brows­ing on the Inter­net were with no result.

    I write script that cus­tomer can include in her/his page. I want to sup­port Site­Cat­a­lyst in this script .
    If cus­tomer uses Site­Cat­a­lyst (s vari­able is defined on the page) I want to assign s.eVar20 = ‘XXX’.

    Prob­lem is that Site­Cat­a­lyst script is on top of the HTML and my script is at the bot­tom. I wrote the fol­low­ing code:
    t = s_gi(s_account);
    t.linkTrackVars=“eVar20”;
    t.linkTrackEvents=“None”;
    t.eVar20 = “MintON”;
    t.tl(true, ‘o’, ‘MF’);

    Here are two prob­lems: 1) This is not a link, I do not need link track­ing. I only want to assign eVar20 to cur­rent pageView.
    But when I use “t.tl()” with­out any argu­ments this behav­iours as s.t(). If I call it with argu­ments my t.tl() over­rides s.t() (due to 500 ms delay) and I have to use set­Time­out(…, 500).
    2) I want to set eVar20 with­out send­ing another request to Site­Cat­a­lyst, if s.t() request hasn’t been sent yet (500 ms hasn’t been passed). How can I rec­og­nize that request to Site­Cat­a­lyst (by s.t() call) already has been sent?

    What is the best way to do the thing?

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Andrey: It sounds like what you’re basi­cally try­ing to do is insert a new eVar20 value into the s.t() call that hap­pens when the page loads. There really isn’t a way to squeeze an eVar value into an image request unless you’re going to use either s.t() or s.tl(), so I’m not sure there is a good way to accom­plish this. If you can describe the busi­ness ques­tion that you’re try­ing to answer using eVar20, and the con­text sur­round­ing the page in ques­tion, we might be able to come up with an alter­na­tive solu­tion (for exam­ple, involv­ing VISTA).

  • Andrey

    We have js-script that pro­vides addi­tional func­tion­al­ity to a cus­tomer. Cus­tomer can include this script in his/her page to get this func­tion­al­ity on a page.
    Our script cal­cu­lates some para­me­ter, depend­ing on user session.

    Cus­tomer wants to seg­ment users depend­ing on value of that parameter.

    How can I accom­plish this?

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Andrey: Can you move just the s.t() call down on the page to below where your script exe­cutes? That way, you could sim­ply set an eVar based on the cal­cu­lated para­me­ter once your script runs and then call s.t(). Short of mov­ing around the code on the page, I’m not sure what can be done.

  • Andrey

    Ben,
    This HTML is in cus­tomer page. And my major task to allow cus­tomer only include my script and noth­ing else.
    And as I know omni­ture scripts should be placed on top of HTML?

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Site­Cat­a­lyst code is typ­i­cally placed either just inside the open­ing tag, or just before the clos­ing tag, but where exactly some­one chooses to imple­ment it is unique to the indi­vid­ual busi­ness. Regard­less, I don’t think there is going to be a way to get the cal­cu­lated para­me­ter into a Site­Cat­a­lyst vari­able unless the func­tion that gen­er­ates the value has run prior to the s.t() call. I can’t think of a good way around this; once the s.t() call hap­pens, you won’t be able to change any of the data involved.

  • Andrey

    Thanks Ben. I will request to place s.t() call at the bot­tom of the page.
    It’s a pity that we can­not send eVar in addi­tion (or include it in cur­rent s.t() request)

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      I under­stand. The s.t() func­tion is designed to send the Omni­ture image request as soon as it exe­cutes, and in fact there are a num­ber of rea­sons why it is very impor­tant that the request be sent as soon as the func­tion is called (per­haps most impor­tantly, so that you have con­trol over exactly when this hap­pens). I apol­o­gize for the incon­ve­nience in this par­tic­u­lar case.

  • Andrey

    Ben, you write that “s.t() func­tion is designed to send the Omni­ture image request as soon as it exe­cutes”. But there is 500 ms delay in that s.t() request.

    And if I assign s.eVar20 = ‘XXX’ even after s.t() call, it will be sent with s.t() request. And it will be actu­ally sent in 500 ms period of time after s.t() call.

    Am I wrong?

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Andrey: There is no 500ms delay on s.t() requests, only on s.tl() calls when the first argu­ment is ‘this’. If you set s.eVar20 = ‘XXX’ after the s.t() call, it def­i­nitely will not be sent with the request, and the request will hap­pen as soon as pos­si­ble, not after a delay. :)

  • Andrey

    Sorry, you are right and I am wrong :-)
    It seems that Fire­bug has a bug when debug­ging http requests (it showed only one request for 2 s.t() calls). But in Fid­dler there are 2 requests in all browsers.

  • J.

    How do you cal­cu­late a click-through rate of a link if the page views aren’t being counted?

    How would you set up the s.tl and a cal­cu­la­tion metrics?

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      This is prob­a­bly most eas­ily done by com­par­ing data in the Cus­tom Links report with data for the page con­tain­ing the given link in the Pages report. As described here, you’ll give each link a “friendly name,” for which an instance is counted each time the link is clicked. If you know the name of the page to which the link belongs, you can look up the friendly name of the link in the Cus­tom Links report and com­pare that to the num­ber of page views for this page to give you click-through rate for a link. ClickMap can also be use­ful for get­ting a sense of click-through rate on indi­vid­ual links.

  • http://trip.com Abhi­lash

    Hi,
    My issue (Ref: Abhilash2009/5/22 @ 8:23 am) is resolved and shar­ing the solu­tion so that oth­ers can use.
    var s=s_gi(s_account);
    s.events = “pur­chase”;
    products=“100;1;1″;
    s.products=products;
    s.linkTrackVars=“prop16,eVar16,events,products”;
    s.linkTrackEvents=“purchase”;
    s.tl(true,“c”,“Submit ”);

    Thanks
    Abhilash

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Abhi­lash: I’m pleased to hear that the issue was resolved! The code you pasted looks good, but to be clear, “c” is not a valid option as the sec­ond argu­ment in the s.tl() func­tion call. This should be “o”, “d”, or “e” … I don’t believe any other val­ues are expected for that argument.

  • http://trip.com Abhi­lash

    Hi Ben, Thanks for look­ing into it.
    I have used ‘c’ as a sec­ond argu­ment as sug­gested by our Omni­ture con­sul­tant!
    Some­how it is work­ing too.
    But when I saw your com­ment, I looked back at the doc­u­men­ta­tion and found you are cor­rect.
    Can you please tell me how bad this can be if the sec­ond argu­ment is wrong?
    Thanks
    Abhilash

  • lg

    Ben,
    Can the cus­tom link track­ing code be used to cre­ate an image request that fires off when an ad is loaded? since the s.products vari­able has a lim­ited size and I have sev­eral adds on the site I want to pass those ad impres­sions (not clicks) on a sep­a­rate image request but dont want to inflate my page views.

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      It sure can. Instead of using the onclick han­dler, you’d use an onload. For example:

      <img src="some_banner.jpg" onload="var s=s_gi('rsid');s.linkTrackVars='prop1';s.prop1='some_ad_id';s.tl(true,'o','Ad Impression');" />

  • lg

    Ben,
    We tried the onload but its not work­ing for us…we can­not see any­thing come through via http­fox on fire­fox and no data in the the met­rics report. Here is the code we are using, can you see any­thing incorrect?

    onload=“var s=s_gi(‘devrs’);
    s.linkTrackVars=‘products,events’;
    s.linkTrackEvents=‘event4’;
    s.products=’;member: sec­tion’;
    s.events=‘event4’;
    s.tl(true,‘o’,‘Ad Impression’);”

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      That looks exactly right to me. I would need to take a look at the page to dig any deeper; if it’s pub­licly avail­able, please feel free to e-mail the URL to me at omni­ture care at omni­ture dot com.

  • Suzy Borsh

    Hi,

    I have a ques­tion here:

    I am look­ing for data for my ‘click­out’; mean­ing when a vis­i­tor clicks on a prod­uct, it will be linked to an exter­nal page. My ques­tion is, where shall I look at to col­lect the data; is it Exit Links or Cus­tom Links? Also is tag­ging nec­es­sary in this instance?

    Thanks,
    Suzy

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      If the link is point­ing to an exter­nal site, you shouldn’t nec­es­sar­ily need to do any addi­tional tag­ging; Site­Cat­a­lyst auto­mat­i­cally tracks any link click where the URL (href) of the link doesn’t con­tain any of the val­ues listed in the s.linkInternalFilters vari­able. As long as this vari­able has been set up cor­rectly, you should be all set. The data will be found in the Site Con­tent > Links > Exit Links report.

      You may want to apply man­ual tag­ging of these links if you want to pass addi­tional vari­able val­ues or events when­ever the user clicks. How­ever, this is not nec­es­sary if you’re mostly inter­ested in get­ting a total count for each exter­nal link.

  • http://webanalyticsland.com/ VaBeachKevin

    I just want to con­firm that I can get Unique Vis­i­tors that have clicked on the cus­tom tracked link?

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Yes. Your Account Man­ager can enable it.

  • Mike

    I have been look­ing for the white paper “Link Track­ing” men­tioned in sev­eral forum com­ments and this blog. The stated place (in one of the com­ments of this blog) is no longer valid. Canyou tell me where the white paper is?

    Also, is there an API/reference or doc­u­men­ta­tion on using the Omni­ture javascript code?

    How is the javascript as-described in this blog related to what I see as the “bea­con javascript” functions?

  • http://Trip.com Abhi­lash

    Hi Ben,
    In my web site, user can select mul­ti­ple prod­ucts and place an order.
    my prod­uct string has the fol­low­ing pat­tern:
    s.product = “;100;1;0.45,;101;1;0.55,;102;1;0.65,”; // ;id;1;price,
    and then I am call­ing s.tl() after pop­u­lat­ing s.linkTrackVars and s.linkTrackEvents vari­ables.
    But in my reports I am see­ing orders always same as units.
    My under­stand­ing is that, units should be the num­ber of items selected (100,101 & 102) and order is the num­ber of times I place the order.
    For exam­ple, in the above case I am expect­ing units as 3 and order as 1.
    But I am get­ting units as 3 and order as 3.
    Any thoughts Ben?
    Thanks
    Abhilash

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Your under­stand­ing is cor­rect, Abhi­lash (and I apol­o­gize that it has taken me 11 days to respond!). My only guess, with­out hav­ing looked at your imple­men­ta­tion closely, would be that you might be set­ting the pur­chase event mul­ti­ple times (once for each prod­uct). For exam­ple, you may be seeing:

      s.events=“purchase,purchase,purchase“
      s.product = “;100;1;0.45,;101;1;0.55,;102;1;0.65,”; // ;id;1;price,

      This will cause three orders to be counted, because the pur­chase event is set three times. If you set the pur­chase event once, it will be applied to each prod­uct in the s.products string, and this is a more cor­rect imple­men­ta­tion. If this doesn’t appear to be the case on your site, then I’d need to take a closer look in order to pro­vide any good advice.

  • http://www.etonline.com Alin Shah

    Hi Ben,
    we are an Enter­tain­ment news mag­a­zine web­site.
    We are in the process of imle­ment­ing a new web­site in which we are plan­ning to imple­ment a few func­tion­al­i­ties where , for an exam­ple, there will be bunch of news sto­ries on our home page and for each story user will have an option to do a “Quick Pre­view” which will expose the first para­graph of the story being on the same page. This does not involve Ajax but only javascript.

    And we would like to count the num­ber of times users click on “Quick Pre­view” link.

    I would really appre­ci­ate if you can address this con­fu­sion of us as soon as possible.

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Alin,

      If the “Quick Pre­view” link is an anchor tag (“<a href…”), then you would use the prin­ci­ples described in this post and make an s.tl() func­tion call in the onclick event han­dler of each of these links. For example,

      <a href="#" onclick="var s=s_gi('your_report_suite');s.tl(this,'o','Quick Preview Link Click');showQuickPreview();">Quick Preview</a>

      This would count one click for “Quick Pre­view Link Click” in the Site Con­tent > Links > Cus­tom Links report in Site­Cat­a­lyst when­ever the user clicks the link. I hope this helps to get you started. You or your organization’s sup­ported users may want to con­tact Omni­ture Client­Care for more infor­ma­tion on imple­men­ta­tion specifics related to cus­tom link tracking.

      Thanks,
      Ben

  • Harsh

    Hi Ben,
    Sorry if this is a really basic ques­tion.
    I need to fig­ure out how to do link track­ing in omni­ture. That is I put a link out in a newslet­ter or other web­site and I need to track how many click throughs on that link and where they went in our site.

    Thanks
    Harsh

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Harsh,

      Based on your exam­ples, it sounds like you may want to check out some of our infor­ma­tion on cam­paign track­ing (rather than link track­ing), since that is typ­i­cally how orga­ni­za­tions cap­ture click-through data from newslet­ters or partner/third-party web sites and asso­ci­ated con­ver­sion to these vis­i­tor acqui­si­tion sources. I’d start with Adam Greco’s excel­lent post on the topic, located here. You can also read up on it in the Knowl­edge Base within Site­Cat­a­lyst. The basic idea is that you’ll add a unique “track­ing code” to the URLs that you use in your newsletters/partner links, then grab that track­ing code on the land­ing page (which is tagged with Site­Cat­a­lyst code) and cap­ture it in a vari­able. This will let you know that the user clicked through the link asso­ci­ated with the given track­ing code.

      Let me know if this is unclear or if you have other questions!

      Thanks,
      Ben

  • Harsh

    Hi Ben,

    Thank you so much for your prompt response.
    I was using Web trends ear­lier and our com­pany just trans­ferred to Omni­ture. In web­trends i use to use some­thing called para­me­ter analy­sis tags, which was just some code that i had to put at the end of each url of which clicks i wanted to record.
    Most of these pages don’t use the s_code.js file so i need a way to fig­ure out for site cat­a­lyst to record the click throughs. I would like to track the full path of the user that came to the land­ing page from the orig­i­nal URL he clicked on.

    Do you think camp­ing track­ing is a bet­ter way for me ?

    Thanks Harsh

  • Harsh

    Essen­tially what i am try­ing to get is, how many times and which links were clicked (click throughs) either in an Newslet­ter or a web­page that doesn’t have a s_code.js file. And where the the user go after get­ting to the land­ing page. Which other links are being clicked (full nav­i­ga­tion path).
    Thanks, I really appre­ci­ate it.

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Harsh,

      That def­i­nitely sounds like cam­paign track­ing to me. It’s okay that the sites on which the links reside won’t have Site­Cat­a­lyst code on them; this method allows you to deter­mine where the user came from AFTER they get to your site. For exam­ple, let’s say you have a link to your site on a third-party site, xyz​.com. Instead of link­ing to “http://​www​.your​site​.com/”, you could link to “http://​www​.your​site​.com/​?​c​i​d​=​x​y​z​.​com”. This would take the user to the same land­ing page, but it would have “cid=xyz.com” in the query string on the land­ing page. Site­Cat­a­lyst can eas­ily cap­ture “xyz​.com” out of the query string on the land­ing page, so it would be able to tell you that the user clicked through your link on that site. Does this make sense?

      Thanks,
      Ben

  • Harsh

    Thanks a lot ben for break­ing ti down for me.
    I will defi­nately give cam­paign track­ing a try. My only con­cern is if it will also show me the nav­i­ga­tion full path user takes after com­ing to the land­ing URL. I also want to be able to track that user who came from the Email or Other web­site, where else is he going (click­ing). Basi­cally like a next page flow report.

    Thanks
    Harsh

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Harsh,

      Great ques­tion. There are a few ways to do this.

      1.) ASI lets you request all visit data for any user who came to your site via a cer­tain cam­paign track­ing code (or group of track­ing codes). Then you can run pathing reports (included Next Page Flow) for only those users.

      2.) You can use a Cus­tom Traf­fic (s.prop) vari­able with pathing enabled to set up some­thing called “Cam­paign Pathing.” (This topic really war­rants its own blog post.) The basic idea is that you con­cate­nate the page name and the cam­paign track­ing code:

      s.prop1=s.pageName+":"+s.campaign

      This gives you val­ues like “Home:jun09_campaign” on land­ing pages (i.e., just after the user has clicked through a link on a third-party site) and just the page name on other pages. You can then go to pathing reports for the Cus­tom Traf­fic vari­able (in this case, s.prop1) and set the start of the path to (for exam­ple) “Home:jun09_campaign,” and you’ll see the pages that fol­lowed it. This is described in the Site­Cat­a­lyst Imple­men­ta­tion Guide under the head­ing “Cam­paign Pathing.”

      I hope this helps!
      Ben

  • Harsh

    Thanks Ben
    Looks like Cam­paign Pathing along with track­ing code and clas­si­fi­ca­tions should get me what I am look­ing for.
    Again thanks for your help

    Harsh

  • Harsh

    HI ben,
    One last ques­tion, so I under­stood that i can do cam­paign track­ing and enable pathing on that s.prop to track the vis­i­tors’ nav­i­ga­tion through the site. Is there any way to track and see if that unique vis­i­tor who came from a unique cam­paign had down­loaded a file?

    Pretty much what i would like to see is the con­ver­sion rate of vis­i­tors click­ing on a par­tic­u­lar cam­paign link and how many of those vis­i­tors got to actu­ally down­load­ing a file on my site.
    Also would like to clas­sify each cam­paign like emails or exter­nals links on blogs.

    hope that makes sense

    Harsh

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Harsh,

      This could be done by pass­ing a cus­tom event (using link track­ing, as described in this post) when users down­load a file. This would enable you to pull the “File Down­loads” cus­tom event into the Track­ing Code or Cam­paigns reports and see how many file down­loads were attrib­uted to each code/campaign in the reports.

      As for clas­si­fy­ing your cam­paigns, this is cer­tainly pos­si­ble. Check out Adam Greco’s excel­lent post on SAINT clas­si­fi­ca­tions to learn how this can be done accord­ing to your specifications.

      Thanks,
      Ben

  • http://www.saveur.com/foodiegiveaway/ Alyx

    Ben, could you please take a look at a cus­tom link I’m try­ing out? The code is on just one link here — on the onclose func­tion for the popup on Jan­u­ary 18th: http://​www​.saveur​.com/​f​o​o​d​i​e​g​i​v​e​a​w​ay/

    a href=“javascript:void(0)” onclick=“popupclose(‘Jan18’);var s=s_gi(‘bonnsaveur’);s.tl(true,‘o’,‘Monari Federzoni’)”><img class=“PUClose” src=“close.gif” alt=“Close”/

    It shows as lnk_o in my packet snif­fer, but not in Site­Cat­a­lyst! Livechat did offer to look into it — but I think it has to just be some minor error I’ve made with the code. Thanks :)

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Alyx,

      My packet mon­i­tor showed that the request was suc­cess­ful, too. A cou­ple of things, though, that might help:

      1.) Try mov­ing the pop­up­close() func­tion so that it comes after the s.tl() call. This will ensure that s.tl() has a chance to run before the pop-up win­dow closes.
      2.) Because there is an anchor tag involved, you can use “this” as the first argu­ment in s.tl() instead of “true.” This allows for the 500-millisecond delay to give s.tl() a chance to send the image request and receive the response.

      Let me know if those two changes don’t help!

      Thanks,
      Ben

  • http://www.saveur.com/foodiegiveaway/ Alyx

    Ben, it works per­fectly now. That did the trick. Thank you!

  • Sur­jith

    Hello Ben,
    We imple­mented click track­ing on a ban­ner in our site. Ini­tially, we had designed the ban­ner using tag and the track­ing code was put inside the onclick of the div. How­ever, the val­ues were not get­ting passed, The track­ing started work­ing once we changed the tag to anchor tag.

    So, my ques­tion is, will the s.tl() func­tion work only with anchor tags? Is there any way we can use s.tl() on click of a div?

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Sur­jith,

      In short, you def­i­nitely CAN use link track­ing with non-anchor ele­ments, although you would need to update the way you call the s.t() function.

      In the sub­sec­tion labeled “If you are using Link Track­ing on some­thing other than a link, you’ll need to tweak s.tl() slightly,” the post describes how to apply link track­ing to non-anchor tags. When call­ing s.tl(), the first argu­ment, “this” refers to the href of an anchor tag, so try­ing to use “this” as an argu­ment in another con­text won’t work cor­rectly. Chang­ing the argu­ment to “true” should resolve the issue; how­ever, it also pre­vents the 500ms delay that ensures the trans­ac­tion occurs with our servers before mov­ing on to the next page, so you may want to imple­ment a man­ual delay in these cases.

      I hope this helps!
      Ben

  • Shaun

    Ben,

    I’m apply­ing link track­ing on down­load links and pop­u­lat­ing addi­tional para­me­ters (events and evars). How­ever, I have auto­matic track­ing kick­ing in that picks up these para­me­ters on the next link I click on. For example:

    I have a down­load link that fires off its own con­ven­tion (pev2) with event 1 and evar1 pop­u­lat­ing two calls get fired. The cus­tom track­ing gets called and Omniture’s auto­matic down­load track­ing. What hap­pens is the next down­load I click on that has cus­tom track­ing my cus­tom track­ing files cor­rectly (pev2) with event2 and evar1 pop­u­late but the sec­ond auto­matic call that Omni­ture fires on its own also pop­u­lates an event evar. It pop­u­lates event1 and evar1 (these are the para­me­ters from the pre­vi­ous down­load I clicked on.This is a hypo­thet­i­cal exam­ple, but this is the gist of what’s going on.

    The site i’m work­ing with is http://​www​.inven​tiv​clin​i​cal​.com. If you use fid­dler, or fire bug you can see what’s going on by click­ing a down­load and then click a sub­se­quent down­load or exitlink.

    Any help to fix this prob­lem would be great, since client care has not been able to help me with this issue.

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Shaun,

      Lemme make sure I grasp this: You have an event and an eVar that get set when you imple­ment link track­ing, but then the same event and eVar get pop­u­lated (unex­pect­edly) when auto­matic download/exit link data gets sent subsequently?

      If that is what you’re see­ing, have you tried clear­ing out the vari­ables in ques­tion after the s.tl() call?

      If that is not what you’re see­ing, let me know. I went out to the site you men­tioned and clicked some PDF links, but I didn’t see a link track­ing request when I did so. If you can let me know exactly what to click, I’ll be happy to take a closer look. We’ll get to the bot­tom of it one way or another.

      Ben

  • Abishek

    Hi Ben,

    I need to track value entered in a textbox after but­ton is clicked in the web page, so I am call­ing j-script method on onclick event for the but­ton & j-script func­tion is:

    var s = s_gi(account’);
    s.linkTrackVars = ‘eVar1’;
    s.eVar1 = ‘text’;
    s.t();

    So in site­cat­a­lyst under eVar1, i should see text with count. But it is not coming

    if i replace s.t() with s.tl(this,‘o’,‘text’); then i see text string under cus­tom links.….. but i need it to be counted under evar1
    –Abishek

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Abishek,

      A few thoughts:

      1.) You should prob­a­bly never use s.t() in this case. It will count an addi­tional page view in your report suite, and it sounds to me like the user action in ques­tion does not actu­ally con­sti­tute a new page view. The s.tl() func­tion should give you exactly what you need here, as it can pass cus­tom vari­able data with­out incre­ment­ing page views.
      2.) What met­ric are you using when you check for this value in the eVar1 report? Make sure you have changed it to Instances.
      3.) The rest of the imple­men­ta­tion looks pretty good to me. Are you see­ing the eVar1 value passed in the request when you use a packet mon­i­tor to observe the request going out?

      Let me know if there is any­thing else I can do to help.

      Thanks,
      Ben

  • http://www.onceinaweb.com MitchellT

    This is a great arti­cle — but my CMS won’t allow me to add ‘onClick’ events. How can I add query string para­me­ters to links on the site and have them tracked?

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Mitchell,

      There are a cou­ple of ways to cap­ture user actions with­out using link track­ing. The first is to use cam­paign track­ing, as you’ve sug­gested. Add a query para­me­ter to your hrefs and then use the get­Query­Param plug-in (or sim­i­lar) to cap­ture the param value on the next page. Of course, that requires that a.) the user action gen­er­ate a new page view, so that the Site­Cat­a­lyst code runs again, and b.) that the action not take the user beyond your site, where there won’t be Site­Cat­a­lyst code wait­ing for him/her to cap­ture the action data. The other option is to use a plug-in like the one I posted on auto­matic exit link track­ing to add a global event lis­tener, which doesn’t involve apply­ing spe­cific onclick events and could there­fore be allowed by your CMS.

      Let me know if you have any other questions!

      Thanks,
      Ben

  • Melissa

    We have links that direct users to another page within our web­site and we want to know when some­one uses one of these links as opposed to another nav­i­ga­tion method. We are fir­ing an onclick to accom­plish this. We are pop­u­lat­ing “pev2” with a cus­tom link name, but we don’t always see the link type (o, e, d) pop­u­late in “pe” when using a web debug­ger. Will not fir­ing a pe value cause the pev2 value to not appear in the Cus­tom Links report? Does pe always have to pop­u­late in order for the Cusom Links report to show the cor­rect val­ues? Thanks!

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      The key thing is to have a pe= value of either lnk_o, lnk_d, or lnk_e. With­out one of those three, link track­ing requests will not be counted as links; any vari­ables you are set­ting should be recorded, but the over­all image request will be counted as a page view. If this code is avail­able pub­licly, please feel free to post a link and I’ll give it a shot to see what might be going on.

  • Ken

    Ben, first to apol­o­gize if this is not the place to post this ques­tion but i couldn’t find any­where else to push this query on to an omni­ture sup­port site. if so please do direct me. much appreciated.

    I’m work­ing in one of SEA’s ad net­work­ing com­pany and we’ve man­aged to do a cam­paign where our client’s using site­cat­a­lyst to mea­sure refer­rals com­ing from our ad net­work and also other places. A “cid=” was embed­ded to the click url of the cre­ative run­ning in our net­work. it looks some­thing like this: http://www.campaignpage.com?cid=adnetwork_300x250

    Cam­paign ran suc­cess­fully and our ad net­work record­ing 2000 clicks all in all but when our client pulled out their report on omni­ture, it’s a 600+ click report.

    Is there some­thing you can sug­gest as how an ad net­work (ven­dor) should prop­erly mea­sure with omni­ture? I under­stand the idea of first and third party cook­ies, and if we’re actu­ally com­par­ing ad network’s clicks against omniture’s vis­its which is wrong i think. Was there any expe­ri­ences on your end that may have an impact sim­i­lar to this? appre­ci­ate your advice.

    • http://blogs.omniture.com/author/bgaines Ben Gaines

      Hi Ken,

      No wor­ries! This is an okay place for any dis­cus­sion at all on the topic of web ana­lyt­ics. :)

      What you’re describ­ing isn’t entirely uncom­mon, although a dis­crep­ancy of that size could prob­a­bly be inves­ti­gated. The best expla­na­tion of pos­si­ble sources of dis­crep­ancy between Site­Cat­a­lyst cam­paign mea­sure­ment and ad net­work (or PPC net­work) met­rics is found in our Knowl­edge Base, specif­i­cally in arti­cle ID 9536, “Why does the num­ber of clicks reported by a third-party ad ven­dor or search engine dif­fer from Click-throughs or Searches in Site­Cat­a­lyst?” It lists sev­eral pos­si­ble causes. (You can get to the KB from within Site­Cat­a­lyst by going to Help > Knowl­edge Base.)

      Of course, when­ever we are talk­ing about dif­fer­ent sys­tems, poten­tially using dif­fer­ent track­ing technologies/methodologies, that are track­ing at dif­fer­ent times (at the time of click as opposed to on land­ing page load), there is going to be some dis­crep­ancy. It will never be a true apples-to-apples comparison.

      That said, your client could poten­tially give you access to con­tact our Client­Care team for addi­tional help debug­ging the Site­Cat­a­lyst report in ques­tion to make sure it’s com­par­ing “apples-to-apples” as much as pos­si­ble (e.g., sim­i­lar met­rics, dates, etc.), and the sup­port staff can even ana­lyze the raw, click-stream data in some cases to val­i­date that we are prop­erly report­ing clicks to this cam­paign. That would be my rec­om­mended next step, if the answer given in the KB arti­cle ref­er­enced above doesn’t help.

      Thanks,
      Ben

  • http://thegioikhongday.vn/forum/member.php?u=255133 Joszhl

    My grand-father thought I would appre­ci­ate this web­site. It was utterly right. This pub­lish in fact saved me a whole lot of time. You can not con­ceive of just how a great deal time I had exhausted for this info ! Thank you!

    As a final point , give per­mis­sion me thank you for your tol­er­ance with my Eng­lish as (I’m con­vinced you have become aware this by now,), Eng­lish is not my first lan­guage hence I am uti­liz­ing Google Trans­late to fig­ure out what to com­pose what I sin­cerely mean to write .

  • Ameer

    I was try­ing to track clicks within “ShareThis” wid­get, could you ver­ify the below if it is correct

    func­tion track­With­Om­ni­ture (event,service)
    {
    var s = s_gi(“bmcsoftware”);
    s.tl(this, ‘o’, “+ser­vice);
    s.pagename = ””
    // Add a 500ms delay to allow the image request to com­plete before leav­ing the page
    b=e=new Date;
    while(e.getTime()-b.getTime()<500) { e=new Date; }
    }

    stLight.subscribe(“click”,trackWithOmniture); //registers the call­back func­tion with sharethis