You can use the customTask Builder tool to create a customTask script. customTask is a method of the Google Analytics library, which lets you run JavaScript code when the hit request to Google Analytics is being built.

Click here to jump directly to the tool.

This is very useful for a number of reasons, and I recommend you read customTask - The Guide before doing anything with the tool.

The tool automatically builds the necessary JavaScript, avoiding any potential conflicts that the overlapping methods might introduce otherwise.

When you add individual features to the script by selecting items in the table, you’ll see how the final script is modified accordingly.

When you are satisfied with the result, select all the text within the white code box. You can also click the Copy to clipboard button to automatically copy the code to your clipboard.

Table of Contents

General deployment instructions

Upon adding individual items to the script, you’ll notice that the first lines of the script contain default values that you’ll need to modify. For example, when adding the Client ID as a Custom Dimension item, you’ll see these lines added to the code:

// clientIdIndex: The Custom Dimension index to where you want to send the visitor's Client ID.
var clientIdIndex = 1;

The value 1 is just a default value - you’ll need to change this to the Custom Dimension index you have created in Google Analytics for this specific purpose.

Thus after copy-pasting the code into place, make sure you edit all the default values with the actual values you want to configure the items with. Otherwise you will run into severe data quality issues.

Deployment with Google Tag Manager

If you are using Google Tag Manager, you need to copy-paste the code into a Custom JavaScript variable, and modify the first line by removing the var _customTask = part like this:

var _customTask = function() {

function() {

The second change you need to do is remove the semi-colon at the very end of the code block. In other words, remove the very last character of the entire code block, which should be a semi-colon ;.

Once you’re done modifying the default values, save the variable with the name {{customTask}} or something similar and descriptive.

Then, in your Google Analytics Settings variable, go to Fields to set, and add a new field:

Field name: customTask
Value: {{customTask}}

If you’re not using a Google Analytics Settings variable, you need to click Enable overriding settings in this tag in all the Google Analytics tags where you want to add this customTask as a field, and make the same change directly to the tag itself.

Deployment with analytics.js

With the regular (legacy) Universal Analytics library, you first need to make sure the variable is written into memory, so in the site JavaScript (or page template), make sure the code in the code box below is executed before any Google Analytics commands are run.

Then, when you want to invoke this customTask in your trackers, find where you are creating the tracker and make the following change:

ga('create', 'UA-12345-1');

ga('set', 'customTask', _customTask()); // <-- Add this right after creating the tracker

ga('send', 'pageview');

The customTask Builder tool

Click to select which feature(s) to include
Client ID as a Custom Dimension
Hit Type as a Custom Dimension
Payload Length as a Custom Dimension
Remove Custom Definitions from Page Speed Timing Hits
Copy Hits to Multiple Properties
Remove PII from Hits
Copy Hits to Snowplow Collector Endpoint
Update Session Cookie
Decorate Cross-domain Iframes


I hope you find this tool useful. I will try to update it as I come up with new customTask ideas, which seems to be quite often.

Please let me know in the comments if you are having trouble using the tool, or if you have new customTask ideas in mind you’d want to include in the tool.