VP Conversion Tracking User Guide

VP Conversation Tracking is a VirtueMart 3 plugin that helps you to track conversations of your Ads from all advertising platforms like Google Adwords, Facebook Ads, Twitter Ads, Bing Ads etc. It also allows you to customise your Thank You page or order confirmation page just the way you want. You can even show the full order details immediately after order confirmation. The plugin is compatible to Joomla! 3.

Installation

You can download the latest installation packages from our site's download page for VP Conversion Tracking. If you have an older version of Joomla! or VirtueMart or PHP please check the compatibility section to find the version of VP Conversion Tracking compatible with your Joomla!, VirtueMart and PHP versions.

It is a Joomla! System Plugin and can be installed directly through Joomla! Extension Installer. It can also be used to upgrade VP Conversion Tracking; just install it without uninstalling the previous release.

Uninstallation

You can uninstall the component just like any other Joomla! plugin. In your site's back-end, just go to Extensions Manager, click on Uninstall, select System - VP Conversion Tracking and click on Uninstall. This will completely remove VP Conversion Tracking plugin from your site.

Configuration

Order Confirmation Page

VirtueMart Order Confirmation Page

Order Confirmation Page section allows you to customise your order confirmation page layout.

Select Page

Select the page which you want your customers to see after successfully placing an order. Available options are -

  1. Standard VirtueMart: If you select this, you will see no changes in the order confirmation page layout. It will keep using standard VirtueMart Order Confirmation page where the contents of the page is controlled by the respective payment plugins.
  2. Thank You Page (VPCT): If you select this, it displays the specially designed Thank You page of VP Conversion Tracking plugin. The displayed contents in this page can be further customise with the following options displayed below.
  3. Order Details: If you select this, the customers are redirected to the order details page immediately after the order is placed.
  4. Custom Menu Item: If you select this, you can redirect the user to a specific menu item when an order is placed. You can select the menu item below.
Select Custom Menu Item

This option is displayed when you Select Page as Custom Menu Item. You can assign your desired menu item from the drop down list.

Related Products Thank You Page (VPCT) Specific Option.

If show, related products of ordered products are displayed in the Thank You page.

Maximum Related Products Thank You Page (VPCT) Specific Option.

Maximum number of related products to be displayed.

Suggested Products Thank You Page (VPCT) Specific Option.

If show, suggested products i.e. Custom who bought this products also bought this products are displayed in the Thank You page.

Maximum Suggested Products Thank You Page (VPCT) Specific Option.

Maximum number of suggested products to be displayed.

Products Per Row - Desktop Thank You Page (VPCT) Specific Option.

Products per row for large devices like modern desktops. Window width >=1200px.

Products Per Row - Smaller Desktop Thank You Page (VPCT) Specific Option.

Products per row for medium devices like older desktops. Window width >=992px and <1200px.

Products Per Row - Tablet Thank You Page (VPCT) Specific Option.

Products per row for smaller devices like tablet. Window width >=768px and <992px.

Products Per Row - Phone Thank You Page (VPCT) Specific Option.

Products per row for small devices like mobile phones. Window width <768px.

Displayed Price Types Thank You Page (VPCT) Specific Option.

Select price variants to be displayed against the displayed products. Default is Final Sales Price.

Price Labels Thank You Page (VPCT) Specific Option.

If show, labels of the price variants are displayed.

Google Ecommerce and Google Adwords Conversion Tracking

Google Analytics Ecommerce Tracking and Google Adwords Conversion Tracking

In this section you can setup Google Analytics Tracking, Google Ecommerce Conversion Tracking and also Google Adwords Conversion Tracking. For Ecommerce tracking you can use either Google Ecommerce (ecommerce.js) or Google Enhanced Ecommerce (ec.js) tracking code snippets in your order confirmation page. You can also use Google Tag Manager (GTM) for all of them. If you are still using old ga.js, you will need to first migrate to analytics.js or gtag.js or Google Tag Manager.

Enable Ecommerce Tracking

