102. Getting Started for HandL UTM Grabber V3

How to Use HandL UTM Grabber / Tracker How to add custom parameters How to Enable GDPR How to Set Cookie Duration How to Append UTM First / Last Touch Attribute How to Track Organic Traffic There is no UTM collected?

How to use?

1-WP’s Native Short Codes 2-Input Field Wrapper 3-Hassle Free Implementation (No Short code)

How to use?

Native WP Shortcodes

One great feature of the plugin is the UTM variables are saved in client’s browser and even though there is no UTM variables in URL, the variables can still be accessible via shortcode across any page/widget of your website.

UTM Parameters (Last Touch)

[utm_campaign] – Prints out utm_campaign variable.
[utm_source] – Prints out utm_source variable.
[utm_term] – Prints out utm_term variable.
[utm_medium] – Prints out utm_medium variable.
[utm_content] – Prints out utm_content variable.
[gclid] – Prints out gclid variable. Google Ads click ID
[fbclid] – Prints out fbclid variable. Facebook Ads click ID
[msclkid] – Prints out msclkid variable. Bing Ads click ID

UTM Parameters (First Touch)

[first_utm_campaign] – Prints out utm_campaign variable for first touch.
[first_utm_source] – Prints out utm_source variable for first touch.
[first_utm_term] – Prints out utm_term variable for first touch.
[first_utm_medium] – Prints out utm_medium variable for first touch.
[first_utm_content] – Prints out utm_content variable for first touch.
[ad_id] - Facebook Ad Id
[adset_id] - Facebook Ads Id
[ad_name] - Facebook Ads Name
[adset_name] - Facebook Adset Name
[placement] - Facebook Placement
//you can add many more using custom paramaters.
[campaignid] - Google Ads ValueTrack Campaign Id
[adgroupid] - Google Ads ValueTrack Ads Group Id
[keyword] - Google Ads ValueTrack Keyword
[placement] - Google Ads ValueTrack Placement
//you can add many more using custom paramaters.

Other HandL UTM Grabber Parameters

[handl_original_ref] - original referral - first touch!
[handl_landing_page] - landing page - first touch!
[handl_landing_page_base] - - landing page base domain - first touch!
[handl_ip] - ip of the user
[handl_ref] - last touch referral
[handl_ref_domain] - last touch referral - domain only
[handl_url] - last touch url
[handl_url_base] - base URL only of handl_url

