1. A system comprising: at least one hardware processor; and one or more software modules that are configured to, when executed by the at least one hardware processor, receive an identification of one or more target locations from a client, for each of the one or more target locations, categorize the target location, and automatically select, for the target location, one insight algorithm from a plurality of different insight algorithms based on the categorization of the target location, wherein the selected insight algorithm is configured to, for each of a plurality of user devices, receive a location of the user device, and determine whether or not to store an event record for the user device based on the location of the user device.