3 Replies Latest reply on Dec 16, 2018 6:47 PM by Sanford Whiteman

    How to update phone number based on Geo in the landing page

    Naveen Kumar



      We have a upcoming webinar the attendees will be global(NA,Europe).


      I have created single webinar registration page but i have few challenges


      1) How to update phone number based on user location dynamically in the landing page (i have list of phone numbers based on location)

      2) The webinar time should update dynamically on the landing page based on time zone if we define time based on one time zone.(like ET,GMT,CT).

      Ex: Webinar date and time : January 11,2018 10 am ET (US) ,

                                                   January 11,2018  3 pm  GMT(UK)


      Thanks in advance for your help.




        • Re: How to update phone number based on Geo in the landing page
          Sanford Whiteman

          You can't do what you're describing accurately without some end-user participation. There's no accurate and fully automatic geolocation mechanism (with or without Marketo). You can approximate it, if you acknowledge the known risk, using custom code and 3rd-party services.


          Let's unpack the things you haven't considered:


          1. Marketo's GeoIP data is not available on the first page view

          Marketo's Inferred fields aren't populated until after the person has visited the LP. They aren't available on the LP itself. You have to use a third-party GeoIP JS library like MaxMind (the most accurate one out there).


          2. GeoIP data does not represent the person's real physical location

          GeoIP doesn't tell you where someone really is now, let alone their future location (where they will presumably be when the event occurs).  GeoIP is based on the public IP address of the last hop in their network. If they connect via a VPN gateway at their headquarters, that IP could be in another state or even other country.  If they're on a temporary trip to another location, you could be seeing the IP of a hotel or train WiFi that has nothing to do with where they'll be on the target date.


          3. GeoIP data itself is not 100% accurate

          Mapping the location associated with an IP address is itself not 100% accurate, aside from the IP address not representing where they really are.


          4. The browser's location is more accurate than GeoIP... if the end user lets you use it

          The browser's location interface, which uses a hybrid of public IP, Wifi triangulation, and GPS (when available) is very accurate. But an end-user, as I'm sure you've experienced, needs to opt in. So you might as well let them pick what country they'll be in for the event instead, since it's less intrusive and even more informative.


          5. Browsers are not aware of the IANA time zone they're in, only the time zone offset

          You can't detect in JavaScript how I've set my time zone name (which suggests my latitude).  You can't tell if I'm in Chicago or Mexico City, only that my offset from UTC is -05:00. The much-loved library moment.js can give the -05:00 a name, but it'll be the most generic name CST6CDT which doesn't tell you anything more.


          6. You don't have to know the name of the IANA time zone, or even be aware of the offset, to display times in local time

          Since browsers automatically adjust to local time if they know a date is expressed in UTC, you should have your values be in UTC (you should already be doing this, otherwise the same exact event will be known by different values, which doesn't make sense).  Then you can change (using JS) the displayed times to local time for anyone viewing the page.

          1 of 1 people found this helpful