I am trying to utilize the built-in Device Detection that is provided out-of-the-box with Sitecore 9.0.1. Reading all of the documentation on this, it appears that this is enabled automatically without any configuration needed.
However, I am running into issues on a basically vanilla implementation of Sitecore. Here is my setup:
I'm using Sitecore 9.0.1 on Azure PaaS in xP1 topology. I have a Web Service for each Sitecore role (CM, CD, Processing, and Reporting) as well as all of the xConnect stuff. I have a simple Sitecore site with zero customizations other than light configurations (SiteDefinition.config, SMTP config). Otherwise, completely vanilla.
No Device Detection or GeoIP is being logged into Sitecore analytics, even though I have a bunch of visits.
An examination of my logs highlight the following error message from the CM Server:
Application: 2018-04-11T15:41:22 PID Warning ManagedPoolThread #6 15:41:22 WARN Authentication on CES Discovery service failed. Application: Exception: System.Net.WebException Application: Message: The remote server returned an error: (403) Forbidden. Application: Source: System Application: at System.Net.HttpWebRequest.GetResponse() Application: at Sitecore.CES.Client.WebClient.<>c__DisplayClass6_0.<ExecuteRequest>b__0() Application: at Sitecore.CES.Client.WebClient.Execute[T](Func`1 action, String requestUri) Application: at Sitecore.CES.Client.ResourceConnector`1.Request(String endpoint, Object parameters) Application: at Sitecore.CES.Discovery.EndpointSource.GetEndpoint(String serviceName) Application: Application: Application: 2018-04-11T15:41:22 PID Error ManagedPoolThread #6 15:41:22 ERROR Could not update device detection database Application: Exception: System.ArgumentNullException Application: Message: Null ids are not allowed. Application: Parameter name: endpointUri Application: Source: Sitecore.Kernel Application: at Sitecore.Diagnostics.Assert.ArgumentNotNullOrEmpty(String argument, String argumentName) Application: at Sitecore.CES.Client.WebClient.DownloadBinaryContent(String endpointUri, String resourcePath, DownladBinaryContentParameters parameters) Application: at Sitecore.CES.DeviceDetection.Providers.FiftyOneDegrees.FiftyOneDeviceDetectionClient.GetNewerVersion() Application: at Sitecore.CES.DeviceDetection.Providers.FiftyOneDegrees.FiftyOneDeviceDetectionClient.DoUpdate(String serviceName, String& newDatabasePath, String& newDatabaseVersion) Application: at Sitecore.CES.DeviceDetection.Providers.DeviceDetectionClient.Update()
Anyone have any pointers?