In a Google Ads account I'm working on, all conversions are imported from Google Analytics. How can I define a Google Analytics goal which has the Google Click ID configurable, i.e. such that reaching the goal is associated with a previously seen Google Click ID? I.e. can I have something to the effect of Offline Conversion Tracking except that I use Google Analytics (and maybe even Google Tag Manager)?


I'm working on a site which has its analytics managed via Google Tag Manager; some events configured in GTM trigger goals in Google Analytics, which in turn are imported as conversions in Google Ads. For example, "visitor requested a trial account" is a user interaction which is tracked like this.

I'd now like to track if people who requested a trial account actually logged in - and if so, track this as a conversion, too. When a visitor logs into his account, I can check a database to figure out the Google Click ID (if any) which the user got assigned when requesting his account. In case a GCLID is found, I'd like to have a GTM trigger which triggers a tag which bumps a Google Analytics goal (which in turn is imported as a conversion in Google Ads).

Configuring Google Tag Manager accordingly seems straightforward. However, it's not clear to me what kind of Google Analytics Goal to create which explicitly specifies a click ID.

1 Answer 1


I will start with the caveat that I know the Google Analytics / Google Tag Manager end of things, but am not familiar with Google Ads. However, there are only 4 types of goals in GA and only two of them can be adapted to multiple situations.

The first option is a Destination goal. You would need to be able to add a URL query parameter to the pageload after login, only for people who have a GCLID set. However, if you can add ?login=trial-account or similar, your Destination goal can be set to track pageloads with that parameter.

The second - and more flexible - option is an Event goal. I assume you were planning to get information from the database into the dataLayer in some way already - you can do so in the format of a Custom Event, which your trigger will look for. Your tag will send the appropriate labeling to GA (it can use information from the dataLayer as well if you want to track anything specifically), and your goal will look for the event to occur.

It would work something like this: Person logs in, back-end code checks DB for click ID. If found, execute

dataLayer.push({'event': 'trial-acct-login'});

in your JavaScript.

In GTM, the trigger will be a Custom Event, with the event name trial-acct-login and set to fire on all custom events. The tag will be a Universal Analytics Event tag with whatever Category, Action, and Label make sense for you, and the Goal will convert when that event occurs in a session.

If you need additional data from your database captured in your event, you can add it as a separate dataLayer variable. I can't think of any examples offhand, but anything that isn't Personally Identifiable Information would be an option. In this case your JS would change to

dataLayer.push({'event': 'trial-acct-login', 'extraData': 'value'});

Then in GTM define a Variable of type Data Layer Variable with the data layer variable name extraData. Say that GTM variable is called Extra Login Data; in your Event you would set the Action or Label to {{Extra Login Data}}.

In both cases, if a person logs into the site in multiple sessions, you will see multiple conversions. It sounds like that wouldn't be what you want, since you are interested in whether or not a person logs into their trial account at all. Restricting to "one conversion ever" would be on your database end - for example, setting a flag when they have logged in once, and then only adding the URL parameter or pushing to the dataLayer if that flag is not set.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.