how to verify a omniture tag fired correctly using tamper data - web-analytics

Sorry for asking a newbie question here. I've searched on the web but everyone else seems to know the answer so I can't find any definite words. I need to verify my omniture tag fires correctly in tamper data. Should I look for a call from adobetag.com? Or what other URL call should I look for?

If your implementation is Omniture's 3rd party cookie, the request will be sent to 2o7.net or omtrdc.net depending on the version of SiteCatalyst you are using (and whether or not it is through their TagManager). If it is a first party implementation, it will be to your own domain that you worked with Omniture ClientCare to setup.
You can certainly look for those domains in any number of addons or other programs (built-in net console, firebug, httpfox, charles proxy - basically anything that can see requests being made) but FYI there are a couple of options that make it easier to see Omniture requests.
If you are using FireFox and have the firebug addon, there is an extension to firebug called omnibug. It adds an extra tab to firebug that will show you requests to Omniture made, and even makes it an easy to read format (It also reports other ones like GA and WebTrends).
Alternatively, Omniture provides a debugging tool called DigitalPulse. Basically you create a bookmark and for the location/url you put the javascript code snippet. Then on the page you click the bookmark and it pops up a window showing info about any omniture requests made.

Filter to requests containing b/ss
They are the requests being sent to Omniture SiteCatalyst.
See these references if you need more information -
http://blogs.adobe.com/digitalmarketing/analytics/validate-your-mobile-app-measurement-implementation/
http://blogs.adobe.com/digitalmarketing/analytics/custom-link-tracking-capturing-user-actions/
http://emptymind.org/validating-page-tags-with-httpfox/
http://tech.groups.yahoo.com/group/webanalytics/message/24232

In short look for: "/b/ss" however this guy wrote a very in depth article on how to do that with HTTPFox it's a good read with screenshots: http://www.mikewebguy.com/2013/08/21/httpfox-helps-you-verify-what-data-is-being-sent-to-your-analytics-provider/

Related

How to Trace Ajax Call Back or Debug Ajax Requests in Chrome or any other Good and Famous Browser

I'm doing a project which ,obviously, uses Ajax to handle lots of requests from User Interface. Once of which is to "Filter" the given list of users. I'm using it with Laravel at back end.
So the scenario is that when I filter users by their company it works perfectly, but when I filter users by locations, it shows all the users from all locations instead of chosen location which means all the location ids are being passed. Code is written by some one else. I don't know where to fix it. So I want to know that Chrome supports some good tools to handle and debug Ajax request but don't know how to do that. Can some one plz suggest me the right way to handle, debug and explore the call backs of Aajx request so I could also save my time????????????
You can use the google chrome devTools console and go to the Network menu. It works great.
If you want more you can use Charles

http packets in dynamic web pages

I want to know in web pages like Yahoo which every for example 5 min news changes, do we send http packet to server? If I want to implement this feature with AJAX do I need to send http packet again? Can some one explain the dynamic structure(like this updating news)for me.
You can easily find out what's going on on the page: For example use Firefox and download the Firebug addon. Then open firebug after installation and open the Network tab. You may have to enable it. Reload your page in question, you'll see evere request made. And of course you will see timed requests done later to update the page. The details are pretty thorough.
This is how the firebug network tab looked like after posting the first paragraph of this answer:

What is AJAX, really?