If yes, Google Analytics Ecommerce Tracking or Google Analytics Enhanced Ecommerce codes snippets are added to the site.

Analytics Tracking Method

Select your Google Analytics Tracking method i.e. analytics.js, gtag.js or Google Tag Manager (GTM).

Google Analytics 4 (GA4)

Enable this option only if you are using Google Analytics 4.

Global Pageview Tracking Installed

Set this yes, if your site is already using Global Page View tracking for all pages. If no, the plugin will first load Global Page View tracking before initialising ecommerce tracking.

Add Global Pageview Tracking to All Pages

If yes, Global Pageview Tracking codes will be automatically added to all pages of your site. We recommend that you remove the previously added Google Analytics tracking codes from your site and enable this option to allow the plugin to add the tracking codes in proper order. Please note that this parameter is available only when Global Pageview Tracking Installed is set as No.

Analytics Client ID / Measurement ID

If option is available only when Global Pageview Tracking Installed is set as No and Analytics Tracking Method is set as analytics.js or gtag.js. Enter your Google Analytics Client ID or Measurement ID in case of Google Analytics 4 (GA4).

Analytics GTM Container ID

If option is available only when Global Pageview Tracking Installed is set as No and Analytics Tracking Method is set as Google Tag Manager (GTM). Enter your Google Tag Managers Container ID here.

Enhanced Ecommerce / Migrated to GTM + GA4 from Enhanced Ecommerce

Set this as yes, if you are using Enhanced Ecommerce (ec.js) tracking or migrated to GTM + GA4 from Enhanced Ecommerce tracking to GA4. If no, standard Ecommerce Tracking (ecommerce.js) will be used.


Enable Adwords Conversion Tracking

If yes, Google Adwords Conversion Tracking snippet is added to the site.

Adwords Tracking Method

Select your Google Adwords Tracking method i.e. gtag.js or Google Tag Manager.

Global Adwords Tracking Installed

Set this yes, if you have already installed Global Adwords Tracking snippers to all pages of your site. If no, the plugin will first load Global Global Adwords Tracking before initialising Adwords Conversion tracking.

Install Global Adwords Tracking to All Pages

If yes, the plugin will automatically add Global Adwords Tracking snippers to all pages of your site. Please note that this parameter is available only when Global Adwords Tracking Installed is set as No.

Adwords Conversion ID

Provide your Google Adwords Conversion ID. Please note that this parameter is available only when Global Adwords Tracking Installed is set as No and Adwords Tracking Method is set as gtag.js.

Adwords Conversion Label

Provide your Google Adwords Conversion Label. Please note that this parameter is available only when Global Adwords Tracking Installed is set as No and Adwords Tracking Method is set as gtag.js.

Adwords GTM Container ID

Provide your Google Tag Manager Container ID for Adwords. If you are using the same GTM container also for Analytics tracking then enter the same Container ID. Please not that Google Tag Manager will not automatically track Adwords conversions. You will need to configure data variables derived from the Ecommerce or Enhance Ecommerce Datalayer and then configure the Tag accordingly. Refer to this Google documentation to learn more - https://support.google.com/tagmanager/answer/6105160?hl=en. Please note that this parameter is available only when Global Adwords Tracking Installed is set as No and Adwords Tracking Method is set as Google Tag Manager (GTM).


Tracking Currency

If User's Currency, all data is passed in customer's selected currency. If Vendor's Currency, all data is passed in shop owners default currency.

Location

Set the location where the codes to be placed in the order confirmation page. If HEAD, placed before the closing </head> tag. If BODY, placed before the closing </body> tag. If PAGE, placed at the bottom of VP Conversion Tracking - Thank Page.

Facebook Ads Conversion Tracking

Facebook Ads Conversion Tracking
Enable Facebook Ads Conversion Tracking

If yes, Facebook Ads Conversion Tracking snippets are added to the site.

Base Facebook Pixel Installed