[organic_source] - organic source href (e.g. https://www.google.com/some/path)
[organic_source_str] - organic source (Google, Bing, Instagram etc)
[gaclientid] - Google Analytics clientid
[user_agent] - user (browser) agent
[traffic_source] - (Last Touch) Paid, Organic, Direct, Referral, Social
[first_traffic_source] - (First Touch) Paid, Organic, Direct, Referral, Social

[handlID] - Unique ID generated by HandL UTM Grabber

See what is the difference of all the handl_ params here What is the difference between all the handl params?

You get the gist by now, you can add ANY custom parameter you defined in the settings

[user]
[email]
[affid]
[cid]

Other internal COOKIES not meant for tracking, but needed for our plugin to function

HandLtestDomainName - to automatically get the domain for tracking (via client side) - you can overwrite this using Domain under settings.
HandLtestDomainNameServer - to automatically get the domain for tracking (via server side) - you can overwrite this using Domain under settings. 
How to use?

Input Field Wrapper

There are some places you are not able to use WP’s native shortcodes. One example is when you use HTML in WYSWYG editor. If you directly copy paste the HTML below in your WP editor, you will see that the shortcode breaks.

<input type="hidden" name="utm_campaign" id="utm_campaign" value="HandL UTM Grabber Readme" />

In order to prevent this, we recommend using the following shortcode wrappers.

UTM Parameters (Last Touch)

[utm_campaign_i]<input type="hidden" name="utm_campaign" value="%s" />[/utm_campaign_i]
[utm_source_i]<input type="hidden" name="utm_source" value="%s" />[/utm_source_i]
[utm_term_i]<input type="hidden" name="utm_term" value="%s" />[/utm_term_i]
[utm_medium_i]<input type="hidden" name="utm_medium" value="%s" />[/utm_medium_i]
[utm_content_i]<input type="hidden" name="utm_content" value="%s" />[/utm_content_i]
[gclid_i]<input type="hidden" name="gclid" value="%s" />[/gclid_i]

UTM Parameters (First Touch)

[first_utm_campaign_i]<input type="hidden" name="first_utm_campaign" value="%s" />[/first_utm_campaign_i]
[first_utm_source_i]<input type="hidden" name="first_utm_source" value="%s" />[/first_utm_source_i]
[first_utm_term_i]<input type="hidden" name="first_utm_term" value="%s" />[/utm_termfirst_utm_term_i_i]
[first_utm_medium_i]<input type="hidden" name="first_utm_medium" value="%s" />[/first_utm_medium_i]
[first_utm_content_i]<input type="hidden" name="first_utm_content" value="%s" />[/first_utm_content_i]
[ad_id_i]<input type="hidden" name="ad_id" value="%s" />[/ad_id_i]
[adset_id_i]<input type="hidden" name="ad_id" value="%s" />[/adset_id_i]
[ad_name_i]<input type="hidden" name="ad_name" value="%s" />[/ad_name_i]
[adset_name_i]<input type="hidden" name="adset_name" value="%s" />[/adset_name_i]
[placement_i]<input type="hidden" name="placement" value="%s" />[/placement_i]
//many more...
[campaignid_i]<input type="hidden" name="campaignid" value="%s" />[/campaignid_i]
[adgroupid_i]<input type="hidden" name="adgroupid" value="%s" />[/adgroupid_i]
[keyword_i]<input type="hidden" name="keyword" value="%s" />[/keyword_i]
[placement_i]<input type="hidden" name="placement" value="%s" />[/placement_i]
//many more...

Other HandL UTM Grabber Parameters

[handl_original_ref_i]<input type="hidden" name="handl_original_ref" value="%s" />[/handl_original_ref_i]
[handl_landing_page_i]<input type="hidden" name="handl_landing_page" value="%s" />[/handl_landing_page_i]
[handl_ip_i]<input type="hidden" name="handl_ip" value="%s" />[/handl_ip_i]
[handl_ref_i]<input type="hidden" name="handl_ref" value="%s" />[/handl_ref_i]
[handl_url_i]<input type="hidden" name="handl_url" value="%s" />[/handl_url_i]

[organic_source_i]<input type="hidden" name="organic_source" value="%s" />[/organic_source_i]
[organic_source_str_i]<input type="hidden" name="organic_source_str" value="%s" />[/organic_source_str_i]

[gaclientid_i]<input type="hidden" name="gaclientid" value="%s" />[/gaclientid_i]

[user_agent_i]<input type="hidden" name="user_agent" value="%s" />[/user_agent_i]

You get the gist by now, you can add ANY custom parameter you defined in the settings

[user_i]<input type="hidden" name="user" value="%s" />[/user_i]
[email_i]<input type="hidden" name="email" value="%s" />[/email_i]
[affid]<input type="hidden" name="affid" value="%s" />[/affid]
[cid]<input type="hidden" name="cid" value="%s" />[/cid]

To append all the UTMs to your link, you can use handl_all

[handl_all_i]<iframe src="https://someexternaldomain.com?%s" border="0" style="border: none; opacity: 1; visibility: visible;"></iframe>[/handl_all_i]

You can safely use the shortcode wrappers in your HTML content without worrying about breaking the code.

How to use?

Hassle Free Implementation (No shortcode)

Upon ativation of this plugin, it will fill the elements named “utm_source, utm_medium, utm_term, utm_content, utm_campaign, gclid” AUTOMAGICALLY! (by element name, id and class)

-Simple Examples:
<input type="hidden" name="utm_campaign" />
<input type="hidden" name="foo" id="utm_campaign" />
<input type="hidden" name="foo" class="utm_campaign" />
-More Complex Examples:
<div class="input-wrapper" id="utm_campaign">
	<input type="hidden" name="foo"/>
</div>
<div class="input-wrapper utm_campaign">
	<input type="hidden" name="foo"/>
</div>

If you are already using one of those names either in your form element name, id, or class. You do not have to use the shortcode or shortcode weappers. HandL UTM Grabber will automatically fill the corresponding fields.

Easy peasy 😃

How to add custom parameters?

How to add custom parameters?

Adding a Custom Parameter

1.Click UTM and select Custom fields

2.Type your parameter name and save changes

How to add custom parameters?

How to Add a fbclid as a custom parameter to track and collect?

Video Tutorial

How to add custom parameters?

How to add a 'affid' as a custom parameter to track and collect?

Video Tutorial

please click right to the video below and open link in new tab

How to add a 'affid' as a custom parameter to track and collect?

How to add custom parameters?

Track and capture fbclid, _fbc and _fbp

Add fbclid, _fbc and _fbp as custom parameters under UTM menu

ad they will be tracked and captured just like any other UTM parameters. So easy... :)

