I've created a post about how to implement the HttpControllerFactory to support Areas
And now i can just specify area name in MapHttpRoute in the Global.asax file:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { area = configurationService.SiteName, id = RouteParameter.Optional }
);