Set this as yes if you have already installed the base Facebook pixel for all pages of your site. If no, the plugin which first initialise Base Facebook Pixel before calling the conversion trackiong function.

Install Base Facebook Pixel to All Pages

If yes, the plugin will automatically add base Facebook tracking pixels to all pages of your site. Please note that this option is available only when Base Facebook Pixel Installed is set as No.

Track Product View

If yes, product page view tracking data will be passed to Facebook.

Facebook Pixel ID

Provide your Facebook ads conversion tracking pixel id. Please note that this option is available only when Base Facebook Pixel Installed is set as No and Install Base Facebook Pixel to All Pages is set as Yes.

Tracking Currency

If User's Currency, all data is passed in customer's selected currency. If Vendor's Currency, all data is passed in shop owners default currency.

Location

Set the location where the codes to be placed in the order confirmation page. If HEAD, placed before the closing </head> tag. If BODY, placed before the closing </body> tag. If PAGE, placed at the bottom of VP Conversion Tracking - Thank Page.

Shopper Approved

Shopper Approved - Customer Satisfaction Survey

This section allows you to show Customer Satisfaction Survey of ShopperApproved.com in order confirmation page.

Enable Survey

If yes, Shopper Approved - Customer Satisfaction Survey is displayed in order confirmation page.

Site ID

Enter your unique site id from ShopperApproved.com.

Force Comments

If enabled, comments field in the survey form becomes a mandatory field.

Send Email

If yes, email option is enabled in survey request script.

Custom Global Tracking Codes

Custom Global Tracking Codes

You can add your custom global tracking codes here. These tracking codes are added to every pages of your site. You can add multiple snippets by clicking on Add New button. To remove click on Remove button.

Name

Give a name to your tracking code snippet. Example: Facebook Analytics, Bing Ads etc.

Enabled

If yes, the tracking code snippet is added to the pages.

Location

The location where the codes to be placed in the order confirmation page. If HEAD, placed before the closing </head> tag. If BODY, placed before the closing </body> tag.

Tracking Code Snippet

Add your tracking codes here. You can also copy the exact codes from the tracking service provider and paste them here.

Custom Conversion Tracking Codes

Custom Conversion Tracking Codes

You can add your custom conversion tracking codes here. These tracking codes are added only to the order confirmation page or to the thank you page. You can also pass order information or order data using the Variable Tags in your tracking codes. You can add multiple snippets by clicking on Add New button. To remove click on Remove button.

Name

Give a name to your tracking code snippet. Example: Google Ads, Facebook Ads etc.

Enabled

If yes, tracking code snippet is placed to the order confirmation page.

Location

The location where the codes to be placed in the order confirmation page. If HEAD, placed before the closing </head> tag. If BODY, placed before the closing </body> tag. If PAGE, placed at the bottom of VP Conversion Tracking - Thank Page.

Tracking Code Snippet

Copy & paste your tracking codes snippet here. You can pass order details variables (like order total, order currenct etc) by inserting the respective variable tag from Order Information drop down list. Select the variable, place the cursor at your desired position in the snippet text area and click on Insert button to insert the tag.

For example, Order Total can be rendered using {{ order_total_rounded }} tag. Similarly Order Currency can be rendered using {{ order_currency_code }}.

Here is an example of Google Adwords Conversion Tracking codes with variable order total and variable currency.

<!-- Google Code for Order Confirmation Conversion Page -->
<script type="text/javascript">
/* <![CDATA[ */
        var google_conversion_id = XXXXXXXXXX;
        var google_conversion_language = "en";
        var google_conversion_format = "3";
        var google_conversion_color = "ffffff";
        var google_conversion_label = "C8OWCI_V4WcQzuSq7AM";
        var google_conversion_value = 582.25;
        var google_conversion_value = {{ order_total_rounded }};
        var google_conversion_currency = "USD";
        var google_conversion_currency = "{{ order_currency_code }}";
        var google_remarketing_only = false;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"></script>