I have to start using AJAX in a project and I don't know where to start. Can someone please help?
Asynchronous JavaScript And Xml. A technique for achieving bi-directional, script-driven communications between Web browsers and servers via HTTP.
See also:
definition on Wikipedia
AJAX Introduction on w3schools
Ajax Workshop 1 on Ajax Lessons
Edit: As pointed out by Nosredna, JSON is often used in place of XML.
The rough idea in English:
You have a web page. Some event (can be a button press or other form event, or just something triggered by a timer) occurs and triggers JavaScript code that asks the server for fresh information (like the latest value of GOOG stock).
There's a piece of code on the server that collects the info you passed and sends some info back. That's different from the page-serving job the server usually has.
When the server answers, a callback function (that you specified in the JavaScript call to the server) is called with the info from the server. Your JavaScript code uses the info to update something--like a GOOG stock chart.
Not to be confused with the cleaner, AJAX, the technology term, is really describing a framework or better stated as a technique for using XML and JavaScript to make asynchronous calls to server side code...
Here are some good code samples. And some more.
While many of these samples above show how to create all of the XML Request objects, if you look into the AJAX Control Toolkit from Microsoft for ASP.NET applications or jQuery, you'll find these easier to work with.
jQuery Sample (from jQuery site):
when code is hit, the some.php file is hit passing the name and location values in.
<script type="javascript">
function saveDataAjax(){
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
}
</script>
<input type="submit" onClick="saveDataAjax();" value="submit" />
It's a buzzword, the essence of it is:
Using Javascript to make an asynchronous HTTP request (in the background).
When the content arrives, an action is taken, usually performing some logic then updating the appearance of the page by manipulating the DOM tree; meaning, inserting new HTML elements, deleting some html elements, etc.
The X in AJAX stands for XML, but it's irrelevant. XML is just one of many ways to format the data that's sent by the server. JSON is a much better alternative (IMNSHO). Also, the server can send plain text or just regular html.
The keyword here is asynchronous request. A request that happens in the background, without the browser having to reload the page.
From the Pragmatic Ajax book:
What Is Ajax?
Ajax is a hard beast to distill into a
one-liner. The reason it is so hard is
because it has two sides to it:
Ajax can be viewed as a set of
technologies.
Ajax can be viewed
as an architecture.
Ajax: Asynchronous JavaScript and
XML
The name Ajax came from the bundling
of its enabling technologies: an
asynchronous communication channel
between the browser and server,
JavaScript, and XML. When it was
defined, it was envisioned as the
following:
Standards-based presentation using XHTML and CSS
Dynamic display and interaction using the browser’s DocumentObject
Model (DOM)
Data interchange and manipulation using XML and XSLT
Asynchronous data retrieval using XMLHttpRequest or XMLHTTP (from
Microsoft)
JavaScript binding everything together
Although it is common to develop using
these enabling technologies, it can
quickly become more trouble than
reward.
It is for these reasons that the more
important definition for Ajax is...
Ajax: The Architecture
The exciting evolution that is Ajax is
in how you architect web applications.
Let’s look first at the conventional
web architecture:
Define a page for every event in the application: view items, purchase
items, check out, and so on.
Each event, or action, returns a full page back to the browser.
That page is rendered to the user.
This seems natural to us now. It made
sense at the beginning of the Web, as
the Web wasn’t really about
applications. The Web started off as
more of a document repository; it was
a world in which you could simply link
between documents in an ad hoc way. It
was about document and data sharing,
not interactivity in any meaningful
sense.
Picture a rich desktop application for
a moment. Imagine what you would think
if, on every click, all of the
components on the application screen
redrew from scratch. Seems a little
nuts, doesn’t it? On the Web, that was
the world we inhabited until Ajax came
along.
Ajax is a new architecture. The
important parts of this architecture
are:
Small server-side events: Now components in a web application can
make small requests back to a server,
get some information, and tweak the
page that is viewed by changing the
DOM. No full page refresh.
Asynchronous: Requests posted back to the server don’t cause the
browser to block. The user can
continue to use other parts of the
application, and the UI can be updated
to alert the user that a request is
taking place.
onAnything: We can interact with the server based on almost anything
the user does. Modern browsers trap
most of the same user events as the
operating system: mouseovers, mouse
clicks, keypresses, etc. Any user
event can cause an asynchronous
request.
This all sounds great, doesn’t it?
With this change we have to be
careful, though. One of the greatest
things about the Web is that anybody
can use it. Having simple semantics
helps that happen. If we go overboard,
we might begin surprising the users
with new UI abstractions. This is a
common complaint with Flash UIs, where
users are confronted with new symbols,
metaphors, and required actions to
achieve useful results.
Most commonly, it refers to the use of the XMLHttpRequest object via JavaScript* in a browser.
Depending on who you ask, it could be used to describe almost any type of client/server communication over HTTP other than just typing a URL into a browser.
*jQuery provides some nice wrapper code to handle cross-browser differences, etc.
Ajax is a bit of a misnomer. To quote the wiki article:
Despite the name, the use of
JavaScript and XML is not actually
required, nor do the requests need to
be asynchronous.
Whereas now most people call "ajax" any type of
web application that communicates
with a server in the background
http://www.w3schools.com/Ajax/Default.Asp
that is a good place to start. This should answer all of your questions.
From the man that coined the term - http://adaptivepath.com/ideas/essays/archives/000385.php
"Ajax" is the successfull marketing term introduced back in 2005 to replace the the older term "DHTML" that did not stick well. "Ajax" today is part of the history too as the new word - "HTML5" emerge. Still "HTML5" is pretty much what original "DHTML" used to be.
Ajax is also reffered to as "the new approach to the application development" where a web page is created on the server initially but later on, during its lifetime, the updates are being done on the client as the data or partial content gets communicated to the server in a background.
Hope this clarifies.
Just to add.. may be not relevant for the question ..
although, AJAX was made famous by Gmail in their browser emails ..the credit of AJAX goes to Microsoft .. they created the AJAX thing..
I believe the fastest and easiest way to get started is with jQuery:
http://jquery.com/
http://docs.jquery.com/Ajax/jQuery.ajax#examples
AJAX stands for asynchronous JavaScript and XML, though it doesn't always deal with XML data anymore. Essentially it boils down to using the XMLHttpRequest object through JavaScript running on the client to make a web request and retrieve some information that you use to update the state of your page without requiring a page refresh.
Start with a basic tutorial that shows you how to use bare bones Ajax to make asynchronous requests such as http://www.w3schools.com/Ajax/Default.asp before moving on to using it in a production level application.
When using it in an application you're far better off investigating one of the common JavaScript frameworks that abstract away the differences between the various browsers and make it easy to manipulate the page after the request returns. I personally recommend http://www.jquery.com/
I read Head First AJAX as my first AJAX reference and I found it to give a simple and practical overview of AJAX.
Creative use of previously known technology. Both the browser side scripting and programmatic access to data on the server have been known before. In AJAX it has been put together for innovative use anabling new applications of thechology known before. The REST comes to mind as similar type of advance...
AJAX is very simple : someone somewhere tought that it would be cool to be able to send something to the server and receive something from it without reload a page.
AJAX is not a revolution, it's just a name for something simple : a web page can send a request to the server without being reloader - just some asynch stuff here.
You can add AJAX controls on your web pages wihout any works - just drag them in with Visual Studio. You may have to add some manager for them, but it is simply a drag-and-drop task.
But be warned : rogue web browser usually don't speak the same AJAX language as IE...
:)
AJAX is really fancy term for giving the browser the ability to refresh parts of its content with the need to reload an entire page. Like many have said, it doesn't require XML, or even Javascript in order to implement it. In fact in its early days it was done with with VBScript and Jscript and just called DHTML. Jesse James Garrett may have invented the AJAX term, but it was really Microsoft that invented the concept behind it.
This source says Microsoft started it in 1999, but I would date the birth of this technology even further. This Wired article is probably more accurate on the date of this technology being in the late 90's, much of it coming from the old days of the MSDN DHTML Dude columns written by Michael Wallent at Microsoft which started back in 1997. Much of the story is also told in this great video here by Michael himself: http://channel9.msdn.com/posts/Charles/Michael-Wallent-Advent-and-Evolution-of-WPF/ Megan still works at Microsoft by the way working on the Silverlight team nowadays, Microsoft's replacement for ActiveX.
Back to the AJAX thingy...when Jesse James Garrett back in 2005 he was mostly talking about the use of XMLHTTPRequest within Javascript code, and a dash of salt. That later began a hip word that many people started using even though they had no idea what it was, and thought that is really something brand new and hip, when really it was just a remix of something old.....sort of like many hip-hop songs you hear nowadays.
It's not new, just a newer version of something old!
I'll give it a try and say that "it's the concept of having a W3C based (JavaScript, HTML and CSS) solution for building Rich Applications for running on the web in a browser"
Everything else is just "technical details" I guess ... ;)
PS! - AMAZING question ...!! ;)
AJAX (Asynchronous JavaScript and XML) is a newly coined term for two powerful browser features that have been around for years, but were overlooked by many web developers until recently when applications such as Gmail, Google Suggest, and Google Maps hit the streets.
To know more information about Ajax learn Ajax tutorial
AJAX = Asynchronous JavaScript and XML.
AJAX is a technique for creating fast and dynamic web pages.
AJAX allows web pages to be updated asynchronously by exchanging small amounts of data with the server behind the scenes. This means that it is possible to update parts of a web page, without reloading the whole page.
Classic web pages, (which do not use AJAX) must reload the entire page if the content should change.
Examples of applications using AJAX: Google Maps, Gmail, Youtube, and Facebook tabs.(FROM w3school). to understand simply: when we request for a link or submit form we request a synchronously to server for data. webpage destroy current page and regenerate new page. but with AJAX browser can send the same request without repainting the entire page.
It's JavaScript, but it works.

