1. A method comprising: using one or more computers, obtaining user call history information comprising one or more call records made by a user from a mobile device, wherein the user call history information includes at least a duration of each of the call records, a time stamp for each of the call records, and a recipient of each of the call records; using one or more computers, based at least in part on the user call history information, generating user call category information comprising assigning one or more categories to each of the call records, wherein the user call category information includes at least a number of the call records assigned to each of the categories and a purchase history of the user related to each of the call records; using one or more computers, determining one or more category importance levels for each of the one or more categories, wherein the category importance levels are determined at least in part by a length of time elapsed between the call records assigned to each of the categories; and using one or more computers, based at least in part on the user call history information, user call category information, and category importance levels, targeting the user with an advertisement, the one or more categories assigned to the each of the call records based on the following equation: Weight Factor of (SETx)=(Number of calls made in SETx/time period)+((Duration in minutes of calls made in SETx)*(category importance level))−(Time since last call in SETx), where SETx represents a particular set of calls grouped together based on at least being assigned to one or more common categories and category importance level; wherein targeting the user with an advertisement comprises, if the user attempts to place a call to a business matching the one or more categories assigned to previous call records, immediately serving the advertisement to the mobile device before the call is completed.