How to Enable GDPR?

How to Enable GDPR?

'Enabling GDPR' documentation with screenshots

1.Click UTM, check the "Enable GDPR" box in the HandL Options tab and save changes

You can see the cookie alert below after refreshing the page

image-1598256876237.JPG

How to Enable GDPR?

'Enabling GDPR' documentation video tutorial

Please watch the related Video Tutorial below

and click right to the video and open link in new tab

Setting GDPR in HandL UTM Grabber is very easy.

It is literally a click of a button to enable GDPR. Once it is enabled, clients will see a message in the footer to either accept or deny data collection.

If GDPR is active, there will be no data collected in client's browser until client gives consent (hit "Accept" button). User decision will be kept in COOKIES, so when user visits your site, it will honor user's previous decision.

It is also easy to integrate with other similar WordPress plugin developed such as "Cookie Notice" plugin, so basically if you are already using a GDPR plugin, you can integrate HandL UTM Grabber to recognize the GDPR plugin of your choice.

How to Set Cookie Duration?

How to Set Cookie Duration?

Setting the Cookie Duration

Video Tutorial

please click right to the video below and open link in new tab

Adjust Cookie Time as You Wish

1.Click UTM and set the cookie duration below the HandL Options tab

You can see the expiration date on developer console

How to Append UTM?

How to Append UTM?

Appending UTM Globally

1.Click UTM, check the "Append UTM" box in the HandL Options tab and save changes

NOTE: This may not work for some of the themes that are not using native wp_content filter. Or may not work for some of the Content builder plugin. If this method does not work, you can always append UTMs individually to your loinks an buttons using class variables utm-out. Please see Appending UTMs to the buttons using class name attributes for more.

How to Append UTM?

Appending UTMs to the buttons using class name attributes (Selectively)

If you have a button or link that you would like to append all the collected UTMs to. Use the class variable utm-out as it is shown below.

This technique is extremely useful if you are sending out traffic (ouf of your domain). Or you want to specifically append UTMs to some links.

<a href="https://www.someoutgoinglink.com/" class="utm-out">

HandL UTM Grabber automatically scan all the links and buttons having utm-out class and append all the UTMs automatically so your final URL will be like this.

<a href="https://www.someoutgoinglink.com/?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale&utm_term=term&utm_content=content" class="utm-out">

utm-out also works if it is at the parent level. For example

<div class="parent-div utm-out">
	<a href="https://www.someoutgoinglink.com/">
</div>

This will also populate all the UTMs like this

<div class="parent-div utm-out">
	<a href="https://www.someoutgoinglink.com/?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale&utm_term=term&utm_content=content">
</div>
How to Append UTM?

Appending UTMs to the Iframe src

You can append all the UTMs to your target website URL within iframe. This is actually very helpful, if you are using iframe for your optin forms and you would like to pass the UTM values captured to prefill your form.

It works very simple.

Your iframe code normally look like this

<iframe src="https://yourwebsite.com/optin-form" frameborder="0" width="1000" height="700" scrolling="no"></iframe>

simply add the utm-src class to your iframe like this

<iframe src="https://yourwebsite.com/optin-form" class="utm-src" frameborder="0" width="1000" height="700" scrolling="no"></iframe>

And you are good to passing all the UTMs to your iframe URL :)

How to Append UTM?

Appending UTMs using Shortcode

If none of the other propsed solutions here How to Append UTM? worked, you can always pull the UTM parameters using the shortcode.

For example

<a href="https://www.domain.com?utm_campaign=[utm_campaign]"></a>

