Abstract:
A method and system are provided for connecting consumer searches and phone calls. In accordance with one or more embodiments, the method includes the steps of (a) receiving from a search system and storing the search results relating to an online or mobile search performed by a consumer, the search results identifying one or more telephone numbers of merchants that signed up with the search system as Advertisers, and the search association identifiers such as IP Address, Cookie, and/or Carrier User ID associated with the consumer; (b) associating the Automatic Number Identification (ANI) to the online or mobile search by matching the search association identifiers based on two phone calls originated from the same ANI within a predetermined period of time of the one or more searches; (c) charging the selected Advertiser a fee for connecting the consumer to the selected Advertiser; and (d) providing detailed Return-On-Investment reports.

Description:
RELATED APPLICATIONS 
       [0001]    The present application is related to U.S. patent Ser. No. ______ The pending United States Patent Application 20080086384 from LeadHancer, Inc., issued Jan. 25, 2007, by Thirunarayanan Srinivasan, Ramesh Ramamurthy, Kannan Krishnan, Murali Anakavur, and Gopakumar Padmanabhan, included by reference herein. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates to pay-per-call solution and, more particularly, to associating the online and mobile searches and phone calls automatically and in an anonymous manner. 
       BACKGROUND OF THE INVENTION 
       [0003]    In a Pay-Per-Call (PPCall) system, a lead is raised only when a phone call is delivered to the Advertiser. The phone number displayed in the ad can be a tracking phone number or an existing phone number of the Advertiser since the business was founded and advertised in print phone books, newspaper ads, and coupons. However, the system cannot provide proof that the user placed the call only after a corresponding search and cannot ensure that each impression of the ad results in utmost one lead. This is because users perform searches in an anonymous manner in search engines such as Google, Bing, and Yahoo! and each impression of the ad can result in one or more leads payable by the Advertiser. 
         [0004]    Current PPCall vendors&#39; technology is based on tracking phone number. This technology lacks the sophistication in providing details of Keywords and Campaigns that were responsible for the calls delivered unless the Advertiser uses more than one tracking phone number for the same ad. That is, to track and detailed Return-On-Investment (ROI) reports, the technology uses multiple tracking phone numbers either one for each Keyword/Campaign or for the browser session. Having multiple phone numbers means the cost of the advertisement becomes expensive and could lead to phone number provisioning, quality control, and ad management issues. 
         [0005]    The pending United States Patent Application 20080086384 from LeadHancer, Inc. allows the search to be associated to the subsequent phone call. However, the limitation of the system lies in the fact that the method of matching the online search to the phone call depends on using the Advanced Intelligent Network (AIN) architecture. It also does not deal with associating mobile searches to calls. 
         [0006]    To overcome the problem of providing proof of the search, current PPCall vendors use a tracking phone number in the ad. Presumably, users that did the search only know the tracking phone number. However, the user that performed the search may pass on the tracking phone number to others and each phone call made by the recipient results in a lead. While the calls made by the recipients result in new leads and, possibly, new business, to the Advertiser, the proof that the callers performed the search is lacking. 
         [0007]    It should be noted that both the current vendors&#39; technology and the pending LeadHancer&#39;s Patent Application 20080086384 lack the ability to provide detailed ROI reports that contain Keywords and Campaigns that were responsible for the leads delivered to the Advertiser. 
         [0008]    would be advantageous to provide proof that each ad impression can result in no more than one chargeable lead. 
         [0009]    It would also be advantageous to provide proof of consumer&#39;s search that led to the phone call. 
         [0010]    It would further be advantageous to provide a detailed ROI report. 
       SUMMARY OF THE INVENTION 
       [0011]    A method and system are provided for connecting consumer searches and phone calls. In accordance with one or more embodiments, the method includes the steps of (a) receiving from a search system and storing the search results relating to an online or mobile search performed by a consumer, the search results identifying one or more telephone numbers of merchants that signed up with the search system as Advertisers, and the search association identifiers such as IP Address, Cookie, and/or Carrier User ID associated with the consumer; (b) associating the Automatic Number Identification (ANI) to the online or mobile search by matching the search association identifiers based on two phone calls originated from the same ANI within a predetermined period of time of the one or more searches performed by the consumer; (c) charging the selected Advertiser a fee for connecting the consumer to the selected Advertiser; and (d) providing detailed Return-On-Investment reports to the Advertiser and search system containing the search time, call time, call duration, latency, IP Address, Cookie, keywords, campaign, and lead fee. 
         [0012]    Various embodiments of the invention are provided in the following detailed description. As will be realized, the invention is capable of other and different embodiments, and its several details may be capable of modifications in various respects, all without departing from the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature and not in a restrictive or limiting sense, with the scope of the application being indicated in the claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    A complete understanding of the present invention may be obtained by reference to the accompanying drawings, when considered in conjunction with the subsequent, detailed description, in which: 
           [0014]      FIG. 1  is a perspective view of a pay-per-call ad system receiving and storing search results containing advertisers; 
           [0015]      FIG. 2  is a perspective view of a pay-per-call ad system associating call to search; 
           [0016]      FIGS. 3A ,  3 B, and  3 C are an exploded view of a pay-per-call ad system storing the data in lh merchant db tables; 
           [0017]      FIG. 4  is an exploded view of a pay-per-call ad system of storing the data in lh cdr server tables; 
           [0018]      FIGS. 5A and 5B  are a perspective view of a pay-per-call ad system executing the correlation logic; and 
           [0019]      FIG. 6  is a perspective view of a pay-per-call ad system to allow viewing of roi reports by the advertiser. 
       
    
    
       [0020]    For purposes of clarity and brevity, like elements and components will bear the same designations and numbering throughout the Figures. 
       DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0021]      FIG. 1  is a perspective view of receiving and storing search results, in accordance with the invention. A user  100  performs either an online or mobile search in a search system comprising a Search Server  102 . The Search Server  102  consists of one or more computers interconnected within a data center(s) as in the case of search engines like Google, Microsoft&#39;s Bing, and Yahoo!. In the case of mobile searches, the WAP (Wireless Access Protocol) Server hosted by the search system receives the search query and forwards the same to the Search Server  102 . 
         [0022]    Search Server  102  is attached to an Ads Server  104  that contains both Pay-Per-Call (PPCall) and Pay-Per-Click (PPClick) ads. Typically, Ads Server  104  consists of one or computers interconnected within a data center(s). Search Server  102  is also attached to an Organic Listings DB that provides search results containing the local and natural listings displayed to the user  100 . Based on the search query entered, Search Server  102  displays the search results consisting of relevant ads and natural listings to the user  100 . The ads in turn consist of PPCall and/or PPClick Advertisers. Search Server  102  determines the relevant PPCall ads from the Ads Server  104 . Such ads selected for display to the user  100  will be associated with a Directory Number (DN), one or more Keywords, and one or more Campaign Names that contain one or more Keywords as configured by the Advertiser  204  with the search system. The DN may be a tracking phone number, existing phone number, or a routing number, and is commonly referred to as the DN for reference purposes throughout this invention. If the ad were to display a toll-free number, then the telephony network converts it into a routing number before delivering the call to the Advertiser  204 . The Advertiser  204  also specifies the bid amount to be charged for a valid lead delivered in the form of a phone call in the Ads Server  104 . 
         [0023]    Along with the search query, Search Server  102  also receives the search association identifiers such as IP Address and Cookie for an online search vs. Carrier UserID and Cookie for a mobile search from the user  100 . Search Server  102  sends a search results message with parameters such as IP Address/Carrier UserID, Cookie, search_time, search_type (online or mobile), and one or more Directory Numbers (DNs), Keywords for respective DNs (optional), Campaign Names for respective DNs (optional) of the PPCall ads to LH Merchant Server  108 , where “LH” stands for LeadHancer. While the user  100  may block the Cookie through the browser options, Search Server  102  always generates it and passes it to LH Merchant Server  108  even though the Search Server  102  cannot write it to the user&#39;s computer or mobile device. For mobile searches, however, the Search Server  102  always receives the Carrier UserID associated with the mobile device, which is a unique value that cannot be blocked by the user  100  because the value is sent by the mobile carrier&#39;s WAP Gateway to the WAP Server hosted by the search system. LH Merchant Server  108  stores the parameters received in a table called Search_Records  304  in the LH Merchant DB, provided the DN is present in the PPCall_Advertisers  300  table. Each record in the Search_Records  304  table has a unique index of search_record_id. The Search Server  102  passes the Carrier UserID value in the IP Address field to the LH Merchant Server  108 . Therefore, all references to IP Address in the context of mobile searches mean the Carrier UserID. The records in the Search_Records  304  table will be set to expire at search_time+a predetermined value. A scheduled process running in the LH Merchant Server  108  will purge the expired records from the Search_Records  304  table based on current time. 
         [0024]    In one embodiment of the invention, it is possible that the user  100  may perform a search after deleting the Cookies through the browser options while the IP Address remains the same as the previous search(s). Alternatively, the user  100  may perform a search with a newly assigned IP Address from their ISP (Internet Service Provider) while maintaining the same Cookie as the previous search(s). In both cases, upon receipt of the message containing the search results, LH Merchant Server  108  determines one or more records in the ANIs_Learned  310  table that match the said IP Address or said Cookie, as the case maybe, and then creates new records in the ANIs_Learned  310  table with the said IP Address and Cookie present in the search results message sent by the Search Server  102 , same ANI as the present said record of the ANIs_Learned  310  table, and time_of_last_call equal to said search_time present in the search results message sent by the Search Server  102 . 
         [0025]    In another embodiment of the invention, if there is no change in the IP Address and Cookie, then LH Merchant Server  108  extends the expiration_time of the matching records of the First_Call_History  306  table with a value of said search_time present in the search results message sent by the Search Server  102 +a predetermined value. 
         [0026]    In yet another embodiment of the invention, if there is a change in either the IP Address or Cookie, then LH Merchant Server  108  determines one or more records in the First_Call_History  306  table that match the said IP Address or said Cookie, as the case maybe, and then creates new records in the First_Call_History  306  table with the said IP Address, Cookie, keywords, and campaign_name present in the search results message sent by the Search Server  102 , same DN, ANI, search_record_id, search_time, call_time, call_id, and duration as the present said record of the First_Call_History  306  table, and expiration_time equal to said search_time present in the search results message sent by the Search Server  102 +a predetermined value. 
         [0027]    LH Merchant Server  108  may be hosted either inside or outside the search system&#39;s firewall. For privacy reasons, a search system may pass•encrypted values of the IP Address, Cookie/Carrier UserID, Keywords, and Campaign Names to LH Merchant Server  108 . LH Merchant Server  108  stores the received parameters in the LH Merchant DB for a predetermined amount of time until a phone call is received from the user  100 . LH Merchant Server  108  consists of one or more computers interconnected with a datacenter(s). LH Merchant DB consists of one or more computers interconnected with a datacenter(s) running popular databases like Oracle, My*SQL, or SQL Server and maybe contained in the LH Merchant Server  108 . 
         [0028]      FIG. 2  is a perspective view of the associating call to search, in accordance with the invention. After performing a search, user  100  places a phone call to a PPCall Advertiser  204  by dialing the phone number displayed in the ad. The Originating Switch passes the call to the Terminating Switch  202  through the telephone network. The Originating Switch and Terminating Switch  202  may be a traditional phone switch like 5ESS or a VoIP (Voice Over Internet Protocol) platform from any number of vendors, including Lucent, Inc. and Avaya, Inc. and hosted by the search system, a telephone company, or a 3rd party vendor. The telephone network may be based on wireline and wireless technologies. 
         [0029]    The PPCall ads displayed to the user  100  may use either a tracking phone number or the existing phone number of the Advertiser  204  that appears in print phone books, newspaper ads, and coupons. In the case of mobile searches, it is possible to display the existing phone number in the ad while having a hidden tracking phone number behind it through a Tel URL so that when the user  100  makes a Click-to-call, the phone software calls the tracking phone number, which in turn call forwards to the Advertiser&#39;s existing phone number. Alternatively, it is also possible that the ad displays the existing phone number that is call forwarded to a tracking phone number so that the Terminating Switch  202  routes the call to a different phone number of the Advertiser  204 . 
         [0030]    Terminating Switch  202  receives the Directory Number (DN) and Automatic Number Identification (ANI) parameters as part of the call setup message received from the Originating Switch. Terminating Switch  202  presents the call to the Advertiser  204 . Depending on the Advertiser&#39;s line status, the Terminating Switch  202  may encounter one of busy, no answer, answer, or disconnect events. These events are part of any normal call processing logic encountered by the Terminating Switch  202 . Of these, Terminating Switch  202  passes only such events as busy, no answer, and disconnect to LH CDR Server  206 . In addition, Terminating Switch  202  also passes the timestamp of event and duration (applies only in case of disconnect event and will be set to 0 for others) parameters to LH CDR Server  206 . LH CDR Server  206  consists of one or more computers interconnected in a data center(s) and hosted either inside or outside the firewall of the search system, a telephone company, or a 3rd party vendor. 
         [0031]    LH CDR Server  206  functionality includes: 1) Determining if the DN is a valid PPCall Advertiser  204 ; 2) Storing Call Detail Records (CDRs) of valid leads raised by LH Merchant Server  108 ; and 3) Upon request from Ads Server  104 , provide the ANI in clear-text for viewing by Advertiser  204  when the latter views the ROI reports. 
         [0032]    At the time of Advertiser  204  sign-up for PPCall service with the search system, the Ads Server  104  passes the DN, Category, Address (optional), City (optional), State (optional), Zip Code (optional) to LH Merchant Server  108 . LH Merchant Server  108  stores the data in a PPCall_Advertisers  300  table in the LH Merchant DB. In addition, LH Merchant Server  108  passes the data to LH CDR Server  206 , which in turn stores the data in a table called PPCall_DNs  400 . The Category parameter is used to allow the search system specify different intervals for determining repeat leads so that the Advertiser  204  is not billed for delivering repeat calls originated by the same ANI with or without an accompanying search performed by the user  100 . 
         [0033]    After receipt of the message from the Terminating Switch  202 , LH CDR Server  206  determines if the DN is a valid PPCall Advertiser  204  per the PPCall_DNs  400  table. If so, LH CDR Server  206  generates a call_id and then stores the call_id, ANI, DN, call_start_time, and duration parameters in a PPCall_Qualifiers  402  table. Note that the duration parameter applies only to the disconnect event type. LH CDR Server  206  then passes the call_id, DN, ANI, event_type, call_time, and/or duration parameters to LH Merchant Server  108 . For privacy reasons, LH CDR Server  206  may encrypt the ANI before sending it to LH Merchant Server  108 . 
         [0034]      FIGS. 3A ,  3 B, and  3 C are a perspective view of the LH Merchant DB tables, in accordance with the invention. 
         [0035]      FIG. 4  is a perspective view of the LH CDR Server  206  tables, in accordance with the invention. 
         [0036]    Upon receipt of a message from LH CDR Server  206 , LH Merchant Server  108  validates the DN as being a valid PPCall_Advertiser  204  per the PPCallAdvertisers  300  table and then executes a Correlation Logic described in  FIGS. 5A and 5B , in accordance with the invention. 
         [0037]    More specifically, step  500  determines if the ANI received from LH CDR Server  206  exists in one or more records in the ANIs_Learned  310  table. If so, in step  502  it determines if the DN exists in one or more records in the Search_Records  304  table and one or more records exist in ANIs_Learned  310  table based on ANI received in the message from the LH CDR Server  206 , and the IP Address and Cookie values of the said records of the ANIs_Learned  310  table match those values present in the said records of the Search_Records  304  table. If no records exist, then in step  504  Correlation Logic determines if a valid search exists for the DN in the Search_Records  304  table such that the call_time is greater than search_time. If so, the Correlation Logic proceeds to step  506  as explained below. 
         [0038]    If step  502  returns more than one record, then in step  506  the Correlation Logic uses the DN and ANI received in the message from the LH CDR Server  206  to determine if it is a repeat 1st call or a repeat lead based on category of the said DN in the Repeat_Call_Days  302  table. If so, then in step  508  the Correlation Logic updates the time_of_last_call value to the call_time, provided a matching record for the said ANI, IP Address, and Cookie exists in the ANIs_Learned  310  table. If it is determined that it is a repeat 1st call, then the Correlation Logic ends without further processing. On the other hand, if step  502  does not return a record, then the Correlation Logic proceeds to step  504  as explained above. 
         [0039]    In step  512 , the Correlation Logic determines if there is exactly one record in the ANIs_Learned  310  table based on a match of the said ANI, a match of the said DN in a record of the Search_Records  304  table, and a match of the IP Address and Cookie values present in the said record of the Search_Records  304  table as those of the said record of the ANIs_Learned  310  table. If so, in step  510  it updates the time_of_last_call in the ANIs_Learned  310  table based on the said ANI, IP Address, and Cookie/Carrier UserID and then generates a lead_id for raising a lead message to the Ads Server  104 , provided the search_record_id of the said record of the Search_Records  304  table is not already present in the Leads_Raised  308  table and the said event type is “disconnect” with the said “duration” value greater than a predetermined value as dictated by the search system. LH Merchant Server  108  then creates a record in the PPCall_Charges  312  table after capturing the lead fee returned by the Ads Server  104 . In addition, the LH Merchant Server  108  sends a message to the LH CDR Server  206 , which in turn creates a record in the PPCall_Leads  404  table and deletes the record in the PPCall_Qualifiers  402  table based on the said call_id value. 
         [0040]    In step  514 , the Correlation Logic determines if one or more records exist in First_Call_History  306  table that match the said ANI received in the message from LH CDR Server  206 , match the DN in a record(s) of the Search_Records  304  table to which the call is attempted for delivery, and match the IP Address and Cookie values present in the said record(s) of the Search_Records  304  table as those of the said records of the First_Call_History  306  table. If no records exist, then Correlation Logic creates a record(s) in the First_Call_History  306  table per step  516 . The expiration_time of the record(s) will be set to a value of current time+a predetermined value. On the other hand, if matching records exist in the First_Call_History  306  table, then per step  518  the Correlation Logic creates a record(s) in the ANIs_Learned  310  table, after which it purges the said record(s) in First_Call_History  306  table based on the said ANI, IP Address, and Cookie. In other words, the 2nd call being processed also is received from the said ANI for a matching record of the Search_Records  304  table with the said IP Address and Cookie as the 1st call, leading to the learning of the ANI. 
         [0041]    In step  520 , the Correlation Logic generates a lead_id for raising a lead message to the Ads Server  104  based on the earliest search_time of a matching record for the said DN, IP Address, and Cookie, provided the search_record_id of the said record in the Search_Records  304  table is not already present in the Leads_Raised  308  table and the said event type is “disconnect” with the said “duration” value greater than a predetermined value as dictated by the search system. LH Merchant Server  108  then creates a record in the PPCall_Charges  312  table after capturing the lead fee returned by the Ads Server  104 . In addition, the LH Merchant Server  108  sends a message to the LH CDR Server  206 , which in turn creates a record in the PPCall_Leads  404  table and deletes the record in the PPCall_Qualifiers  402  table based on the said call_id value. 
         [0042]    A scheduled process running in LH Merchant Server  108  will purge records in the First_Call_History  306  table, provided the expiration_time is greater than current time. In addition, another scheduled process running in LH Merchant Server  108  will purge records in the ANIs_Learned  310  table, provided the current time is greater than the time_of_last_call+a predetermined value. 
         [0043]      FIG. 6  is a perspective view of the ROI reports, in accordance with the invention. In step  600 , the Advertiser  204  logs into their account with the search system using their Login ID and Password. In step  602 , the Advertiser  204  selects the option to view the PPCall ROI reports. In step  604 , the Ads Server  104  sends two identical messages to the LH Merchant Server  108  and LH CDR Server  206 . The message consists of one or more DNs configured in the account as well as one or more said lead_ids that were reported to the Ads Server  104  when the Correlation Logic raised leads for calls delivered to the Advertiser  204  based on a valid search. The reason for sending two identical messages is that the LH Merchant Server  108  may not hold the said ANIs in clear-text form, subject to the privacy policy of the search system and, as such, only the LH CDR Server  206  contains the said ANIs in clear-text format for viewing by the Advertiser  204 . 
         [0044]    In step  606 , LH Merchant Server  108  passes one or more datasets containing the said IP Address, Cookie, search_type, search_time, latency, keywords, and campaign_name for each of said lead_ids and DNs to the Ads Server  104 . For privacy reasons, the said keywords and said campaign_name fields may be encrypted when originally received from the Search Server  102  as part of the search results. 
         [0045]    In step  608 , LH CDR Server  206  passes one or more datasets containing the said ANI, call_start_time, and duration for each of said lead_ids and DNs to the Ads Server  104 . 
         [0046]    In step  608 , Ads Server  104  combines the two datasets received from LH Merchant Server  108  and LH CDR Server  206  based on the said lead_ids and DNs and presents a ROI report to the Advertiser  204 . In case the said keywords and campaign_name fields are encrypted as passed originally from the Search Server  102  as part of the search results, then the Ads Server  104  assumes the responsibility for decrypting the values before presenting the ROI report to the Advertiser  204 . 
         [0047]    Since other modifications and changes varied to fit particular operating requirements and environments will be apparent to those skilled in the art, the invention is not considered limited to the example chosen for purposes of disclosure, and covers all changes and modifications which do not constitute departures from the true spirit and scope of this invention.