<noscript>
        <div style="display:inline;">
                <img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/XXXXXXXXXX/?value={{ order_total_rounded }}&amp;currency_code={{ order_currency_code }}&amp;label=C8OWCI_V4WcQzuSq7AM&amp;guid=ON&amp;script=0"/>
        </div>
</noscript>

Similarly you can add any tracking codes from any advertising platform.

Advanced

Force Load VM

If yes, VirtueMart is force loaded. Disable this option only if you are facing some PHP fatal errors using the plugin.

Thank You Page Router

This is a Thank You Page (VPCT) specific option. Select how Thank You Page of VP Conversion Tracking should be routed when SEF URL option is enabled. Default is Enabled. If you are using some 3rd party SEF URL extension then you may need to set this to None or No-SEF mode.

Layout Override

You can override the Thank You Page (VPCT) layout in your template.

Copy the files from - plugins/system/vpconversiontracking/views/thankyou/tmpl/
to templates/YOUR-JOOMLA-TEMPLATE/html/com_virtuemart/thankyou/.

Now you are free to make your necessary changes in the layout files.

Variable Tags

Here a list of variables which you can use in your tracking codes to pass respective information.

#TagDescription
Order
1{{ virtuemart_order_id }}Prints Order ID
2{{ invoice_number }}Prints Invoice Number if available
3{{ virtuemart_user_id }}Prints User ID
4{{ virtuemart_vendor_id }}Prints Vendor ID
5{{ order_number }}Prints Order Number
6{{ customer_number }}Prints Customer Number
7{{ order_pass }}Prints Order Pass
8{{ order_create_invoice_pass }}Prints Order Create Invoice Pass
9{{ order_total }}Prints Order Total
10{{ order_total_rounded }}Prints Order Total Rounded
11{{ order_salesPrice }}Prints Order Salesprice
11{{ order_salesPrice_after_couponDiscount }}Prints Total Net Product Price after Coupon Discount
12{{ order_billTaxAmount }}Prints Order Billtaxamount
13{{ order_billTax }}Prints Order Billtax
14{{ order_billDiscountAmount }}Prints Order Billdiscountamount
15{{ order_discountAmount }}Prints Order Discountamount
16{{ order_subtotal }}Prints Order Subtotal
16{{ order_subtotal_after_couponDiscount }}Prints Total Base Product Price after Coupon Discount
17{{ order_tax }}Prints Order Tax
18{{ order_shipment }}Prints Order Shipment Price
19{{ order_shipment_tax }}Prints Order Shipment Tax
20{{ order_payment }}Prints Order Payment Price
21{{ order_payment_tax }}Prints Order Payment Tax
22{{ coupon_discount }}Prints Coupon Discount
23{{ coupon_code }}Prints Coupon Code
24{{ order_discount }}Prints Order Discount
25{{ order_currency }}Prints Order Currency
26{{ order_currency_code }}Prints Order Currency Code
27{{ order_status }}Prints Order Status Code
28{{ order_status_name }}Prints Order Status Name
29{{ user_currency_id }}Prints User Currency ID
30{{ user_currency_rate }}Prints User Currency Rate
31{{ user_currency_code }}Prints User Currency Code
32{{ total_in_user_currency }}Prints Total In User Currency
33{{ payment_currency_id }}Prints Payment Currency ID
34{{ payment_currency_code }}Prints Payment Currency Code
35{{ payment_currency_rate }}Prints Payment Currency Rate
36{{ total_in_payment_currency }}Prints Total In Payment Currency
37{{ virtuemart_paymentmethod_id }}Prints Paymentmethod ID
38{{ payment_method }}Prints Payment Method Name
39{{ virtuemart_shipmentmethod_id }}Prints Shipmentmethod ID
40{{ shipment_method }}Prints Shipment Method Name
41{{ oc_note }}Prints OC Note
42{{ delivery_date }}Prints Delivery Date
43{{ order_language }}Prints Order Language
44{{ customer_note }}Prints Customer Note
45{{ ip_address }}Prints IP Address
46{{ created_on }}Prints Created On
47{{ created_by }}Prints Created By
48{{ modified_on }}Prints Modified On
49{{ modified_by }}Prints Modified By
50{{ order_link }}Prints Order Link
51{{ order_link_raw }}Prints Order Link Raw
52{{ pdf_link }}Prints PDF Link if available
Billing Address
1{{ details.BT.email }}Prints E-Mail
2{{ details.BT.company }}Prints Company Name
3{{ details.BT.title }}Prints Title
4{{ details.BT.first_name }}Prints First Name
5{{ details.BT.middle_name }}Prints Middle Name
6{{ details.BT.last_name }}Prints Last Name
7{{ details.BT.address_1 }}Prints Address 1
8{{ details.BT.address_2 }}Prints Address 2
9{{ details.BT.zip }}Prints Zip / Postal Code
10{{ details.BT.city }}Prints City
11{{ details.BT.virtuemart_country_id }}Prints Country
12{{ details.BT.virtuemart_state_id }}Prints State / Province / Region
13{{ details.BT.phone_1 }}Prints Phone
14{{ details.BT.phone_2 }}Prints Mobile phone
15{{ details.BT.fax }}Prints Fax
Shipping Address
1{{ details.ST.address_type_name }}Prints Address Nickname
2{{ details.ST.company }}Prints Company Name
3{{ details.ST.first_name }}Prints First Name
4{{ details.ST.middle_name }}Prints Middle Name
5{{ details.ST.last_name }}Prints Last Name
6{{ details.ST.address_1 }}Prints Address 1
7{{ details.ST.address_2 }}Prints Address 2
8{{ details.ST.zip }}Prints Zip / Postal Code
9{{ details.ST.city }}Prints City
10{{ details.ST.virtuemart_country_id }}Prints Country
11{{ details.ST.virtuemart_state_id }}Prints State / Province / Region
12{{ details.ST.phone_1 }}Prints Phone
13{{ details.ST.phone_2 }}Prints Mobile phone
14{{ details.ST.fax }}Prints Fax
Products/Items
1{{# items }} {{ virtuemart_product_id }} {{/ items }}Prints all Product ID in loop
2{{# items }} {{ virtuemart_vendor_id }} {{/ items }}Prints all Vendor ID in loop
3{{# items }} {{ product_available_date }} {{/ items }}Prints all Product Available Date in loop
4{{# items }} {{ product_basePriceWithTax }} {{/ items }}Prints all Product Baseprice With Tax in loop
5{{# items }} {{ product_desc }} {{/ items }}Prints all Product Description in loop
6{{# items }} {{ product_discountedPriceWithoutTax }} {{/ items }}Prints all Product Discounted Price Without Tax in loop
7{{# items }} {{ product_final_price }} {{/ items }}Prints all Product Final Price in loop
8{{# items }} {{ product_in_stock }} {{/ items }}Prints all Product In Stock in loop
9{{# items }} {{ product_item_price }} {{/ items }}Prints all Product Item Price in loop
10{{# items }} {{ product_lwh_uom }} {{/ items }}Prints all Product Lwh Uom in loop
11{{# items }} {{ product_mpn }} {{/ items }}Prints all Product Mpn in loop
12{{# items }} {{ product_name }} {{/ items }}Prints all Product Name in loop
13{{# items }} {{ product_variant }} {{/ items }}Prints all Product Variant in loop
14{{# items }} {{ product_ordered }} {{/ items }}Prints all Product Ordered in loop
15{{# items }} {{ product_parent_id }} {{/ items }}Prints all Product Parent ID in loop
16{{# items }} {{ product_priceWithoutTax }} {{/ items }}Prints all Product Pricewithouttax in loop
17{{# items }} {{ product_quantity }} {{/ items }}Prints all Product Quantity in loop
18{{# items }} {{ product_s_desc }} {{/ items }}Prints all Product Short Description in loop
19{{# items }} {{ product_sales }} {{/ items }}Prints all Product Sales in loop
20{{# items }} {{ product_sku }} {{/ items }}Prints all Product SKU in loop
21{{# items }} {{ category_name }} {{/ items }}Prints all Category Name in loop
22{{# items }} {{ product_special }} {{/ items }}Prints all Product Special in loop
23{{# items }} {{ product_subtotal_discount }} {{/ items }}Prints all Product Subtotal Discount in loop
24{{# items }} {{ product_subtotal_with_tax }} {{/ items }}Prints all Product Subtotal With Tax in loop
25{{# items }} {{ product_tax }} {{/ items }}Prints all Product Tax in loop
26{{# items }} {{ product_unit }} {{/ items }}Prints all Product Unit in loop
27{{# items }} {{ product_url }} {{/ items }}Prints all Product Url in loop
28{{# items }} {{ product_weight }} {{/ items }}Prints all Product Weight in loop
29{{# items }} {{ product_weight_uom }} {{/ items }}Prints all Product Weight Uom in loop
30{{# items }} {{ low_stock_notification }} {{/ items }}Prints all Low Stock Notification in loop
31{{# items }} {{ slug }} {{/ items }}Prints all Slug/Alias in loop
32{{# items }} {{ virtuemart_category_id }} {{/ items }}Prints all Category ID in loop
33{{# items }} {{ virtuemart_manufacturercategories_id }} {{/ items }}Prints all Manufacturer Categories ID in loop
34{{# items }} {{ mf_desc }} {{/ items }}Prints all Manufacturer Desc in loop
35{{# items }} {{ mf_email }} {{/ items }}Prints all Manufacturer Email in loop
36{{# items }} {{ mf_name }} {{/ items }}Prints all Manufacturer Name in loop
37{{# items }} {{ mf_url }} {{/ items }}Prints all Manufacturer Url in loop

Product Variables

If you watch the above list carefully you can find that all product variables output in a loop. This is because an order can have several items and we need to loop through items list to fetch all details.

Tracking codes snippets are JavaScript. Therefore when you need to pass product information in most cases you will need to build a array of products containing relevant data/information. You can achieve this several ways. Here are few examples.

<script type="text/javascript">
// Create a empty array which will contain all product information
var products = [];

// Loop through all items and push/add individual product details object to the products array
{{# items }}
products.push({
    id: '{{ virtuemart_product_id }}',
    name: '{{ product_name }}',
    variant: '{{ product_variant }}',
    price: '{{ product_final_price }}'
});
{{/ items }}
</script>

The above codes will output like below depending on your ordered items.

<script type="text/javascript">
// Create a empty array which will contain all product information
var products = [];

// Loop through all items and push/add individual product details object to the products array
products.push({
    id: '67',
    name: 'Marine Cap',
    variant: 'Cap Size S-M',
    price: '21.48000'
});
products.push({
    id: '72',
    name: 'Poncho',
    variant: 'Clothing weave Twill, Clothing size M',
    price: '29.88000'
});
products.push({
    id: '73',
    name: 'Dress',
    variant: 'Clothing weave Twill, Clothing size XS',
    price: '539.88000'
});
</script>

You can also build the same above array of product objects in a different manner like below.

<script type="text/javascript">
// Create an array of all product objects
var products = [
{{# items }}
{
    id: '{{ virtuemart_product_id }}',
    name: '{{ product_name }}',
    variant: '{{ product_variant }}',
    price: '{{ product_final_price }}'
},
{{/ items }}
];
</script>

The above codes will output like below depending on your ordered items.

<script type="text/javascript">
// Create an array of all product objects
var products = [
{
   id: '67',
   name: 'Marine Cap',
   price: '21.48000',
   variant: 'Cap Size S-M'
},
{
   id: '72',
   name: 'Poncho',
   price: '29.88000',
   variant: 'Clothing weave Twill, Clothing size M'
},
{
   id: '73',
   name: 'Dress',
   price: '539.88000',
   variant: 'Clothing weave Twill, Clothing size XS'
},
];
</script>