<div class="some-cool-div" data-url="https://www.domain.com?utm_campaign=[utm_campaign]"></div>
How to Append UTM?

Append UTMs upon DOM change

Here is an example of snippet you can use to append UTMs upon a DOM change. This requires advance coding skills.

setTimeout(function(){ 

var target = document.querySelector('#storepoint-results')
var observer = new MutationObserver(function(mutations) {
	console.log(jQuery(target).find('.storepoint-onlinestore').length)
  if ( jQuery(target).find('.storepoint-onlinestore').length > 0 ){
  	var a = jQuery(target).find('.storepoint-onlinestore')
  	var target_url = a.attr('href')
  	var merged = jQuery.extend( {}, handl_utm, getSearchParams(target_url) )
  	var src = target_url.split("?")[0];
  	if ( !jQuery.isEmptyObject(merged) ){
    	var final_target = src + "?" + jQuery.param(merged)
    }
    a.attr('href', final_target)
  }
});
var config = { attributes: true, childList: true, characterData: true };
observer.observe(target, config);

 }, 500);
How to Append UTM?

Selecting specific parameters for append utm

In some rare instances, you might want to specify certain parameters to append and exclude the rest. Make your selections below, and only the chosen parameters will be appended to the links. This also applies to the utm-out, utm-out-js and utm-src feature. If no selection is made below, all parameters will be appended by default.

Simply click Append UTM tab:

Select the fields you'd like to append.

Save the form.

Only the selected paramters will be appended to your links.

First / Last Touch Attribute

First / Last Touch Attribute

First Touch

3.Open developer console

First / Last Touch Attribute

Last Touch

1.Change values in the url and refresh the page.

New values will be seen in the fields.

The old values are in the "first_utm" field.

First / Last Touch Attribute

'First & Last Touch Attribute' documentation video tutorial

Please watch the related Video Tutorial below

and click right to the video and open link in new tab

HandL UTM Grabber/Tracker for WordPress website : First & Last Touch Attribute

How to Track Organic Traffic?

How to Track Organic Traffic?

Organic Traffic UTM Parameters

Are you tracking all of your Organic traffic in Google Analytics?


