27

Sitecore Personalization using GEO IP is not executed .

I have activated "Sitecore IP Geo location Service" and followed all steps needed to activate the service for Sitecore instance (8.1 update 1)

  • Install Sitecore IP Geo location Service package.
  • Enable the Sitecore.CES.config, Sitecore.CES.GeoIp.config, and Sitecore.CES.GeoIP.LegacyLocation.config files.
  • Navigate to Sitecore/admin/Testip.aspx and insert my "IP" and i got GeoIp location information
  • Then i added simple personalize rule as the attached image to hide one of the controls for specific country then publish the page but the rule is not executed.

enter image description here

enter image description here

4
  • Image I can't see it?
    – Anicho
    Oct 10, 2016 at 14:00
  • TestIp.aspx available for 8.1? I don't think it works for that version.
    – Anicho
    Oct 10, 2016 at 14:04
  • Are you behing a proxy or load balancer?
    – Bas Lijten
    Oct 10, 2016 at 14:55
  • i am testing my rules in CM(Content Management) environment and it doesn't have proxy but when it's fixed i have to apply same rules to CD (content delivery) which has proxy Oct 10, 2016 at 16:13

3 Answers 3

24

Firstly; Using the Service based Geo IP service is not recommended practice for personalization scenarios. The guaranteed response time for the service simply isn't fast enough - and it will slow down your site immensely if you put it in production.

Secondly; and potentially exactly because of this; you could be experiencing the known issue referred to here.

Personalization with Geo-based conditions does not work properly on the first visitor request.

In which is stated:

When using personalization or conditional renderings with rules based on the geographical information of the visitor (such as "where the country is equal to specific country"), the personalized content might not been presented to the visitor correctly on the first request.

Such behavior occurs because Sitecore is designed not to wait until the GeoIP information has been resolved from a GeoIP lookup provider such as MaxMind. This is implemented to keep response time for the website visitors low in situations when the GeoIP resolution process is taking longer periods of time.

The article also references "fixes" for Sitecore 6.5-7.2 and for 7.5+

The Alternative

The alternative is, to use a local Geo IP table so you can resolve these locally. I've just recently used this one in a project. It's dated but works fine. Just download a more current IP table from MaxMind.

https://github.com/adoprog/Sitecore-Geo-Lite-Resolver

0
7

You need to check in your GeoIP collection data to see if your IP is already included with null information. Most of the time this is the case.

Please note that, when you test this using TestIp.aspx page, it directly sends your request to GeoIP Service directly without looking at your cache or data. That is the reason it works with TestIp.aspx page.

But, when requested from normal website pages, it follows the below mention steps

Quote from doc.sitecore.net
When IP information is requested, the following steps are performed:

  • Lookup of IP information in the memory cache;
  • Lookup of IP information in the database;
  • Request to the Geolocation service.

You can refer my blogpost for more details https://sitecorefootsteps.blogspot.com/2015/10/my-experience-on-sitecore-ip.html

2
  • scFootsteps : I noticed that "GeoIps" collection - Collection database (MongoDB) has no data !! Oct 11, 2016 at 12:01
  • We normally use Web Proxy service (ex: HMA) when we are trouble shooting GeoIP service. Otherwise, your IP can also be cache if not found in mongodb. Oct 13, 2016 at 11:36
6

Sitecore Personalization using GEO IP is not executed:

It works after i added new rule under (/sitecore/system/Settings/Rules/Definitions/Elements/GeoIP/)to check country with country code not country name as already exists in sitecore.

The existing rule: where the country compares to specific country did not work properly because the returned value for "Country" from the service is "country code" so it compares country code with country name

enter image description here

I added a new rule “CountryCode” to check country with country code under the following path then it works. (/sitecore/system/Settings/Rules/Definitions/Elements/GeoIP/CountryCode)

enter image description here

enter image description here

Update

Adding text from rules for Text and Type properties so that users can copy directly from here.

Text:

where the country [operatorid,StringOperator,,comares to] [value,,,specific country code]

Type [shared]:

Sitecore.Analytics.Rules.Conditions.CountryCondition,Sitecore.Analytics

0

Your Answer

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

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