I finally had some free time to add Google AdWords Conversion Tracking to my baby products website, baby.laydu.com. As described before, this website runs WordPress with the WooCommerce plug-in and an associated free theme.
Creating a conversion metric and associated tracking code is straight forward on the Google AdWords site. You just need to log into your AdWords account, click on the Tools and Analysis drop-down menu and choose Conversions to get started. Once you’ve chosen what you want to track you end up with some code like this:
<!- Google Code for Purchase Conversion Page -> <script type="text/javascript"> /* <![CDATA[ */ var google_conversion_id = 1234567890; var google_conversion_language = "en_US"; var google_conversion_format = "1"; var google_conversion_color = "666666"; var google_conversion_label = "Purchase"; if (<? echo $totalValue ?>) { var google_conversion_value = <? echo $totalValue ?> } /* ]]> */ </script> <script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <img height=1 width=1 border=0 src="http://www.googleadservices.com/pagead/ conversion/1234567890/?value= <? echo $totalValue ?>&label=Purchase&script=0"> </noscript> </body>
Now you just need to add this to the Order Received page in WooCommerce. That’s easy, just go and add the code into the page definition below the [woocommerce_thankyou] tag, right? Not so fast! The code will get mangled by the editor that thinks it is dealing with HTML rather than JavaScript.
With the WordPress editor trying to be too clever you can add the code to the relevant PHP file on the server. For WooCommerce the best place is to put the in the /wp-content/plugins/woocommerce/templates/checkout/thankyou.php. I put my code just after the thank you message:
<p><?php _e('Thank you. Your order has been received.', 'woocommerce'); ?></p> <!-- Google Code for Purchase Conversion Page --> <script type="text/javascript"> /* <![CDATA[ */ ...
Unfortunately there is still a problem with WordPress 3.5.1 that has been documented for 6 years which replaces the end of the CDATA section “/* ]]> */” with “/* ]]> */”. The quick fix for this is to comment out the offending code in /wp-includes/post-template.php.
function the_content($more_link_text = null, $stripteaser = false) { $content = get_the_content($more_link_text, $stripteaser); $content = apply_filters('the_content', $content); /** $content = str_replace(']]>', ']]>', $content); */
Google has a neat little extension for Chrome, Tag Assistant, which allows you to check that your Google code snippets are working on the displayed page. I ran that on the Order Received page and everything was finally functioning. Now I just need to wait until a customer clicks on one of my ads and purchases something to see if the Google AdWords Conversion Tracking is working as intended with my WooCommerce site.
Credit to SIMON.SCHÖNBECK.DK for his post on a related CDATA problem with WordPress.
Pingback: Discover Which Traffic Sources Generate Your Ecommerce Revenue In Google Analytics | Ecommerce Double
Thanks for this nice article. I was struggling with while trying to implement this adwords tracking code for my woocommerce enabled site http://iosbasics.com.
Inserting of code can be done in a better way by hooking into woocommerce thank you filter rather than inserting the code into thankyou page directly which gets overwritten on plugin update. I added the code using below hook:
add_action( ‘woocommerce_thankyou’, ‘my_custom_tracking’ );
function my_custom_tracking( $order_id ) {
// Lets grab the order
$order = new WC_Order( $order_id );
/**
* Put your tracking code here
* You can get the order total etc e.g. $order->get_order_total();
**/
}
But was struggling with the last part of greater than symbol getting converted to > and needless to say this article saved my life. Thanks a lot again.
Amit,
Your way is more elegant and correct, so thanks for posting a comment for others to see. I’m just a bit lazy ;).
Yes, that conversion of the “>” to “>” must be there for a good reason if they haven’t removed it after all this time, but it was very frustrating to debug!
Hi, would you please point me what file should i edit if i want to hook into woocommerce thank you filter ? as what you have done
Thank you,
Joie
Joie,
You would put edit the functions.php file in your theme. Ideally you have a child theme so that you don’t get the main theme’s functions.php file overwritten when upgrading.
Hi
I’ve created a plugin to make the Google AdWords conversion and value tracking on WooCommerce shops easier for everyone. This post was a great help to get there. If you are interested please have a look at http://wordpress.org/plugins/woocommerce-google-adwords-conversion-tracking-tag
Thanks
Aleks
Thanks for posting that here Aleks! I’m sure it will help quite a few people.
I know nothing about coding or anything similar, but I am running into this same problem with the 3rd party website developers we were using. How easy is this to do for someone who knows nothing?
Thank you guys so much for posting this info. I was struggling for quite some time trying to get a 3rd party conversion tracking detected. I was finally able to get everything working perfectly with Amit’s suggestion for adding the hook and louco73’s tip on fixing the code in the post-template file.
FYI – I’m was installing conversion tracking for a campaign with Vertical Search Works. Almost all of the plugin suggestions and articles reference Adwords, but the guide provided here worked for me as well.
Thank again!
~Lyndsey
Always good to see that a post helped someone solve a problem. Good to hear it worked for your specific conversion tracking case Lyndsey.
Great article, louco73. I very much appreciate your sharing this with the WordPress community. This solution is certainly going to make my clients AdWord’s campaign run a lot more efficiently.
Next time WordPress is updated, though, we gotta comment out the angle bracket problem, right?
— Lee
Hi:
I am trying to set up woocommerce to work with Google Analytics, and I follow the instructions highlighted here http://xd3v.com/woocommerce-and-google-analytics-ecommerce-setup/
I am wondering what are the differences in what are highlighted in that tutorial and yours. One is settting up GA, yours is setting up conversion tracking code for Google Adwords.
I have created an goal in GA, i noticed that I can actually import that goal into Google Adword to use that as my conversion tracking in Adwords. So if have done so, do I still have to add in the above conversion tracking code as suggested by you?
hi Kentzo,
Google Conversion Tracking and Google Analytics Tracking report conversions differently.
The details are here:
https://support.google.com/analytics/answer/2679221?hl=en
So you still want to set up Google Conversion Tracking.
Hi,
I’m trying to do the same thing, but for a Facebook Conversion Tracking pixel. I want to dynamically update the value in the tracking code based on the purchase amount. I’m assuming the code needs to go on the WC thankyou page, but I don’t understand how to edit the tracking code to dynamically update the value.
Here is the raw code:
var fb_param = {};
fb_param.pixel_id = ‘6012968359181’;
fb_param.value = ‘0.00’;
fb_param.currency = ‘USD’;
(function(){
var fpw = document.createElement(‘script’);
fpw.async = true;
fpw.src = ‘//connect.facebook.net/en_US/fp.js’;
var ref = document.getElementsByTagName(‘script’)[0];
ref.parentNode.insertBefore(fpw, ref);
})();
Facebook tells me that the parts of the code which need to be replaced are:
1. Replace the XX in fb_param.value=XX with the value you want the conversion pixel to have
2. Replace the XX in src=”https://www.facebook.com/offsite_event.php?id=6006959661766&value=XX¤cy=USD” with the value you want the conversion pixel to have.
(taken from the article here: https://www.facebook.com/help/464828030234857)
Any help getting this to happen with WooCommerce is greatly appreciated! And I promise to write a post about it 😉
Thanks!
Thank you for this great article. This helped me set conversions on my website: http://www.my-samsung-unlock.com.
Keep up the good work.
Thanks.
hi! i need paste this code int he thankyou.php and register the conversion.
(function() {
soicos.registerConversion({
pid : 3507,
data : "",
trans : {
orderID : "",
store_name : ",
total : "",
tax : "",
shipping : "",
city : "",
province : "",
country : "",
currency : ''
}
});
})();
I try using that, but dont work for me :
add_action( ‘woocommerce_thankyou’, ‘my_custom_tracking’ );
function my_custom_tracking( $order_id ) {
// Lets grab the order
$order = new WC_Order( $order_id );
/**
* Put your tracking code here
* You can get the order total etc e.g. $order->get_order_total();
**/
}
Help me please! ( sorry my english)