[organic_source] - organic source href (e.g. https://www.google.com/some/path)
[organic_source_str] - organic source (Google, Facebook, Bing, Instagram etc)
How to Track Organic Traffic?

What do the organic tracking values mean?

You will often see the following following if you are tracking organic traffic using HandL UTM Grabber.

There is no UTM collected

HandL UTM Grabber works well with cache enabled websites. In most of the cases, you do not need to any server-side adjustments. Because our plugin leverages tracking client-side. However, if you feel that the tracking is not working, please do the appropriate steps based on your setup and server configuration.

There is no UTM collected

WP Engine is my webhost

If you are on WP Engine, you need to contact WP Engine support and let them know that you want to whitelist the following QUERY ARGS & COOKIES to prevent caching.

COOKIES

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid
//and all the custom parameters created by you

QUERY ARGS

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
//and all the custom queries you are capturing

Usually, this process takes couple of hours to complete. Hoever, you may want to wait longer for changes to completely take effect.

Still having problems? Let us know, clicking the chat bubble at the bottom right of the page.

There is no UTM collected

I have WP Rocket installed

**HandL UTM Grabber works well with cache enabled websites. In most of the cases, you do not need to the following adjustments. Because our plugin leverages tracking client-side. However, if you feel that the tracking is not working, please do the following steps.**

Before whitelisting the following COOKIES, please make sure to remove UTM query strings from our ignore list. And then continue with the following. You can do this by installing and activating the following small plugin.

If you have WP Rocket installed, you need to go to "Advanced Rules" and put the following entries under "Never Cache Cookies" section.

s1_1colkpp.png

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid

After this is implemented, make sure you start with a clean cache (incognito preferred) or hard refresh your browser and test again. It should work.

Still having problems? Let us know, clicking the chat bubble at the bottom right of the page.

There is no UTM collected

Common Troubleshooting Tips

Check whether request is returned from cache

Visit your website making sure UTMs are appended to the URL. Open up the developer console and navigate to "Network" tab and select the page request (usually at the top) and Select "Headers" in the right panel. Check the cache related headers, if your server does not have any cache you should see "Cache-Control: max-age=0, no-cache, s-maxage=10"

If there is cache, you should see something like "if-modified-since" or other cache related headers.

image_1e359il.png

This will tell you whether caching is coming from server side (Varnish, CloudFlare) or WordPress site (such as WP Rocket, WP Super Cache etc). Your solution will vary depending on where the cache is coming from. You can whitelist the cookie paramters or/and query arguments used in HandL UTM Grabber V3 or you may have to add the page in the exclusion page altogether.

There is no UTM collected

I am with FlyWheel

If you are on FlyWheel, you need to contact FlyWheel support and let them know that you want to whitelist the following QUERY ARGS & COOKIES to prevent caching.

COOKIES

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid
//and all the custom parameters created by you

QUERY ARGS

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
//and all the custom queries you are capturing

Usually, this process takes couple of hours to complete. Hoever, you may want to wait longer for changes to completely take effect.

Still having problems? Let us know, clicking the chat bubble at the bottom right of the page.

There is no UTM collected

I have SiteGround (SG) installed

There is no UTM collected

I'm hosting with Pair

There is no UTM collected

I'm hosting with Pantheon

There is no UTM collected

I'm using CloudFlare (CF)

Make sure the caching level is set as "Standard" shown in the image below

image_a30f3g.png

There is no UTM collected

I'm using HummingBird WP plugin

Make sure "Cache URL queries" turned off

end exclude the following COOKIES and all the custom parameters created by you.

COOKIES

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid
//and all the custom parameters created by you
There is no UTM collected

Kinsta is my webhost

If you are on Kinsta, you need to contact Kinsta support and let them know that you want to whitelist the following QUERY ARGS & COOKIES to prevent caching.

COOKIES

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid
HandLtestDomainName
//and all the custom parameters created by you

QUERY ARGS

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
//and all the custom queries you are capturing

Usually, this process takes couple of hours to complete. Hoever, you may want to wait longer for changes to completely take effect.

Still having problems? Let us know, clicking the chat bubble at the bottom right of the page.

There is no UTM collected

I use WP Super Cache

There is known caching issues with WP Super Cache plugin. We'll update this document as we have more information. In the mean time, you can try the adding the following code in your functions.php

function handl_add_wpsc_cookie_banner() {
    do_action( 'wpsc_add_cookie', 'utm_campaign' );
    do_action( 'wpsc_add_cookie', 'utm_medium' );
    do_action( 'wpsc_add_cookie', 'utm_term' );
    do_action( 'wpsc_add_cookie', 'utm_content' );
    do_action( 'wpsc_add_cookie', 'utm_source' );
}
add_action( 'init', 'handl_add_wpsc_cookie_banner' );
There is no UTM collected

I'm using W3 Total Cache

Please do the following changes in the plugin

Go to Performance > Rejected cookies and copy/paste the following text in there and save

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid

It should look like this.

There is no UTM collected

I'm on CloudFront

Please do the following changes in v

Create a new policy in CloudFront and attach it to your distribution.

You can include the following cookie exceptions

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid

It should look like this.

There is no UTM collected

I'm using LiteSpeed caching plugin

If you are using the LiteSpeed caching plugin, you should do the following settings in your WP to effectively capture UTMs.

Go to Settings

lightspeed2.png

lightspeed1.png

Copy the list below and add it in "Do not cache cookies" field

COOKIES

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid
//and all the custom parameters created by you

lightspeed3.png

Copy the list below and add it in "Do not cache query strings" field

QUERY ARGS

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
//and all the custom queries you are capturing

That's it. You are ready to go collecting UTMs :)

There is no UTM collected

I've NitroPack plugin

1) Ignored parameters

Make sure "Include the default ignored parameters" is disabled.

2) Excluded Cookies (Now Obsolete, see Variation Cookies below instead)

Add the following cookies and all the custom parameters you created in "Excluded Cookies" section.

image

COOKIES

utm_campaign, utm_source, utm_term, utm_medium, utm_content, gclid, first_utm_campaign, first_utm_source, first_utm_term, first_utm_medium, first_utm_content, handl_original_ref, handl_landing_page, handl_ip, handl_ref, handl_url, organic_source, gaclientid
//and all the custom parameters created by you

