Jump to content

Pixel Tracking issues with Internet Explorer


Richzilla

Recommended Posts

I have recently setup a web marketing agency, but our tracking scripts are having some major issues. We have 2 codes which we place onto the mercahnts website. 1 is a Javascript and the other is a 1x1 pixel tracking call to our database. The problem is that we cannot get the tracking code to work with both versions of internet explorer. Sadly the majority of shoppers use IE as opposed to

Firefox. Here's the codes -

 

 

mId = merchant number

cs = basket value

it = items ordered

oi = purchase number

 

 

This goes in the header -

 

<SCRIPT type="text/javascript">

function getCheckoutUrl(mId, cs, it, oi)

{

    if (document.all)

    {

var ticks = new Date().getTime();

var urlStr = "http://mysite/ProcessProductCheckout.ashx?mId=" + mId + "&it=" + it + "&oi=" + oi + "&cs=" + cs + "&tm=" + ticks;

xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");

 

if (xmlHttpRequest!=null)

        {

xmlHttpRequest.open("GET", urlStr);

xmlHttpRequest.send(null);

}

}

}

</SCRIPT>

 

 

This goes into the body onload tag -

 

<BODY onLoad="getCheckoutUrl(77, <?php echo $prodprice; ?>, 1, <?php echo $ordID; ?>);">

 

 

 

This is the main body -

 

<!-- BEGIN my site tracking code -->

<?php

$_SERVER['REQUEST_TIME'];

$ts = date(U);

$browser = $_SERVER['HTTP_USER_AGENT'];

if (!(stristr($browser, 'MSIE')))

{

  echo "<img border=\"0\" src=\"http://mysite/ProcessProductCheckout.ashx?mId=77&cs=".$prodprice."&it=1&oi=".$ordID."&timestamp=".$ts."\" />";

}

?>

<!--end tracking code-->

 

 

So basically, the script in Firefox produces the pixel link and sends through the order inforamtion. Under IE the javascript doesn't work. We started off using just the pixel image for both IE and Firefox, but we found that the image was being cached under IE and not calling for a new image.

 

Overall IE is causing us massive issues. Does anyone have a solution to the above code? Any help would be massively apprecaited.

Link to comment
Share on other sites

Being lazy as I am I only paid notice to your last comment that the image is being cached by IE. Here is a trick you can apply. instead of reading the image url why not add a little random variable behind your image

 

here is an example

imgUrl="pixel.jpg?rand="+Math.random()

 

and that solves the image being cached in IE  ;)

Link to comment
Share on other sites

Thanks for the input Kat, but the timestamp info at the end is there to do that. That didn't work either. The error now is with the javscript. I have a feeling that - 'new ActiveXObject' is teh source of the problem.

 

Any further ideas people?

Link to comment
Share on other sites

I took a better look at your script. If I am correct the script in the head section only works in IE since Firefox doesn't have ActiveXObject. have you tried to put that url in your IE browser manually? Something I also try is alerting the url in the script to check if there are no empty variables.

Link to comment
Share on other sites

Something different came into mind maybe IE has problems with the image tag since the src is not a jpg or gif or whatever.

maybe you should try to use an invisible iframe instead of image tag and don't use javascript at all

<?php
echo('<iframe width="0" height="0" src="http://mysite/ProcessProductCheckout.ashx?mId=77&cs='.$prodprice.'&it=1&oi='.$ordID.'&timestamp='.$ts.'" ></iframe>');
?>

Link to comment
Share on other sites

use a more common AJAX approch to avoid any problems. The XMLHttpRequest works in IE 7 and other browsers, while ActiveXObject("Msxml2.XMLHTTP") only works in IE 6 and below

 

something like this will be a better choice

