How do I create a rule that will fire only on my s

2019-04-28 05:59发布

I using Google Tag Manager and I am trying to setup a rule that will fire ONLY on my sites homepage.

The issue is that I am not certain how to handle all of the URL permutations of the homepage. How can I create a rule that will handle:

"http://" "https://" "http://www." "https://www."

Also, we use Sitecore and support multiple languages, so the homepage url can also display as:

"http://www.mysite.com/en"

I am not sure how to handle the culture identifier that is inserted into the URL path after a visitor has used the navigation on the site.

Is it possible to use the OOTB Google Tag Manager rules to handle this scenario, or will I have to implement a Tag Manager Data Layer?

3条回答
该账号已被封号
2楼-- · 2019-04-28 06:26

The following rule would check if it's the homepage:

{{url}} matches RegEx ^https?://(www\.)?mysite\.com/?(index\.html)?$

{{url}} gives the whole address whereas {{url domain}} just gives the domain and {{url path}} just the path (including the initial forward slash).

This matches http and https, with or without www and with or without index.html at the end. It also matches mysite.com/ and mysite.com (without the forward slash at the end). If you want to check for URL permutations at the end of the homepage, you could do something like:

^https?://(www\.)?mysite\.com/?(en|es|fr)?$ etc.

Also, forward slashes do NOT have to be escaped. In fact, escaping forward slashes broke the firing rule in GTM for me...

See http://en.wikipedia.org/wiki/Regular_expression

edit: and if you want to ignore the querystring (which is a good thing to do because most ads add query keys such as utm_source etc. to the url), you can have something like this:

^https?://(www\.)?mtsite\.com/?(index\.html)?/?(\?.*)?$

(note the (\?.*)? at the end)

查看更多
淡お忘
3楼-- · 2019-04-28 06:30

This is a super robust way to know it's your home page with either protocol and allow for a backslash all with one line of Regex...

^https?://www.mydomain\.com\/?$

Not sure sure why the initial double backslashes don't have to be escaped, but it works. Would have expected ^https?:\/\/www.mydomain\.com\/?$ Maybe someone else knows that :)

查看更多
Emotional °昔
4楼-- · 2019-04-28 06:31

Ok... so after researching the Google Tag Manager Forum, this can be accomplished by making separate url "ends with" rules for your site url and then your site url with a trailing forward slash such as:

rule 1 : url ends with http://mysite.com

rule 2 : url ends with http://mysite.com/

I think it was the trailing slash that was confusing the matter as I was setting up the rules.

查看更多
登录 后发表回答