2) Variation Cookies

With Excluded ones (the method above), NitroPack wouldn't generate any cache for the pages containing your cookies.

While with Variation cookie, a new optimization would be created based on the different cookie values.

Still having problems? Let us know, clicking the chat bubble at the bottom right of the page.

There is no UTM collected

I'm hosted on CloudWays

You should exclude cookies from varnish cache via the Cloudways platform.

Navigate to Application Management > Application Settings > Varnish Settings.

Add the following cookies in there

COOKIES

utm_campaign
utm_source
utm_term
utm_medium
utm_content
gclid
first_utm_campaign
first_utm_source
first_utm_term
first_utm_medium
first_utm_content
handl_original_ref
handl_landing_page
handl_ip
handl_ref
handl_url
organic_source
gaclientid
//and all the custom parameters created by you
There is no UTM collected

I'm using WP Fastest Cache

Exclude COOKIES

In order for HandL UTM Grabber to work more efficiently, you may want to whitelist some of the COOKIES our plugin uses so they are not cached.

You can do so very easily following the steps

  1. Go to the settings for the WP Fastest Cache plugin
  2. Click on the “Exclude” tab.
  3. Click the "Add New Rule" button associated with "Exclude Cookies"
  4. Type the cookie name you use from Native WP Shortcodes in the text box.
  5. Click "Save".

There is no UTM collected

I'm using Wordfence

Wordfence has a feature called Live Traffic that serves an extra blank pageview to every new(?) visitor to check if they are a bot or real traffic.It is reported by our clients that HandL UTM Grabber must have been picking up the wordfence pageview as the first pageview as handl_url.

Proposed Solution: Turn off Live Traffic (switched from ALL to Security Only)

https://www.wordfence.com/help/tools/live-traffic/#traffic-logging-mode

There is no UTM collected

I've WP Optimize

Add these thhree lines of code under Cookies which, if present, will prevent caching (one per line) utm_* handl_* HandLtestDomainName

How to track Paid Ads?

How to track Paid Ads?

Facebook Ads Tracking

In order to track your ads on Facebook Ads, make sure you included UTMs to your final destination URL (landing URLs) as shown below

if you happen to append any other parameters (other than UTMs) to your final URL, make sure you also add them into custom parameters section in the plugin settings in WordPress dashboard so you can track them just like any other UTM parameters.

[ad_id] - Facebook Ad Id
[adset_id] - Facebook Ads Id
[ad_name] - Facebook Ads Name
[adset_name] - Facebook Adset Name
[placement] - Facebook Placement
//you can add many more using custom paramaters.
How to track Paid Ads?

Google Ads Tracking

In order to track UTMs from your Google Ads, make sure you created tracking templates at the campaign level and parameters of interest are added to oyur final URL (landing page URL)

See the list of the parameters you can use in Google Ads Google Ads ValueTrack Parameters

if you happen to append any other value track parameters (other than UTMs) to your final URL, make sure you also add them into custom parameters section in the plugin settings in WordPress dashboard so you can track them just like any other UTM parameters.

[campaignid] - Google Ads ValueTrack Campaign Id
[adgroupid] - Google Ads ValueTrack Ads Group Id
[keyword] - Google Ads ValueTrack Keyword
[placement] - Google Ads ValueTrack Placement
//you can add many more using custom paramaters.

Tracking Template {lpurl}?utm_term={keyword}

Final URL Suffix: utm_source=google&utm_medium=cpc&utm_campaign=EarlyAccessLaunchAds

Setting up a campaign-level tracking template in Google Ads is a process that involves several steps. Here's a step-by-step guide on how to go about it:

  1. Log Into Your Google Ads Account: Visit ads.google.com and sign in with your Google account.

  2. Navigate to the Campaigns Tab: Once you're logged in, click on "Campaigns" on the left-hand side of the page.

  3. Choose a Campaign: Look at the list of your campaigns and choose the one that you want to set up a tracking template for. Click on the name of that campaign.

  4. Go to Settings: Once you're in the specific campaign, click on the "Settings" tab.

  5. Scroll Down to Campaign URL Options: Scroll down until you see an option that says "Campaign URL options (advanced)". Click on it to expand the option.

  6. Enter Your Tracking Template: In the field that says "Tracking template", enter your tracking template. This should be a URL that includes any tracking parameters you want to use. A common example is {lpurl}?utm_campaign={your campaign name}&utm_source=google&utm_medium=cpc.

  7. Test the Tracking Template: To make sure your tracking template works properly, click on the "Test" button next to it. If it works, Google Ads will tell you "Landing page found". If there's a problem, it will give you an error message.

  8. Save Your Changes: Once you're happy with your tracking template and you've tested it, click on the "Save" button at the bottom of the page to save your changes.