var xmlHttp;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e) {
// Internet Explorer
try{
	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
	try {
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch (e){
		alert("Your browser does not support AJAX!");
		return false;
	}
}
}

Link to comment
Share on other sites

Hi All,

 

Thanks very much for your input. The change of image has sadly not worked. I fear that this mercahnts server is stopping any tracking calls using images. It's very strange, but even a very simple page that works on other sites doesn't with this merchant. I like the idea of the AJAX above.

 

Any chance you can ammend the code so that it includes the tracking call? I have no idea about AJAX and I have no idea whre to put the call.

 

Thnaks for the help so far guys. I feel that we are very close.

Link to comment
Share on other sites

Hi All,

 

The AJAX code hasn't worked. We have decided to go back to square 1 with all of this. The single pixel call is working on some sites but not on others. There really is absolutely no explanation for this. The code for the call is below -

 

<!---- Shop Submit Tracking Code ---->

 

<?php

      $_SERVER['REQUEST_TIME'];

      $ts = date(U);

        echo "<img border=\"0\" src=\"http://mysite/ProcessProductCheckout.ashx?mId=77&cs=".$costvar."&it=1&oi=".$order_id."&timestamp=".$ts."\" />";

  ?>

 

<!---- End Shop Submit Tracking Code ---->

 

When this code runs it assimilates the data correctly and as far as i can see it should work, but it doesn't. This works 100% in Firefox and on some sites in IE. WHat is possibly going wrong? We've gone round and round in circles on this for a week and no solution is imminent.

 

Is there anything that we can do now?

Link to comment
Share on other sites

This is basicly what your ajax script would look like this will work both in Firefox and IE read the comments i have made you will need to adjust the function sendRequest() to your needs

function createRequestObject() { 



var req; 

    

if(window.XMLHttpRequest){ 

    	// Firefox, Safari, Opera... 

        req = new XMLHttpRequest(); 

    } else if(window.ActiveXObject) { 

    	// Internet Explorer 5+ 

    	req = new ActiveXObject("Microsoft.XMLHTTP"); 

    } else { 

    	// There is an error creating the object, 

        // just as an old browser is being used. 

    	alert('Problem creating the XMLHttpRequest object'); 

} 

    

return req; 

    

} 


// Make the XMLHttpRequest object 
var http = createRequestObject(); 

//calls the script on server
function sendRequest() { 
//user data adjust these to your needs
var mId ="merchant number";
var cs = "basket value";
var it = "items ordered";
var oi = "purchase number";
var ticks = new Date().getTime();

//the url that is called externaly
    var urlStr = "http://mysite/ProcessProductCheckout.ashx?mId=" + mId + "&it=" + it + "&oi=" + oi + "&cs=" + cs + "&tm=" + ticks;

//the call is being made here
http.open('get', urlStr);

//uncomment the next line if you want to return a value on your page
//http.onreadystatechange = handleResponse; 

http.send(null); 

    

} 


/*this function you wont need but you can use it for testing purposes create a tag in your body html with result as id for this to work
example <div id="result"></div>*/
function handleResponse() { 

if(http.readyState == 4 && http.status == 200){ 



	// Text returned FROM the server script 

	var response = http.responseText; 



	if(response) { 

		// UPDATE ajaxTest content 

		document.getElementById("result").innerHTML = response; 

	} 

   	 

} 

} 

Link to comment
Share on other sites

Hi Team,

 

Thank you all so much for the help. The actual reason for all this headache is that those b@starrds at Microsoft make you jump through hoops to set a cookie on someones browser. We have to setup a p3p.xml file to get validation for our cookie. It's proving to be almost impossible.

 

Does anyone know who to ask to help us out? I've been doing it all day and I'm about ready to scream and go crazy!!

 

If any of you lot know, here's the problem -

 

Header http setup for the http://feeds.shopsubmit.co.uk/ProcessProductCheckout.ashx file

 

<% Response.AddHeader 'P3P', 'policyref="http://feeds.shopsubmit.co.uk/w3c/p3p.xml", CP="NON DSP ADM DEV PSD CUSo OUR IND STP PRE NAV UNI"' %>

<%@ WebHandler Language="C#" CodeBehind="ProcessProductCheckout.ashx.cs" Class="ShopSubmitWeb.ProcessProductCheckout" %>

 

 

p3p.xml file -

 

http://feeds.shopsubmit.co.uk/w3c/p3p.xml

 

 

Bascially it's saying that the cookie is invalid as it can't find the privacy document which is clearly stated a the top of our xml file. I'm going crazy over this!!!

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.