Screen scraping an ASP.NET web page to retrieve data displayed in the grid view

I am using RUBY to screen scrap a web page (created in asp.net) which uses gridview to display data. I am successfully able to read the data displayed on page-1 of the grid but unable to figure out how I can move to the next page in the grid to read all the data.
Problem is the page number hyperlinks are not normal hyperlinks (with URL) but instead are javascript hyperlink which causes postback to the same page..
An example of the hyperlink:-
6
I recommend using Watir, a ruby library designed for browser testing, if you're already using ruby for processing. For one thing, it gives you a much nicer interface to the DOM elements on the page, and it makes clicking links like this easier:
ie.link(:text, '6').click
Then, of course you have easier methods for navigating the table as well. It's easy enough to automate this process:
1..total_number_of_pages.each do |next_page|
ie.link(:text, next_page).click
# table processing goes here
end
I don't know your use case, but this approach has its advantages and disadvantages. For one thing, it actually runs a browser instance, so if this is something you need to frequently run quietly in the background in completely automated way, this may not be the best approach. On the other hand, if it's ok to launch a browser instance, then you don't have to worry about all that postback nonsense, and you can just click the link as if you were a user.
Watir: http://wtr.rubyforge.org/
You'll need to figure out the actual URL.
Option 1a: Open the page in a browser with good developer support (e.g. firefox with the web development tools) and look through the source to find where _doPostBack is defined. Figure out what URL it's constructing. Note that it might not be in the main page source, but instead in something that the page loads.
Option 1b: Ditto, but have ruby do it. If you're fetching the page with Net:HTTP you've got the tools to find the definition of __doPostBack already (the body as a string, ruby's grep, and the ability to request additional files, such as those in script tags).
Option 2: Monitor the traffic between a browser and the page (e.g. with a logging proxy) to find out what the URL is.
Option 3: Ask the owner of the web page.
Option 4: Guess. This may not be as bad as it sounds (e.g. if the original URL ends with "...?page=1" or something) but in general this is the least likely to work.
Edit (in response to your comment on the other question):
Assuming you're using the Net:HTTP library, you can do a postback by just replacing your get with a post, e.g. my_http.post(my_url) instead of my_http.get(my_url)
Edit (in response to danieltalsky's answer):
watir may be a really good solution for you (I'm kicking myself for not having thought of it), but be aware that you may have to manually fire the event or go through other hoops to get what you want. As a specific gotcha, with any asynchronous fetch like this you need to make sure that the full response has come back before you scrape it; that isn't a problem when you're doing the request inline yourself.
You will have to perform the postback. The data is pass with a form POST back to the server. Like Markus said use something like FireBug or the Developer Tools in IE 8 and fiddler to watch the traffic. But honestly this is a web form using the bloated GridView and you will be in for a fun adventure. ;)
You'll need to do some investigation in order to figure out what HTTP request the javascript execution is performing. I've used the Mozilla browser with the Firebug plugin and also the "Live HTTP Headers" plugin to help determine what is going on. It will likely become clear to you which requests you will need to make in order to traverse to the next page. Make sure you pay attention to any cookies getting set.
I've had really good success using Mechanize for scraping. It wraps all of the HTTP communication, html parsing and searching(using Nokogiri), redirection, and holding onto cookies. But it doesn't know how to execute Javascript, which is why you will need to figure out what http request to perform on your own.

Reverse Engineer A Web Form

I have a web site which I download 2-3 MB of raw data from that then feeds into an ETL process to load it into my data mart. Unfortunately the data provider is the US Dept. of Ag (USDA) and they do not allow downloading via FTP. They require that I use a web form to select the elements I want, click through 2-3 screens and eventually click to download the file. I'd like to automate this download process. I am not a web developer but somehow it seems that I should be able to use some tool to tell me exactly what put/get/magic goes from the final request to the server. If I had a tool that said, "pass these parameters to this url and wait for a response" I could then hack something together in Perl to automate this process.
I realize that if I deconstructed all 5 of their pages and read through the JavaScript includes and tapped my heals together 3 times I could get this info from what I have access to. But I want a faster and more direct path that does not require me to manually parse all their JS.
Restatement of the final question: Is there a tool or method that will show clearly what the final request request sent from a web form was and how it was structured?
A tamperer's best friends (these are firefox extensions, you could also use something like Wireshark)
HTTPFox
Tamper Data
Best of luck
Use Fiddler2 as a proxy to see what is being passed back and forth. I've done this with success in other similar circumstances
Home page is here: http://www.fiddler2.com/fiddler2/
As with the other responses, except my tool of choice is Charles
What about using a web testing toolkit, like Watir and Ruby ?
Easy to fill in the forms.. just use the output..
Use WatiN and combine it with WatiN TestRecorder (Google for it)
It can "simulate" a user sitting in front of the browser punching in values which you can supply from your own C# code...

Resources