Remember that the tracking template you use will depend on what specific data you want to track. The example given is quite common, but it may not be exactly what you need. Always make sure to tailor your tracking templates to your specific needs.

Also, be aware that tracking templates at the campaign level will apply to all ads in that campaign. If you want to use different tracking templates for different ads, you would need to set them at the ad level instead.

How to track Paid Ads?

LinkedIn Ads Tracking

Steps to Append UTM Parameters to LinkedIn Ads landing page

Identify the base URL of the landing page you want to track.

Decide on the parameters that you want to track. The possible parameters include:

utm_source:  Identify the source such as LinkedIn

utm_medium: Highlight the type of linkedin ad, like a paid ad.

utm_campaign: Specify the name of your LinkedIn ad campaign.

utm_content: Differentiate ads that share the same utm_campaign and utm_term.

utm_term:  Identify keywords for this specific ad (optional).

Let us assume you would like to track UTM parameters for your "summer sale campaign", using the medium "sponsored_ad" on the platform "linkedin".

The URL with parameters will look like:

https://www.yourwebsite.com/?utm_source=linkedin&utm_medium=sponsored_ad&utm_campaign=summer_sale_campaign

N.B: Don't forget to use '%20' instead of 'space' if you have multi words for UTM parameters.

Use this formed URL with attached UTM parameters as your landing page in the LinkedIn ad creation process.

By appending UTMs to your LinkedIn Ad landing pages, you will have a valuable insight into which ads drive more traffic and generate leads or conversions, allowing you to refine your marketing strategy more efficiently.

Remember, consistency is key when creating UTM parameters. Establish a naming convention for your UTMs to ensure reliable data. Don’t worry about the extra steps involved in this process; the valuable data you gather will significantly increase your Return On Advertising Spend (ROAS) and overall marketing insights.

Setting domain name

For registering the cookies, we use the main domain for better accessbility. In some servers, the logic to get the main domain might fail. We highly recommend that you put the domain name in UTM Grabber Setting page as shown below.

What does new IOS 14 release (privacy) change in terms of tracking?

What is the new privacy change?

Starting from IOS 14, Apple asks users for their permission to allow/disallow to track their activity. This change means a lot especially for advertesing platforms (such as Google, Facebook) or similar others who does third-party trakcing.

What is third-party tracking?

Third-party web tracking refers to the practice by which the tracker, other than the website directly visited by the user, tracks or assists in tracking the user’s visit to the site. Tracking is performed using domains other than the website domain (e.g. fb.com, doubleclick.net etc), hence the name third-party.

I'm advertising on Facebook, do I need to do anything?

Yes, Facebook has a very good support page explaining what you need to do as an advertiser. It is mainly, instead of using their domain for tracking data about your user, they let you verify your domain in Facebook and use your domain, avoiding the third-party tracking limitation by IOS 14.

My ads reporting is changed

If you notice that some of the KPIs in your reporting in Google and Facebook have changed, this does not necessarily imply that you are losing conversions. It is most likely due to the manner in which Facebook and Google report statistics. Both platforms announced that they are estimating conversions based on a model of similarly behaving users. You can read more here for Google about modeled online onversions and for Facebook about estimated reporting.

My tracking is impacted

If you think your tracking is impacted. Please see some of the major troubleshooting guides compiled here There is no UTM collected.

Has HandL UTM Grabber effected by this change?

No, HandL UTM Grabber never uses third-party tracking. All the assets come within the plugin file and there is no external script/cookies run on your server. All the tracking parameters are recorded on your domain and no where else!

Predefined parameters

Sometimes, you don't use the regular utm parameters as is (e.g. utm_campaign), and you need to use some other parameters instead to pass the data 3rd party site or forms.

