Implementing Amazon.com Conversion Pixel
Some merchants choose to advertise their products on Amazon.com. Â To gauge the effectiveness of the advertising, a conversion pixel needs to be deployed onto the receipt. Â At this point in time UltraCart does not have built in support for this particular pixel, but this tutorial will walk you through how to deploy in the conversion HTML section.
First let's take a look at the pixel code that is provided by Amazon.
<!-- Use of this pixel is subject to the Amazon ad specs and policies at https://sellercentral.amazon.com/gp/help/201622840 --> <script type="text/javascript"> /* In order to obtain full conversion reporting, you must configure and add this code to your website. Whenever a shopper purchases items from your website, you should render this code snippet into their browser with details about the items were purchased. Instructions on how to configure this code are inlined as comments in the code. */ /* The _paPixel array stores information about purchases. You will push arrays containing purchase details onto it. The first element in each array determines the type of information being provided - it is a string designating the name of the field. */ var _paPixel = _paPixel || []; /* These fields are already properly filled. They are necessary and should NOT be modified. */ _paPixel.push(['merchantId', 'ABCDEFGHIJKLMN']); _paPixel.push(['type', 'purchase']); _paPixel.push(['uniqueEventId', (new Date()).getTime() + Math.random().toString(16).slice(2) ]); /* For each type of item purchased, you should push an array of purchase details onto _paPixel. The first element of each array should be 'items', and you should provide the following, respectively: - SKU of the item on Amazon (this should be a JS String) - quantity of the item purchased (this should be a JS Number) - price of the item purchased (unit price) (this should be a JS String) - currency used to purchase the item (this should be a JS String) For example, an output string should look like (order matters): _paPixel.push(['items', 'your-product-sku-1', 10, '39.99', 'USD']); In the following code, replace '${itemsVar}' with the variable containing an array of purchased items. Each item in the array is assumed to be an object with SKU, quantity, price, and curency as properties. Then remove the comments around the code to enable full conversion reporting: */ /* items.forEach(function(item) { _paPixel.push(['items', item.SKU, item.quantity, item.price, item.currency]); }); */ _paPixel.push(['submit']); (function() { var paPixel = document.createElement('script'); paPixel.type = 'text/javascript'; paPixel.async = true; paPixel.src = '//d10so77biaxg0k.cloudfront.net/pa_pixel.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(paPixel, s); })(); </script>
First we need to change this code to use Velocity calls to provide the information we're looking for. Â We'll also remove all the extra comment code that doesn't need to be sent down to the browser.
<!-- Use of this pixel is subject to the Amazon ad specs and policies at https://sellercentral.amazon.com/gp/help/201622840 --> <script type="text/javascript"> /* The _paPixel array stores information about purchases. You will push arrays containing purchase details onto it. The first element in each array determines the type of information being provided - it is a string designating the name of the field. */ var _paPixel = _paPixel || []; _paPixel.push(['merchantId', 'ABCDEFGHIJKLMN']); /* CHANGE THIS TO YOUR AMAZON MERCHANT ID */ _paPixel.push(['type', 'purchase']); _paPixel.push(['uniqueEventId', '${order.orderId}' ]); /* For each type of item purchased, you should push an array of purchase details onto _paPixel. The first element of each array should be 'items', and you should provide the following, respectively: - SKU of the item on Amazon (this should be a JS String) - quantity of the item purchased (this should be a JS Number) - price of the item purchased (unit price) (this should be a JS String) - currency used to purchase the item (this should be a JS String) For example, an output string should look like (order matters): _paPixel.push(['items', 'your-product-sku-1', 10, '39.99', 'USD']); */ #foreach($item in $order.items) _paPixel.push(['items', '${item.itemId}', $item.quantity, '${formatHelper.formatMoney($item.unitCostWithSubtotalDiscount)}', 'USD']); #end ##foreach item _paPixel.push(['submit']); (function() { var paPixel = document.createElement('script'); paPixel.type = 'text/javascript'; paPixel.async = true; paPixel.src = '//d10so77biaxg0k.cloudfront.net/pa_pixel.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(paPixel, s); })(); </script>
To deploy this code let's click on the Conversion Tracking tab of StoreFronts.
Now click on the "Custom" tab.
Paste in the code into the Conversion HTML field. Â Make sure you notice the line highlighted in the screenshot below where you need to enter your own Amazon merchant ID.
Place a test order and make sure that the pixel fired properly on your receipt. Â