A system coupled to a packet-based network to process a advertisement, ad, request associated with a mobile device received from the packet-based network, the ad request including a request ID, mobile device data related to a mobile device associated with the request, and location data related to a location of the mobile device, comprising: a boundary definition module configured to generate virtual perimeters (410, 420, 430) of a plurality of places for each respective point of interest, POI, of a plurality of points of interests, POIs, in a geographical area in accordance with map data of the geographical area, the plurality of places including a place of a first type corresponding to a building of the POI, a place of a second type larger in area than the place of the first type and corresponding to the building and one or more neighboring parking lots associated with the POI, and a place of a third type larger in area than the place of the second type and corresponding to an area of interest in which the POI is located, which comprises the building and the one or more neighboring parking lots; a storage device configured to store therein a geo-fence database including data associated with each respective place having a virtual perimeter generated by the boundary definition module, the data including at least a name of a POI with which the each respective place is associated, a place type of the each respective place, and spatial index of a set of geographic points defining the virtual perimeter of the each respective place (FIGS. 3 and 4C); a location module configured to estimate a location of the mobile device based at least on the location data in the ad request; a geo-fencing module configured to determine if any of the places stored in the storage device is triggered by an estimated location of the mobile device; and an annotation module configured to generate an annotated ad request in response to the estimated location having triggered one or more places by annotating the ad request with information about at least some of the one or more places, the information including, for each triggered place of the at least some of the one or more places, a place type of the each triggered place and at least a name of a point of interest, POI, with which the each triggered place is associated; a network interface device configured to transmit the annotated ad request in one or more annotated ad request data packets to the packet-based network, and to receive a bid for a certain pre-defined place identified in the annotated ad request from the location marketplace via the packet-based network, the bid including the reques ID, a bidder identifier, and a bid price; a ranking module configured to select a document related to the certain pre-defined place from a document database, wherein the network interface device is configured to transmit information about the document to the packet-based network. a boundary definition module configured to generate virtual perimeters (410, 420, 430) of a plurality of places for each respective point of interest, POI, of a plurality of points of interests, POIs, in a geographical area in accordance with map data of the geographical area, the plurality of places including a place of a first type corresponding to a building of the POI, a place of a second type larger in area than the place of the first type and corresponding to the building and one or more neighboring parking lots associated with the POI, and a place of a third type larger in area than the place of the second type and corresponding to an area of interest in which the POI is located, which comprises the building and the one or more neighboring parking lots; a storage device configured to store therein a geo-fence database including data associated with each respective place having a virtual perimeter generated by the boundary definition module, the data including at least a name of a POI with which the each respective place is associated, a place type of the each respective place, and spatial index of a set of geographic points defining the virtual perimeter of the each respective place (FIGS. 3 and 4C); a location module configured to estimate a location of the mobile device based at least on the location data in the ad request; a geo-fencing module configured to determine if any of the places stored in the storage device is triggered by an estimated location of the mobile device; and an annotation module configured to generate an annotated ad request in response to the estimated location having triggered one or more places by annotating the ad request with information about at least some of the one or more places, the information including, for each triggered place of the at least some of the one or more places, a place type of the each triggered place and at least a name of a point of interest, POI, with which the each triggered place is associated; a network interface device configured to transmit the annotated ad request in one or more annotated ad request data packets to the packet-based network, and to receive a bid for a certain pre-defined place identified in the annotated ad request from the location marketplace via the packet-based network, the bid including the reques ID, a bidder identifier, and a bid price; a ranking module configured to select a document related to the certain pre-defined place from a document database, wherein the network interface device is configured to transmit information about the document to the packet-based network.