Sometimes the form embed you created (iframe) expects parameter different than utm to prefill hidden fields.

In order to accomplish this:

First create the new parameter matching the name (in predefined variables)

So, here we are creating new_param and assigning the value of utm_campaign parameter.

Add the same parameter as custom parameter so it will be recognized as shortcode and included in utm-out and utm-src

You can use "Predefined value" for assigning default value for UTM parameters as well. For example. If you would like to assign a default value for utm_source. Simply type utm_source as key and 'Direct' as value. This value will be used when there is no utm_source present.

After completing the two steps above

You can use the new_param just like any other parameters in your site

[new_param] -> will pring the value of utm_campaign

Or you can append the new_param to your anchor link

<a class="utm-out" href="https://www.outlink.com/"> Test Link </a>

will append all the UTMs including the new_param like this

<a class="utm-out" href="https://www.outlink.com/?utm_campaign=campaign1234&new_param=campaign1234"> Test Link </a>

Or you can append the new_param to your iframe source

<iframe class="utm-src" src="https://www.outlink.com/" />

will append all the UTMs including the new_param like this

<iframe class="utm-src" src="https://www.outlink.com/?utm_campaign=campaign1234&new_param=campaign1234" />

UTMs disappear in URL, does the plugin still track?

Short answer is "absolutely yes"...

HandL UTM Grabber is a cookie based tracker. As soon as prospects hit your site with UTM data, they will be recorded in the COOKIES (client-side). And when ever they are needed (for conversion), they will be accessed from COOKIES. Hence, you don't need UTMs appended to every single URL in your website at all. You only want to append UTMs to the landing page URL to get recorded.

Having said that, if you are sending traffic outside of your site and want to pass UTMs to external domain. You can do so in two ways...

  1. You can append UTMs globally to all the URLs in your site. See this article for more information Appending UTM Globally

  2. You can append all the UTM parameters to a specific outbound link. Please see the article here Appending UTMs to the buttons using class name attributes (Selectively).

Generating dynamic content based on UTM parameters

There are three different ways of accmomplishing this...

  1. Using shortcode method. You can place any shortcodes in your site and it will print the value of the parmeter directly. See here for the list of the parameters Native WP Shortcodes.

  2. Add these two lines into wp-content/plugins/handl-utm-grabber-v3/js/handl-utm-grabber.js After line 76
jQuery("[class*="+v+"_out]").html(curval)
jQuery("[id*="+v+"_out]").html(curval)

And then you can add HTML templates like this in your page

<div class="utm_campaign_out"></div>

When there is utm_campaign present in the Cookies, the value will be printend between the div tag you created.



3) Client side integration You can check whether certain cookies present by using Cookies function that comes with our plugin and then integrate your own logic around that.

For example: Let's print some dynamic content if utm_campaign is present.

var cmp_value = Cookies.get('utm_campaign')
if ( cmp_value != undefined ){
	var my_html = `<p>This is the value of utm_campaign: ${cmp_value}</p>`
	jQuery('.dynamic_content_class').html(my_html)
}

Differentiate whether Paid / Organic / Direct / Referral

As of v3.0.36, there is a new cookie named traffic_source.

Even if you do not use any query arguments (e.g., utm_ params) in your link, we can accurately identify the traffic source based on various signals.

In order to capture traffic_source information in your forms, you may have to add traffic_source as custom parameters in UTM. See How to add custom parameters?

traffic_source is a last-touch attribute. If you want the first-touch version of this parameter, use first_traffic_source.

What is the difference between all the handl params?

[handl_original_ref] - original referral - first touch!
[handl_landing_page] - landing page - first touch!
[handl_ref] - last touch referral
[handl_url] - last touch url

Let's say you have a link to your website from google.com to domain.com/page1 And user click from Google, he/she lands on page1 and after that they go to page2 to convert

So it is like Google -> Page1 -> Page2 (Conversion)

The params will populate the following data:

handl_original_ref = Google.com handl_landing_page = domain.com/page1

handl_ref = domain.com/page1 handl_url = domain.com/page2

Can't activate the license - Not Found

If you encounter an error like this:

And have WPCodeBox 2 installed, please try disabling that plugin and then reactivate the license.