在线市场中的自动广告发布计划管理的制作方法

文档序号:6440587阅读:214来源:国知局
专利名称:在线市场中的自动广告发布计划管理的制作方法
相关申请这个申请是于2001年7月24日、由Davis等人提出的题为SYSTEMAND METHOD FOR INFLUENCING A POSITION ON A SEARCHRESULT LIST GENERATED BY A COMPUTER NETWORK SEARCHENGINE的申请09/918,241的部分后续申请,申请09/918,241和本申请一起被共同转让,而且被全部包含在此作为参考,而且该申请是1999年5月28日由Darren J.Davis等人提出的申请09/322,677、现在是美国专利6,269,361的后续申请。
对在光盘上提交的计算机程序列表的说明包含了一个包含依据37 C.F.R.1.52(e)的计算机程序代码列表的光盘附录,并且通过引用全部结合在此。光盘的总数是包含31,822个文件和156,346,522个字节的1张。包含在该光盘上的文件列在在该光盘上的一个名为“dir_s”的文件上。因为包含在该光盘上的大量文件,所需的文件名字列表、创建日期、以及以字节为单位的尺寸被包含在在该光盘上的文件dir_s中,并且被包含在此作为参考。
背景技术
在美国专利6,269,361中描述的方法对于广告商来说是难于管理的。尤其是,广告商想要以一个优惠价格在该搜索结果中保持有利的位置(以便获得大的合格通信量)。在美国专利6,269,361中描述的系统没有提供准备好的装置来那么做。广告商能够借助于在对他们来说重要的搜索项上进行他们排名的频繁检查,例如通过在www.overture.com上执行搜索。当他们观察到由于竞争的广告商的出价活动而导致的改变时,作为响应他们能够登录以为放置网站付费并且人工地改变他们的出价。在他们已经为他们想要保持的一个位置出价高于别人的情况中,如果等于他们的出价金额的所需每次点击成本(″CPC″)是他们原意支付的,则他们能够增加他们的出价以取回该位置。在排名在他们下面的列表的出价已经降低的情况中,某些广告商可能希望降低他们的出价以减少他们的付费金额同时仍然保持他们在结果集合中的位置。
有许多大广告商或者代表大广告商行动的广告发布代理必须执行的其它任务。大的广告商通常管理广告发布“计划”。一个计划一般涉及在某段特定时间内宣传一组特定产品的商业活动。一个计划一般具有预算、计划持续时间、以及商业目的,例如,签约10,000个新的信用卡客户。
建立一个计划一般涉及选择一个媒体输出(TV、无线电台、印刷物、在线、等),以及签订指定该活动(例如,TV现场的次数、它们的长度、播放时间、以及它们将在其中广播的市场)的合同,客户的曝光度(例如,达到的观察者数量)、以及成本。对于在线的每个印象成本(“CPM”)市场,这一般涉及标识将在其上运行该标题广告的网页、它们的频率、整个计划的期望印象个数、以及CPM成本。一旦已经确定了合同条款,除了获取有关客户曝光度的定期报告之外,广告商就不需要大量的工作来管理计划。
对于一个广告商来说,他需要相当多的努力来在一个CPC市场中管理计划。在一个CPC市场中计划管理的输入参数是1)计划持续时间(开始和结束日期与时间),2)计划预算,3)在CPC市场中使用的列表集合(每个列表都具有一个项项、名称、描述、和URL),以及4)用于该列表的最大平均CPC(任何较高的CPC将导致对该广告商的损失)。
有其它取决于该CPC市场的输入1)用于该列表中的项项的所有排名的出价(例如,它需要$4.43以处于项项“网络主机”的排名3处),以及2)在每一项项每个排名处的点击次数(例如,在排名2处的项项“旅行”具有1800次点击/日)。
在一个CPC市场中计划管理的目标是1)平均地在该计划上花费预算,2)到该计划结束(或者尽可能第接近于它)时精确地花费该预算,3)确保用于选取列表的平均出价小于最大平均CPC,4)确保广告商的利益被最大化了。这意思指对于固定的计划预算,广告商得到最大可能的点击。如果用于所有列表的平均CPC是最低的,则广告商将得到最大数量的点击。因为计划预算是固定的,具有最大可能的点击等于最大化广告商的ROI。
在一个CPC市场中管理一次计划需要1)选择到投标的列表2)为每个选择的列表选择出价金额(其确定了在当时每个列表的排名),以及3定期地重新计算该出价以确信该计划仍然在轨道上。由于CPC市场的动态,在一次计划当中花费能够超过或者低于计划。
与其它的选择(TV、无线电台、印刷物、其它在线等)相比,一个CPC市场需要来自广告商相当多的努力来管理一次计划。这是因为1)该广告商必须产生很多列表。2)广告商必须确定保持有利益的最大CPC,3)广告商必须确定如何通过为每个列表选择最佳出价来最大化利润,以及4)在该计划期间广告商必须不断地监控以及调整该出价,所有这些都需要相当多的工作。在某些情况中,这能够使用多个专职工作的雇员。接下来的少数段落简要地描述了这些困难。
广告商必须产生一个大的列表集合(这个能够是数百个)。对于每个列表,广告商必须选择一个项项、名称、描述、以及URL。例如,一个列表可以具有项项“LCD Projector”,名称“Your Super Source forLCD Projectors”,描述“infocus Proxima Sanyo Toshiba、Panasonic Hitachi.Incredible deals on the best in computer projection with the best support inthe business”,以及一个指向该广告商网站的URL。
这能够是费时的,因为每个列表一般都需要该CPC市场操作员的一次人工审核过程以保证该名称和描述准确地反映目标URL而且名称和描述与该列表项有关。
广告商必须确定在该列表上出价的最高额,以保证将没有损失。传送一个搜索者到一个广告商网站的支付额必须小于预期的利润/点击。这需要为所有可能的动作计算转化率,计算一旦一个搜索者被转送到该广告商网站、他将执行每一个可能动作的几率。可能动作能够包含注册、购买一个物品、申请贷款、等。用于各个动作的转化率与平均利润/动作结合以计算预期的利润/点击。
例如,如果转送到一个广告商网站的搜索者中有1%购买了一个数字照相机,该购买为广告商产生一个$100的平均利润,则用于该列表的最大CPC是$1.00(任何更高的值将导致亏损)。
此外,广告商必须为每个列表设置CPC以便最大化利润。用于一个列表的较高CPC导致一个最好的排名,其一般导致更多的点击,但是提高了平均费用/点击(由于较高的CPC)。总利润是1)点击次数和2)平均利润/点击减去平均费用/点击的结果。
一个较高的CPC可能或者可能不会导致较高的利润。通常,总利润能够随着在排名中的改变而上升或者下降。下列示例显示了总利润随着用于单个列表排名的非单调行为。广告商具有一个$4.90的平均利润/点击。当用于该列表的预算大于或等于$46时,出价以处于排名6将导致广告商的最大利润。在另一方面,如果预算极限是$20,则最佳利润是处于排名8处,因为那个排名最高的利润同时仍然在该预算下。
TrafficRank #ClicksCPCProfit/Click Total Profit Cost1 18 $4.90 $4.90 $0.00 $88.202 17 $4.80 $4.90 $1.70 $81.603 16 $4.79 $4.90 $1.76 $76.644 15 $4.78 $4.90 $1.80 $71.705 12 $4.70 $4.90 $2.40 $56.406 10 $4.60 $4.90 $3.00 $46.007 5$4.40 $4.90 $2.50 $22.008 4$4.30 $4.90 $2.40 $17.209 3$4.20 $4.90 $2.10 $12.60如果市场操作员不公布平均点击次数作为用于每个项项排名的函数,则算出用于一个列表的最佳出价是一个不断摸索的处理过程。在这个示例中,广告商可以从排名3开始然后测试排名4,其导致总利润的增加,继续检查排名5,等。另一个问题是查找一个局部最大值可能错过具有最佳利润的排名,排名6和它的邻近相比可能具有较高的利润,但是有可能排名10比排名6更好。
使事情变复杂的是,用于不同列表的转化率可以不必是相同的。例如,具有项“auto”的列表可能具有1%搜索者购买有关用于一辆汽车的代理商成本的信息,而对于具有项“car”的列表,这可能是1.5%。这个差别可能是列表项、或者它的名称、描述、或者由该URL指向的网页的函数。此外,用于单个列表的转化率可能取决于显示该列表的排名。例如,当该列表显示在排名一处时,2%的搜索者购买该产品,而如果该列表处于排名五的话,则仅仅有1%的搜索者购买该产品。
广告商必须定期地管理该列表。这将确保预算依照要求被平均或者不平均地花费,而且到该计划结束时花费了所有预算。在该计划结束之前花费了所有预算能够导致资源的不合理分配-先前有太多的客户又继之以没有客户-而且没有用尽所有预算能够导致错过的收入机会。
广告商必须进行用于所有列表的最佳出价的初始计算,然后不断地监控这些以确保该计划是在轨道上的-有许多为什么该出价可能需要随着时间的过去而修改的原因。在用于每个列表的不同排名处的点击次数的初始估计值可能是错误的,转化率的初始估计值可能是错误的或者该转化率可能随着时间的过去而改变。例如,该列表可能具有到一个刚刚过去的特定日期(例如父亲节)的关联。
此外,由于市场的动态性,用于每个项每个排名的点击次数能够改变。例如,具有项“auto”的列表可能具有出价$1.43而且处于排名3。稍后另一个广告商用出价$1.44进入该市场,以把在排名3处的列表移动到排名4。在排名4处,“auto”列表将具有更少的点击-用于项“auto”的成本/点击已经恰好在该市场中上升了。可能由离开该市场的广告商、现有的广告商增加/降低他们的出价、以及市场操作员增加/降低执行搜索的搜索者数目(例如,通过增加或者撤消分支机构)引起其它的改变。CPC市场的动态可能导致这些随时的变化。
有其它广告商必须跟踪以便最大化利润的市场条件。这些包含检查一个列表的出价对于它的当前排名是否过高。例如,广告商A1可能为一个列表处于排名2设置该列表的CPC为$.50-具有CPC为$0.49的广告商A2处于排名3。几小时后,A2把他列表的CPC改变为$0.45,同时仍然保持在排名3处。广告商A1现在能够把他列表的CPC从$0.50减少到$0.46,同时仍然保持该列表在排名2处。
先前的示例说明了广告商必须人工地执行以管理他们的计划的各个动作。某些广告商一天执行这些任务若干次。某些广告商具有多个致力于管理他们在付费安排市场中的参与、监控他们列表的位置且调整他们的出价、管理他们的预算等的雇员。
轮询列表状态、检查在该市场中的竞争者、以及检查帐户状态的人工处理过程是费时和浪费的。因此,需要有一种用于让广告商更有效地管理他们的广告发布计划的方法和装置。
具有提供一个用于广告商的自动化计划管理系统的需要。这样的一个系统将把广告发布计划、预算、持续时间、项、最大平均CPC、转化率、以及用于每个项的平均利润/动作中的参数取为输入。该系统将自动地为每个列表设置CPC以便最大化广告商的利润,而且按照广告商的规定在该计划上花费预算。该系统将考虑该计划的历史性能定期地重新计算列表的CPC以更好地优化利润。该系统将定期产生有关该自动化计划管理系统的性能的报告并且把这些传递给广告商。该系统应当给予广告商定制由该系统产生的自动化计划计划的能力。
如果这些低效率没有由一个市场操作员解决的话,则仍然为广告商保留了一个制造他们自己的自动化服务、和该市场操作员的帐号管理系统交互以获得可得到的、相对于由该市场操作员提供的有限自动化服务的经济利益的经济刺激。作为进一步的结果,这样一种情况为第三方团体为广告商、为费用、或者一块所谓的生产节省,制造自动化服务提供了经济刺激。这些已经正在发生。
小结仅仅通过介绍,本实施例总的来说可称作自动计划管理(Automatic Flight Management)。自动计划管理是对现有付费安排市场系统的改进。在该基本市场系统中,一个广告商登录到该广告商界面,并且通过检查市场信息以及与他的列表相关的信息来管理他的广告发布活动。例如,一个广告商能够标识一个项集、它们的描述、以及每个项的CPC,它是如果一个搜索者在该列表上点击则该广告商将付费的金额。广告商还能够检查在用于一个搜索项不同排名处的点击次数,检查用于一个项的另一个竞争列表等。随后,当一个搜索项匹配从一个搜索者接收的搜索查询时,广告商可以向该市场操作员给与经济值。为了管理一次广告发布计划,一个广告商还必须确保在整个计划过程中依据计划花费预算。
此处描述的实施例使用出价的概念,其对应于当响应于来自一个搜索者的查询、与该广告商有关的网络位置由该搜索者查阅时,广告商将给出的经济价值。该经济价值可以是直接或者间接地、向该广告商收费或者可向该广告商收费的金额。该经济价值可以是来自该广告商帐户的借记金额。该金额可以是货币金额或者其它值,诸如信用点。经济价值可以由广告商给与一个数据库搜索系统的操作员或者给与第三方。
当一个搜索者查阅一个或多个网络位置,诸如广告商网站时,给出该经济价值。可以通过在一个被用来由搜索者输入数据和接收数据的屏幕上,单独或者和其它搜索结果一起,给出该网络位置来进行参考。这被称为一次印象。做为选择,以及在此处大略描述的一个实施例中,可以当该搜索者点击或者点击通过以访问该广告商的网络位置时发生参考,如将在下面更详细描述的那样。或者该参考可以通过搜索者在访问了广告商的网络位置之后、所采取的其它行动。
此处的实施例使由一个广告商在管理一个广告发布计划中执行的许多步骤自动化了。当前,一个广告商必须定期检查他的列表状态、市场状态、过去的开支和点进一个广告商网站的搜索者的转化率,以及是否满足该计划的商业目的。这个市场的人工检查和列表出价的调整是费时和易出错的,因为如果在不同排名处一个列表将得到的点击次数信息没有由市场操作员提供的话,则广告商可能不得不猜测这个信息。
该自动计划管理的公开实施例允许广告商指定广告发布计划的参数。该系统提供了一个代表广告商利益作用自动化代理,定期地检查在该市场中的条件并且对该列表出价进行调整以确保满足该计划的目的以及最大化广告商的利润。
该代理是一个结合由市场系统保持的数据操作的软件处理过程或者应用。如果所有都是良好的-计划开支是按时的而且用于该列表的当前出价最大化广告商利润-则该代理不采取更多的动作。否则,代理调整一个或多个列表的出价以获得符合预算计划开支和最大化广告商利润,-而且发送一条信息以向广告商警告该变化。在广告商的控制下,能够在每当进行调整时发送该信息,或者它们能够被集合并且被定期发送。
输入、输出、和目标广告商通过进行以下的规定来描述广告发布计划的参数1.{T1,T2,…,Tk}列表以及它们的项2.B用于该计划的预算3.I计划时间(开始和结束日期与次数)4.下列中的一个或多个a.C在所有项上的最大平均CPCb.R转化率,其为在广告商的网站处执行一个动作的搜索者部分,以及c.P平均利润/动作。预期的利润/点击是P×R假定预算B将在该计划上平均地花费。如果情况不是这样,则广告商能够指定许多单独的计划,其中每个计划具有一个平均花费的等级。例如,假定计划预算是$100,000,其中$20,000将在第一月花费、$30,000将在第二月花费,以及$50,000将在第三月花费。这个不均匀的计划能够被分为三个具有平均花费率的单独计划具有$20,000预算的、用于第一个月的计划一、具有$30,000预算、用于第二个月的计划二、以及具有$50,000预算、用于第三个月的计划三。
市场操作员能访问该市场的当前状态,其能够用于优化该计划。这包含1.bi,i用于项Ti在排名j处的出价2.ci,j用于项Ti在排名j处的点击次数定期运行该自动计划管理算法以在一个进行基础上优化该计划。在每个步骤处,代表广告商利益作用的代理选择用于在{T1,T2,…Tk}中的每个项的最佳出价。为项Ti选择的出价是bi,其在计划间隔上预计将从搜索者处产生ci个点击。
对于在{T1,T2,…,Tk}中的每个项Ti,给定它的出价bi以及它预计的点击次数ci,有可能确定1.在该计划间隔上,来自搜索者的估计点击总数ci=c1+c2+…+ck。
2.广告商该次计划估计总共开支ei=b1c1+b2c2+…+bkck,其必须小于预算B3.估计的、在该计划上的平均出价be=eici=b1c1+b2c2+···+bkckc1+c2+···+ck≈Bci]]>4.由搜索者在该广告商网站处采取的动作的估计数量A1=ci×R=(c1+c2+…+ck)×R5.广告商的总利润,其为用于每个项的利润总和。用于项Ti的利润是1)点击次数和2)利润/点击减去成本/点击的乘积,其为ci(P×R-bi)。因此,总利润是T=Σi=1ci(P×R-bi).]]>如果在该计划上的总成本 近似等于计划预算B的话,则这将近似等于ci×P×R-B。
用于计划的总广告商利润,T≈ci×P×R-B,能够通过最大化点击的总数ci来优化。这是因为平均利润/动作P和转化率R是常数,而且目标是使花费接近于不变的计划预算B。点击的总数近似相等于预算被平均出价所除,即ci=Bba.]]>因此,我们能够通过最小化平均出价ba来最大化点击总数ci。
自动计划管理的目标是1.在该计划上平均地花费预算B。这通过为项{T1,T2,..,Tk}设置出价以便使总成本和预算近似相等来完成,即b1c1+b2c2+…+bkck≈B2.优化广告商的利润。这通过最大化点击总数ci同时花费预算B来完成。这等于最小化平均出价ba,同时花费预算B。
3.如果广告商指定了一个最大平均CPC C,则确保be=eici=b1c1+b2c2+···+bkckc1+c2+···+ck≤C]]>4.如果广告商指定了转化率R和平均利润/动作P,则使用这个信息来选择用于该项的出价,以便最大化总利润T=Σi=1kct(P×R-bi).]]>这不同于条件2,因为有可能获取一个更高的总利润而没有花费全部预算B。
由搜索者进行的多个动作一个搜索者能够在广告商的网站处执行一个或多个对它具有经济价值的动作是有可能的。例如,广告商能够购买一台TV、购买一台TV和一个延伸的服务合同、或者注册以接收将来的宣传信息。通常将有多个独立动作<a1,a2,…,an>,其中用于该动作的利润为<p1,p2,…,pn>而且用于该动作的转化率为<r1,r2,…,rn>。也就是说,点进一个广告商网站的搜索者具有几率r1来执行动作a1以及几率r2来执行动作a2,等。在这种情况下,平均利润/点击是P×R=Σi=1npi×ri]]>不同项和排名的不同转化率不同的项具有不同的转化率也是可能的。所以而不是具有单个转化率R,广告商为在{T1,T2,…,Tk}中的每个项Ti指定一个转化率R(Ti)。让Rmax为用于项Ti的最高转化率。
我们能够把所有的项标准化为具有相同的转化率Rmax,按照1.用因数 缩放在{T1,T2,…,Tk}中的每个项Ti的每个排名的点击次数,以及2.用因数 缩放在{T1,T2,…,Tk}中的每个项Ti的每个排名的出价。
缩放点击次数正规化每个项的转化率,而且逆按缩放出价确保一个排名的成本保持不变。
每个项中的每个排名具有一个不同的转化率同样是可能的。所以而不是具有单个转化率R,广告商为在{T1,T2,…,Tk}中的每个项Ti在每个排名j处指定一个转化率R(Ti,j)。让Rmax为用于项Tj在排名1处的最高转化率。类似于先前的情况,我们能够把所有项标准化为在每个排名处具有相同的转化率Rmax,按照1.用因数 缩放在{T1,T2,…,Tk}中的每个项Ti在每个排名j处的点击次数,以及2 用因数 缩放在{T1,T2,…,Tk}中的每个项Ti在每个排名j处的出价最优计划管理在自动计划管理的第一个实施例中,该系统从个广告商中获取1)具有项{T1,T2,…,Tk}、用于该计划的列表集,2)预算B,3)最大CPCC,以及4)转化率R和平均利润/行动P作为输入。
这个实施例是最优的,因为它检查了用于项{T1,T2,…,Tk}的所有可能的出价组合,并且选择为该广告商产生最高利润的组合,而没有超过预算或者超过最大的平均CPC。
对于在{T1,T2,…,Tk}中的任何项Ti,广告商能够通过比在排名1处广告商的现有出价高出$0.01出价而处于排名1处。在这个示例中,我们已经假定市场操作员已经选择最小的出价增量为$0.01,但是这能够是任意的。假定当前列表在排名2处具有出价$0.87。广告商能够利用出价$0.88而处于排名2处-除非有一个现有的的、具有出价$0.88的列表,在该情况下广告商不能处于排名2处!通过检查在排名3,4,...,等处的现有列表来重复这个处理过程,直到所有排名都已经被检查了为止。这个处理过程对在{T1,T2,…,Tk}中的每个列表重复。
当我们考虑用于在{T1,T2,…,Tk}中的项的所有出价组合时,假如在当前组合中,每个项Ti都具有出价bi而且预期的点击是ci。用于当前组合的点击总数是ci=c1+c2+…+ck,用于当前组合的总开支是ei=b1c1+b2c2+…+bkck,而且用于当前组合的平均出价是be=eici=b1c1+b2c2+···+bkckc1+c2+···+ck]]>如果下列成立的话,则放弃当前组合1.成本总数大于预算(et>B),或者2.平均CPC大于最大值(ba>C)否则,该系统检查以查看是否当前组合迄今为止是最好的。如果当前组合迄今为止是最好的,则新的最好组合被设置为当前组合。
如果广告商仅仅指定了一个最大平均值CPC C,则如果点击总数c大于先前最佳组合的点击总数的话,则当前组合是最佳的。
如果广告商指定了转化率R和平均利润/动作P的话,如果当前总利润,ci(P×R-bi),大于先前最佳组合的总利润,则当前组合是最佳的。
在为项{T1,T2,…,Tk}的所有可能排名处的出价计算了广告商利润总数之后,该系统返回产生最高广告商利润的最优组合。
下列示例说明了最优计划管理的操作。考虑其中有两个项{T1,T2},其中每个项具有一个新广告商可得到的下列排名/点击/出价组合的情况(我们通过让项一样来简化该示例)

最优计划管理考虑100个组合,其中每个组合选择用于每个项的十个排名/出价中的一个。用于不同预算的最优组合显示如下

例如,利用$1,250的预算B,最大化广告商利润的最优计划涉及处于T1的排名10处(具有出价$0.44)以及处于T2的排名2处(具有出价$0.71)。用于这个计划的成本总数是大约$1,209.98,而且预期的点击总数是1,870。由此可见平均出价为1,209.98 1870=.6470481。
不幸地是,这个算法具有指数成本。假定在{T1,T2,…,Tk}中的k个项每个具有大约r个排名。该算法必须考虑在其处出价的所有排名组合。对于每个项都有r+1个可能性(不在这个项上出价,或者在排名1处出价、或者在排名2处出价,...,或者在排名r处出价)。因为用于每个项的选择是独立的,所以有(r+1)k个可能性要考虑。因此,这个算法对于大的问题是不切实际的。
定期重新执行在该计划开始处,如上所述,该系统为在{T1,T2,…,Tk}中的项计算理想的出价组合。因为市场的动态,用于各个排名的出价和点击次数能够在一次计划期间发生变化。
该系统定期地重新计算该最优的出价以确保广告商的计划保持在轨道上以平均地花费预算,以及确保该广告商的利润继续被最大化。
市场操作员,或者广告商,能够选择为一个广告商重新计划该计划的最佳时间。这能够是每个小时、每天、或者它能够是一个能够改变该出价或者点击次数的事件发生的时候(例如,市场操作员通过增加一个新的高通信量分支机构来显著地增加搜索者的数目)。
在该算法被重新运行之前,有关该计划的信息被更新以反映剩余的计划1.用剩余的预算替换预算B2.用剩余的计划时间替换计划时间13.每个项{T1,T2,…,Tk}在每个排名处的转化率由广告商从该计划开始时观察到的实际转化率所替换-如果已经积累了足够的、在统计上相关的数据。
4.用于每个项{T1,T2,…,Tk}在每个排名处的点击/时间数目由从该计划开始的实际点击/时间所替换-如果已经积累了足够的、在统计上相关的数据。
5.用于每个项在每个排名处的出价和来自该市场的最新信息所更新。例如,如果用于项“car”的最高出价是$1.34,则有可能用出价$1.35来处于“car”的排名1处。
有可能在该计划开始处预算是30天$30,000,而且在一天之后预算是29天$28,600。在这种情况下,初始的成本估计是太低的(低估了点击次数,或者某些竞争广告商已经退出了,因此增加了排名)。该算法被用最新的信息重新运行以使该最佳决策前进。
价格保护价格保护是第一实施例的一个变化,其中该系统为在{T1,T2,…,Tk}中每个项的每个选择的排名设置一个价格保护的出价,而不是设置一个固定的CPC出价。这是在第一个变化上的改进,因为它提供了另一个机会来在定期重新执行该计划管理之间、响应于在该市场中出价的改变,优化该广告商的利润。
假定来自最近执行的自动计划管理的、用于项{T1,T2,…,Tk}的出价最佳组合是{b1,b2,…,bk}。而不是为项Ti设置一个固定的出价bi,该系统设置一个价格保护的(PP)出价。
一个PP出价表示该广告商乐意为项Ti付足最大值bi,而且希望该系统用这个出价把他放置在最佳的排名处,但是如果可能这样作的同时把它的位置保持在最佳可能排名处的话,则减少该出价。减少该CPC是可能的,例如,如果低一个排名的广告商减少了他的出价或者退出了的话。PP能够在一个进行的基础上调整广告商的CPC,例如,每当任何出价改变时。
让系统不断地调整该出价以用该广告商的最低可能成本来处于最佳排名,来确保在一个进行的基础上最大化广告商的利润。当在该市场中的其它出价改变时该系统能够调整该出价,而不需要重新执行自动计划管理的计算上更昂贵的任务。
制导计划管理(Guided Flight Management)
制导计划管理是最优计划管理的一个高效计算变化,其中该系统使用直观推断来迫近一次最佳计划。虽然制导计划管理对于某些情况可以是最优的,但是这通常是不能保证的。
对于任何适当大小的问题,最优计划管理的成本是难处理的。因此,制导计划管理是以一个可管理的成本产生接近于最优结果的一个改进。
如先前描述的那样,为该预算产生最高数量的点击最大化了广告商总利润。这等于在花费了计划预算总数的同时,具有用于所有被出价项的最低平均出价。
由Guided Flight Management使用的直观推断法将探测导致平均出价最低增加的组合。最优计划管理检查用于在{T1,T2,…,Tk}中的项的所有可能排名组合处的出价,而制导计划管理仅仅探测这些中的一个小子集。
用于制导计划管理的最佳实施例使用一个登山算法来增加效率。有许多对于本领域普通技术人员来说是显然的这样的“贪心”算法的变体。
该系统通过考虑由进行最低可能出价而产生的、在{T1,T2,…,Tk}中的项的排名组合开始。市场操作员能够选择最小的出价,例如,它能够是每个项$0.05。向这些初始的组合赋予了“当前组合”和“最佳组合”。
本系统接下来经历多次迭代,而且在每次迭代时,它探测所有往“当前组合”的单步扩展。每个单步扩展通过把它的出价增加达到下一个更好排名所需的最小量,把在“当前组合”中的一个项的排名提高到下一个可得到的更好排名。例如,如果在“当前组合”中项Ti具有出价$0.05而且处于排名40,而且有另一个具有出价$0.07、处于排名39的广告商,则下一个用于Ti的可能更好排名是具有最小出价$0.08的排名39。所以扩展中的一个考虑的是通过把出价从$0.05增加到$0.08来把Ti的排名从40提高到39。用于在{T1,T2,…,Tk}中的其它项的所有单步扩展被类似地探测。
导致最低的平均出价的扩展是“当前组合”的新值。
当找到“当前组合”的一个新值时,本系统检查它是否应当把它的“最佳组合”更新为“当前组合”。此外,该系统检查它是否应当结束并且返回该“最佳组合”或者它是否应当继续该迭代过程以发现下一个“当前组合”。
如果广告商仅仅指定了一个最大平均值CPC C,则如果点击总数ci大于先前“最佳组合”的点击总数的话,则“当前组合”是最佳的。
如果广告商指定了转化率R和平均利润/动作P的话,如果当前总利润,ci(P×R-ba),大于当前“最佳组合”的总利润,则当前组合是最佳的。
如果“当前组合”比先前的“最佳组合”要好,则该算法用“当前组合”替换“最佳组合”。
如果下列的任何一个是真的,则该算法结束并且返回当前的“最佳组合”1.成本总数大于预算(ei>B),2.平均出价大于最大值(ba>C),或者3.没有更多的对“当前组合”的一步扩展。如果在{T1,T2,…,Tk}中的每个项都被出价为排名1的话,则这是真的。
否则,该算法继续进行下一次迭代以查找用于“当前组合”的下一个值。
下列示例说明了制导计划管理的操作。同一个数据用于项{T1,T2},如同较早为最优的计划管理给出的那样。由制导计划管理为不同的预算返回的答案如下所示

例如,利用一个$2,100的预算B,制导计划管理找到解法为T1处于排名1(具有出价$0,72)以及为T2处于排名3(具有出价$0.70)。用于这次计划的期望成本总数是$1,964.14,而且预期的点击总数是2,755。由此可见平均出价为1,964.14/2755=.7129365。
对于同一个示例,最优计划管理将找到解法对于T1和T2都处于排名2(每个都具有出价$0.71)。预期的总成本是$2,036.28,而且预期的总点击是2,868。平均出价为$0.71。注意到最优计划管理具有一个更低的平均出价($0.71对比$0.7129365),其导致更多的点击(2,868对比2,755),尽管具有一个稍微高的预期成本($2,036.23对比$1,964.14)。
Guided Exploration是一种登山算法——起始于具有最低出价的组合,然后从当前组合向具有最佳值的邻近组合移动一步。
登山探测比检查每个组合更加有效,因为它具有多项式复杂性。假定在{T1,T2,…,Tk}中的k个项每个具有大约r个排名。在每次迭代处,该算法将检查k个到当前组合的单步扩展(并且选择具有最低平均出价的一个作为新的“当前组合”),而且它将执行i×r个迭代(从用于在{T1,T2,…,Tk}中的所有项的最坏排名到最好执行)。这导致k2*r的时间成本总数。
Guided Exploration对于某些输入可能不是最优的,因为它没有考虑在用于项{T1,T2,…,Tk}的所有排名组合处的出价。因此,它不能保证找到最大化用于该计划的广告商利润的出价组合。然而,用最低出价搜索该组合的直观推断法产生可能是最优而且经常非常接近于最优的解法。
最优化在本发明的另一个实施例中,有许多应用于制导计划管理的最优化。该优化的实施例具有减少的计算时间和空间的优点。
给定来自该广告商的计划预算B及其它限制条件,该最优化忽略了考虑大不可能是最终解法一部分的输入项{T1,T2,…,Tk}的某些排名。这具有显著地减少计算时间和计算空间的优点。这些最优化能够应用于最优计划管理和制导计划管理。
第一最优化忽略了具有比某些阈值更少点击的项{T1,T2,…,Tk}的排名。这是忽略不能显著地贡献发送搜索者到一个广告商网站的排名。
第二最优化仅仅考虑一个用于每个项{T1,T2,…,Tk}的可能排名区域。例如,广告商可以指定对于任何项不应当考虑比排名3差的排名,或者指定对于项T1仅仅应当考虑排名3到10,而对于所有其它项,仅仅应当考虑排名2到5。这些限制条件允许一个广告商更好地完成他的商业目标,例如,通过处于特佳的排名,或者比它的竞争者处于更好的排名,表达一个更高品质和信用的映象。
第三最优化是一个其中系统自动地确定为{T1,T2,…,Tk}中的每个项考虑的可能排名区域的变体。因为自动计划管理在一次计划期间定期运行,先前运行的结果被用来选择为{T1,T2,…,Tk}中的每个项考虑的适当排名区域。
计划管理的先前运行为每个项{T1,T2,…,Tk}选择一个具体的出价/排名,其预计可最大化广告商的利润。自动计划管理的下一次运行仅仅考虑在先前运行选定排名周围的排名窗口。这个窗口能够由市场操作员选定,例如,选择一个来自自动计划管理先前运行的最优排名两端各5个排名的窗口。窗口越大结果越好,但是需要用于市场操作员的更多计算时间和成本。
对于在{T1,T2,…,Tk}}中的每个项Ti,当是下列情况时,该最优化忽略了Ti的所有排名ri,j1.排名ri,j距离具有先前最优出价bi,e的Ti的排名超过不变的α个排名,或者2.排名ri,j的出价bi,j没有在先前最优出价bi,e的因数β内,即如果下列不是真的(1-β)*bi,e≤bi,j≤(1+β)*bi,e此处0≤β≤1,则删除排名ri,j第一次运行自动计划管理是,没有用于在{T1,T2,…,Tk}中的每个项T的先前最优出价bi,e。对于绝对的第一次运行,对于所有项{T1,T2,…,Tk}我们能够估计先前的最优出价bi,e等于平均的最优出价be。这样计算平均最优出价以便如果所有的项{T1,T2,…,Tk}都被赋予这个出价,则这将导致花费接近于预算B。第一次运行自动计划管理时,没有考虑离这个初始估计值“很远”的排名。
以下示例说明了自动删除排名的处理过程。有三个项(hotel,travel,vaction)。假定预算B是$525然后产生的平均最优出价是$0.45,而且通过以这个水平在所有项上出价,我们大致花费了全部预算。



Hotel的排名16、Travel的排名3、和vacation的排名8具有最靠近$0.45的出价。该粗体排名是在删除处理过程之后、当α=5(所有距离该黄色排名超过5个排名的排名被删除)和β=1(所有具有出价大于$0.90的排名被删除)时,剩余的一些。其它是为不同的α和β值删除的排名。附图中几个图的简要说明

图1是这样一个框图,其说明在一个大网络和本发明的产生一个付费安排搜索结果的系统和方法的一个实施例之间的关系;图2是在本发明一个实施例中使用的菜单图表、显示屏幕、和输入屏幕;图3是说明了在本发明一个实施例中执行的广告商用户登录处理过程的流程图;图4是说明了在本发明一个实施例中执行的管理用户登录处理过程的流程图;图5是一个用于和本发明的一个实施例一起使用的帐户记录的数据框图;图6是说明了一种增加金钱到一个在本发明的一个实施例中使用的帐户记录中的方法的流程图;图7说明了由本发明一个实施例产生的搜索结果列表的一个示例;图8是一个说明了在本发明一个实施例中使用的改变出价处理过程的流程图;图9说明了在图8的改变出价处理过程中使用的一个屏幕显示的示例;以及图10-32是依据当前实施例说明一个系统操作的流程图。当前最佳实施例的详细说明数据库搜索系统在这个实施例中包含一个搜索列表数据库。每个搜索列表与一个相应的广告商相关联而且每个搜索列表包含一个搜索项和一个变化的每个点击成本(CPC)或者一个变化的显示排名。在这个实施例中的数据库搜索系统进一步包含一个被配置为标识匹配从一个搜索者接收的搜索查询的搜索列表的搜索引擎。该匹配的搜索列表更可取地是依据该匹配的搜索列表的显示排名和出价金额在一个搜索结果列表中排序。代理对来自广告商的条件定义起反应以向广告商提供条件更新信息。该条件定义指定了要被监控的条件。条件更新信息,如果给出的话,指定在其下面将更新条件的情况。
另一个实施例被实现为一种用于操作一个数据库搜索系统的方法。在这个实施例中,该方法包含在数据库中存储多个搜索列表。每个搜索列表与当搜索列表被一个搜索者引用时、给出经济价值的广告商相关联。该方法进一步包含为相关的搜索列表确定一个显示位置。在一个示例中,相关的搜索列表由公用数据,诸如搜索项或者搜索项的接近性相关联。从完全确定的方法到完全随机方法,可以以任何适当的方法确定显示位置。位置确定方法可以基于广告商输入或者某些其它信息。在一个实施例中,每个搜索列表被赋予一个每个点击成本(CPC)并且基于CPC确定显示位置,当接收到一个搜索项或者它的一个变体时,让最高的CPC列表用于被列的最高的那个搜索项。该方法进一步包含从广告商接收广告商期望自动计划管理的搜索列表的指示。可以依据任何适当的通信方法,任何可得到的、方便的通信信道发送指示和状态报告到一个广告商。
在图10-24中说明的过程可以以软件或者硬件或者这些的任何组合执行。在一个实施例中,该过程被初始化为在帐号管理服务器22的处理系统34上运行的软件过程(图1)。在其它实施例中,该过程可以在一台具有对搜索列表数据库进行网络访问的单独计算机上运行。这些过程一起形成了一个自动计划管理功能。
在图10-24中说明的过程实现了在一个计算机数据库系统中的自动计划管理系统。这个方法包含诸如从一个与保存在计算机数据库系统中的某些搜索列表有关的所有者处接收一个自动计划管理指令、监控该计划的性能并且进行为优化该所有者/广告商总利润所必需的任何调整、并且定期地并且依据有关该计划状态的任何改变发送一个通知到所有者的动作。
在一个实施例中,计算机数据库系统是为此处描述的位置搜索系统的付费,而且包含一个搜索列表数据库和搜索引擎。该搜索列表每个都和一个广告商或者搜索列表的所有者相关。该搜索列表每个都包含诸如搜索项、由广告商指定的出价值或者每个点进的最大成本、每个点进的成本(CPC)以及排名或者显示排名的数据。CPC和排名可以取决于由该广告商和与包含同一个搜索项的搜索列表有关的其它广告商指定的值自动地改变。例如,该系统可以自动地把一个列表的CPC减少到一个最小值同时仍然保持一个指定的排名。该搜索引擎把搜索项或者该搜索列表的其它部分和从搜索者接收的搜索查询进行匹配。依据CPC和显示排名组织该匹配的搜索列表并且把它返回到搜索者。如果一个搜索表被搜索者所引用,数量等于CPC的经济价值由广告商或者所有者所付费,其中该广告商或者所有者可以为这些目的保持一个帐户。在这种情况下一个搜索列表的一次引用可以是一个印象,诸如在产生的显示屏中包含有关该搜索列表的信息,搜索者的一次点进,或者搜索者的某些后点进动作。这个实施例仅仅是示例的。该通知方法可以同样应用于其它类型的数据库搜索系统,用于向所有者或者与在该数据库中的列表有关的其它人建议一个搜索列表的改变条件。
依据当前实施例,每个广告商能够通过指定1)对于这次计划要出价的项{T1,T2,…,Tk}、2)为该计划的预算B、3)计划持续时间、4)转化率R、以及5)平均利润/动作P来创建一个新的自动计划管理功能。该计划时间可以持续多日,以及广告商能够随时更新转化率R和平均利润/动作P。
如上所述,有两个主要的自动计划管理最优计划管理和制导的计划管理的实施例,具有进行进一步效率改善的变化。在这些实施例的每一个中,系统重新计算在整个计划过程中最优的出价,以对市场动态作出响应。最优计划管理过程最优计划管理(procedure Optimal Flight Management)最优化广告商的总利润。该过程初始化计划参数,然后进入循环。循环中的每次迭代计算用于最大化利润的项{T1,T2,…,Tk}的最优出价。这伴随着初始化用于每次迭代的计划参数,然后计算最优的出价。然后通过在实际市场中设置用于这些项的出价例示最新计算的出价,而且用价格保护设置最优的出价,每当可能不消极地影响一个项的排名时,它通过减少这些项的CPC最大化广告商的利润。最优到在一个项上没有出价是可能的,在这种情况下它被给予一个零出价。把当前出价的报告发送给广告商用于查阅。如果广告商这样期望的话,他能够使用DTC人工地替换任何出价。
在设置出价之后,该过程等待一定时间或者随机时间,或者等待某些事件(例如,通过市场操作员的搜索者数目的增加)。例如,系统能够等待一天。在这个等待期结束时,系统重新计算在计划中的剩余预算和剩余的计划时间。处理过程在下一个迭代处重复它自己,重新计算用于其余计划的最优出价。当达到计划的结束时间时停止迭代。
每个项具有一个可能的排名/出价组合列表。阵列rank&bids记录用于每个项的可能的排名/出价组合。rank&bids(Ti)的值是用于项Ti的一个多元组列表[<rank -a,bid -a>,...,<rank -n,bid -n>]。数组index定义将为每个项使用哪个多元组。index(Ti)的值是用于项Ti的、给用户的多元组。如果index(Ti)=0,则项Ti具有一个零出价(它没有被选择)。如果index(Ti)=1,则第一个多元组的出价被用于Ti,index(Ti)的其它值类似。
函数“rank-of”把多元组列表[<rank-a,bid-a>,...,<rank-n,bid-n>]和索引i作为输入。它返回第i个多元组的排名,其为rank-i。类似地,函数“bid-of”该多元组列表和索引i作为输入。它返回第i个多元组的出价,其为bid-i。
在图10中说明了最优计划管理过程的一个实施例。过程从方框1000开始。在方框1002,过程等到开始广告发布计划为止。在方框1004,调用过程initialize flight(初始化计划)。下面将结合图11说明初始化计划过程的一个实施例。
在方框1006,开始循环操作。这个循环继续直到计划结束为止。在方框1008,通过调用过程set flight parameters(设置计划参数)初始化计划参数。下面将结合图12说明这个过程的一个实施例。在方框1010,调用过程generate optimal flight(产生最优计划)。下面将结合图13说明这个过程的一个实施例。
在方框1012,为由一个广告商指定的所有搜索项开始一个循环操作。在方框1014,确定当前搜索项的索引是否等于0。如果是这样的话,则在方框1016,用于当前这种项的变量值PP-BID被设置为等于0值。在方框1018,用于当前搜索项的变量值被设置为等于用于当前搜索项的排名加1。
如果在方框1014用于当前搜索项的索引不等于0,则在方框1020,用于当前搜索项的变量PP-BID的值被设置为等于BID-OF(ranks&bids(T),index(T))的值。值last rank(T)被设置为等于rank-of(ranks&bids(T),index(T))的值。在方框1024,重复循环操作,直到广告商的所有搜索项都已经被处理了为止。
在方框1026,向广告商发送一个报告。那个报告显示了由该过程确定的当前出价。在方框1028,标记first-execution被设置为假值。在方框1030,等待可能是随机时间或者可能取决于某些外部事件的一定时间。在方框1032,值remaining-budget被设置为等于总预算B减去从计划开始花费的预算。在方框1034,值remaining-flight被设置为等于从当前时间直到当前间隔结束的时间间隔。在方框1036,如果已经达到了用于计划的结束时间,则循环操作返回到方框1006。当已经达到了计划结束时,处理过程在方框1038结束。
还可以依据显示如下的伪代码实现过程optimal flight management(最优计划管理)。
<pre listing-type="program-listing"><![CDATA[Wait until the beginning of the flight;Initialize Flight;Loop until the end of the flight   Set flight parameters;   Generate Optimal Flight;   For every term Ti in{T1,T2,…,Tk}  If index(Ti)=0  Assign price-protected-bid(Ti)=0;  Assign last-rank(Ti)=#ranks(Ti)+1;  Else  Assign price-protected-bid(Ti)=   bid-of(ranks&amp;bids(Ti),index(Ti));  Assign last-rank(Ti)=rank-of(ranks&amp;bids(Ti),index(Ti));  End If;   End For;   Send report to advertiser;   Assign first-execution=false;   Wait for a random time,or some time period,or for an event;   Assign remaining-budget=B-budget spent from start;   Assign remaining-flight=interval from now to end of I;End Loop;End Procedure;   Procedure Optimal Flight Management()]]></pre>在自动控制计划管理开始时,过程Initialize Flight初始化参数。这包含设置剩余的预算、设置从当前时间开始的新的计划持续时间、记录这是第一次用于该计划的出价将被计算、并且初始化该状态变量以记录每个项当前都没有被选择(它的“上一次排名”值为零)。
图11显示了说明initialize flight(初始化计划)过程的一个实施例的流程图。该过程从方框1100开始。在方框1102处,变量剩余预算的值被设置为等于变量B的值。在方框1104处,变量剩余计划的值被设置为等于变量I的值。在方框1106处,标记first-execution被设置为等于值真。
在方框1106处开始一个循环,处理该广告商由变量T索引的所有搜索项。在方框1110处,变量上次排名(T)被初始化为一个值零。在方框1112处,循环操作继续进行,返回控制到方框1108。过程initialize flight在方框1114处结束。
以在下面的伪代码说明了过程initialize flight的另一个实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Initialize Flight()Assign remaining-budget=B;Assign remaining-flight=I;Assign first-execution=true;For every term Ti in{T1,T2,…,Tk} Assign last-rank(Ti)=0;End For;End Procedure;]]></pre>过程设定计划参数(procedure Set Flight Parameters)在自动计划管理的每次执行开始处重置参数。如前所述,在一次计划期间定期地重新计算用于项的最优出价。在每次计算之前,市场的当前状态和来自广告商的任何反馈被用来更新用于计算最优出价值的参数。
在任何时候,广告商能够更新任何项在任何排名处的转化率。这能够考虑来自广告商网站的最新信息。该系统首先计算在{T1,T2,…,Tk}中的任何项Ti在任何排名j处的R(Ti,j)的最高转化率,Rmax。它接下来“正规化”每个项在每个排名处的点击次数和出价,以便所有项在所有排名处都具有相同的转化率Rmax。正规化涉及把每个项Ti在每个排名j处的点击次数乘以因子 以及把每个项Ti在每个排名j处的出价乘以因子 过程historical clicks使用来自市场的历史数据来为一个给定项和排名计算在一个时间周期上的点击次数。过程current-bid返回一个项在一个排名处的当前出价。
图12是说明过程set flight parameters(设置计划参数)的一个实施例的流程图。该过程从方框1200开始。在方框1202处,对应于最高转化率的变量Rmax被设置为等于用于任何搜索项T在任何排名J处的最大转化率。在方框1204处,变量L被设置为等于剩余计划的长度。
从方框1206开始一个循环操作,在所有搜索项T和所有排名J上进行循环。在方框1208处,用于当前项和排名的转换率被设置为等于最大转化率,Rmax。在方框1210处,变量用于当前搜索项和排名的点击被设置为等于用于当前项和排名的转化率对最大转换排名的比值,乘以用于当前搜索项、排名和当前剩余计划长度的点击总数。在方框1212处,用于搜索项T在排名J处的当前出价被设置为等于最大转化率对用于搜索项T在排名J处的当前转化率的比值,乘以用于搜索项T在当前排名J处的当前出价。在方框1214处,循环操作返回控制到方框1206,直到在每个排名处的所有搜索项都已经被处理了为止。过程set flight parameters在方框1216处结束。
在下面的伪代码说明了过程set flight parameters的第二实施例。Procedure Set Flight Parameters()Assign Rmax=maximum R(Ti,j)of any term Tiat any rank j;Assign L=length of remaining-flight;For every term Tiin{T1,T2,…,Tk}at every rank jAssign conversion-rate(Ti,j)=Rmax;Assignclicks(Ti,j)=R(Ti,j)Rmax*historical-clicks(Ti,j,L);]]>Assignbid(Ti,j)=CR,maxCR,i,j*current-bid(Ti,j);]]>End Procedure;过程产生最优计划(procedure Generate Optimal Flight)用于项{T1,T2,…,Tk}计算最优出价以最大化广告商的总利润。该过程首先初始化计算参数一这些跟踪迄今为止发现的最佳出价、以及广告商能够为每个项出价的可能排名、以及用于这些排名的最小出价。
该过程的主体是一个循环。循环中的每个周期检查用于该项的一个新出价组合。如果当前组合迄今为止是最好的,则它被记录为新的最好组合。当已经检查了所有组合时,结束该过程并且返回找到的最佳组合。
循环中的每个周期首先检查用于每个项{T1,T2,…,Tk}的当前出价组合。它为当前组合计算点击总数、出价平均值、成本总数、以及广告商利润总数。如果当前组合的出价平均值大于由广告商指定的最大平均值CPC(C)、或者成本总数大于剩余的预算,则忽略它。否则,当前组合与先前的最佳组合进行比较。如果当前组合更好,则用当前组合替换先前的最佳组合。循环中最后的步骤选择用于该项{T1,T2,…,Tk}的一个新出价组合。当该过程已经完成检查了所有组合时,它就退出并且返回最佳出价组合。
图13是说明过程generate optimal flight(产生最佳计划)的一个实施例的流程图。该过程从方框1300开始。在方框1302处,调用过程initialize calculation parameters。下面将结合图15说明这个过程的一个实施例。
在方框1304处,进入一个循环操作。在方框1306处,变量clicks/bid/cost/profit的值被设置为等于由过程current combination返回的结果。下面将结合图17说明这个过程的一个实施例。在方框1308处,进行一次比较以确定当前出价是否小于或等于由广告商指定的最大每次点击成本以及计划成本是否小于或等于剩余的预算。如果不是的话,控制继续进行到方框1318。否则,在方框1310处,进行比较以确定当前组合是否比先前的最佳组合更好。调用过程better以执行这个操作。下面将结合图14说明过程better的一个实施例。如果方框1310中的比较没有产生一个真的结果,控制继续进行到方框1318。否则,在方框1312处,变量best-index(最佳索引)的值被设置为等于当前组合的索引。类似地,在方框1314处,变量best-clicks(最佳点击)的值被设置为等于变量用于当前组合的点击的值,而且在方框1316处,变量best-profit(最佳利润)的值被设置为等于变量用于当前组合的利润的值。
在方框1318处,确定是否所有的组合都已经被检查了。如果不是的话,在方框1324处递增变量索引的值并且在方框1326处,该循环操作返回到方框1304以处理另一个组合。如果,在方框1318处,已经考虑了所有的组合,则在方框1320处,由该过程返回项和出价的最佳组合的索引。该过程在方框1322处结束。
在下面的伪代码说明了过程generate optimal flight的第二实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Generate Optimal Flight(Terms)Initialize Calculation Parameters;Loop Assign clicks/bid/cost/profit=current combination(index); If bid<=C and cost <=remaining-budget   If best-index={ }or better(clicks,profit)  Assign best-index=index;  Assign best-clicks=clicks;  Assign best-profit=profit;   End If; End If; If max-index (index)return best-index; Assign index=increment-index(index,T1);End Loop;End Procedure;]]></pre>过程最好(procedure Better)检查当前组合是否是在过去看到的最佳组合要更好。广告商能够为被传送到广告商网站的搜索者指定平均利润/动作P。
如果广告商没有指定平均利润/作用(P值是负1),则如果当前组合具有更多的点击则它是更好的。否则,如果当前组合导致用于该广告商的一个更高总利润,则它是更好的。
在图14的流程图中说明了过程better的一个实施例。该过程从方框1400开始。在方框1402处,对应于平均每个动作利润的变量P的值与值-1进行比较。如果P等于-1,在方框1404处,它确定变量点击的值是否大于变量best-clicks(最佳点击)的值。如果不是的话,在方框1406处,该过程返回逻辑值假。如果点击大于best-clicks(最佳单击),在方框1408处,该过程返回逻辑值真。如果,在方框1402处,P不等于-1,则在方框1410处,它确定变量profit(利润)的值是否大于变量best-profit(最佳利润)的值。如果不是的话,在方框1412处,该过程返回逻辑值假。如果在方框1410处profit(利润)大于best-profit(最佳利润),则在方框1408处,该过程返回逻辑值真。该过程在方框1414处结束。
在下面的伪代码显示了过程better的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Better(clicks,profit)If P=-1 If clicks>best-clicks return True Else return False;Else If profit>best-profit return True Else return False;End If;End Procedure;]]></pre>过程初始化计算(procedure Initialize Calculations)在计算最佳出价开始处重置参数。首先,它记录迄今为止还没有发现出价的最佳组合(best-index),而且没有对任何组合记录了点击和利润。第二步骤是为每个项{T1,T2,…,Tk}计算可能的排名、以及用于这些可能排名的最小出价。它还记录广告商能够在其上出价的可能排名数目(#ranks)。最后的步骤是把当前组合设置为对每个项都具有零出价(对于每个项index(Ti)都被设置为零)。
图15是说明了过程initialize calculation parameters的一个实施例的流程图。该过程从方框1500开始。在方框1502处,变量best-index被设置为一个空值。在方框1504处,变量best-clicks被初始化为0。在方框1506处,变量best-profit同样被初始化为0。从方框1508开始一个循环操作。在方框1510处,用于当前搜索项的变量ranks &amp; bids为设置为等于由过程possible-ranks &amp; bids返回的值。结合图16在下面显示了过程possible-ranks &amp; bids的一个实施例。在方框1512处,用于当前搜索项的变量#ranks被设置为等于用于当前搜索项的数组ranks &amp; bids的长度。在方框1514处,用于这个当前搜索项的索引数组的内容被初始化为0。在方框1516处,结束该循环操作而且控制返回到方框1508,直到所有搜索项已经被处理了为止。该过程在方框1518处结束。
在下面的伪代码显示了过程Initialize calculation parameters的另一个实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Initialize Calculation Parameters()Assign best-index={};Assign best-clicks=0;Assign best-profit=0;For each term Ti in {T1,T2,…,Tk}   Assign ranks &amp; bids(Ti)=possible-ranks&amp;bids(Ti);   Assign #ranks(Ti)=length(ranks&amp;bids(Ti));   Assign index(Ti)=0;End For;End Procedure;]]></pre>过程可能排名及出价(procedure Possible Ranks &amp; Bids)计算对于项Ti、一个新广告商能够处于的可能排名,以及用于这些排名的最小出价。项Ti具有在市场中用于从排名1到某些最大数量排名r的某些现有出价。通过选择最小出价而总是有可能处于排名r+1。还有可能通过选择用于排名1的当前出价加上$0.01来处于排名1。它可以或者可以不是有可能处于在排名1和排名r之间的其它排名。例如,如果在排名3和排名4处当前列表具有$0.35的出价,则新广告商不可能处于排名4。新广告商只能处于排名3或者排名5,因为具有相同出价的所有列表被按序排列。对于具有相同出价任何两个列表,在较早的时间设置它的出价的一个具有一个更好的排名。
过程通过为每个排名找到现有的出价开始。这些现有的出价然后从最小出价(用于最差排名)到最大出价(用于排名1)排序。变量“worst-rank”记录最差排名的数目。该过程接下来初始化循环变量“current-rank”、“current-bid”、以及“ans”。
从第二低出价(rest(bids)开始到最高出价,该过程贯穿每个现有的出价循环。在循环中的每次迭代处,该系统检查用于一个排名的出价是否与用于下一个更差排名的出价相同。如果不是这样的话,则利用一个比用于下一个更差排名的当前出价高一个分币的出价,具有在下一个更差的排名处增加新广告商的″空间″。在每次迭代结束时,过程把当前排名设置为比当前排名好一个排名,并且把“bid”分配给当前排名的出价。
该过程返回可能排名、以及处于这个排名处的最小出价的列表。该列表中的每个单元是一个多元组&lt;rank;bid&gt;。这个多元组列表从最低出价到最高出价排序。
图16是说明了过程possible ranks &amp; bids的一个实施例的流程图。该过程从方框1600开始。在方框1602处,变量bids的值被设置为等于用于当前搜索项T在所有排名处的出价集。在方框1604处,从最低到最高出价排序该出价。在方框1606处,变量worst-rank被设置为等于最低排名出价的排名。在方框1608处,变量current-rank被初始化为值worst-rank。在方框1610处,变量current-bid被初始化为在该出价数组中的第一个条目。在方框1612处,变量被初始化为一对值最差排名的值加一,以及最少出价。
使用在其它出价集上的变量x,一个循环操作从方框1614开始。在方框1616处,变量x与当前出价值进行比较。如果x等于当前出价,则控制继续进行到方框1620。如果x不等于current-bid,则在方框1618处,一对当前排名和当前出价加上最少可能出价的值被添加到数组ans的末端。在方框1620处,变量current-bid的值被设置为等于x的值。在方框1622处,变量current-rank的值被递减1。该循环操作在方框1624处结束而且除非已经达到了最高出价,否则控制返回到方框1614。
在方框1626处,具有一对包含排名1和一个等于当前出价加上最少出价金额的出价值的条目被添加到数组ans中。在方框1628处,该过程返回数组ans。该过程在方框1630处结束。
依据伪代码显示了过程possible ranks &amp; bids的第二实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Possible Ranks &amp; Bids(Ti)Assign bids=the set of bid(ti,j)for all ranks j;Assign bids=sort bids from lowest to highest bid;Assign worst-rank=length (bids);Assign current-rank=worst-rank;Assign current-bid=first(bids);Assign ans=[<worst-rank+1,min-bid>];Loop x over rest(bids);   If x<>current-bid  Add <current-rank,current-bid+$0.01>to end of ans;   End If;   Assign current-bid=x;   Assign current-rank=current-rank-1;End Loop;Add <1,current-bid+$0.01>to end of ans;Return ans;End Procedure;]]></pre>过程当前组合(procedure Current Combination)把当前组合,其为每个项{T1,T2,…,Tk}的出价/排名组合,取为输入,并且计算它的1)点击总数,2)平均出价、3)总成本和4)总广告商利润。点击总数是用于每个项在它的选定排名处、在剩余计划期间上的点击总量。总成本是每个项在它的选定排名处、在剩余计划期间上的成本总和。平均出价是总成本除以点击总数。广告商总利润是用于每个项的利润总量。
先前的过程Possible Ranks &amp; Bids为一个项计算可能的&lt;rank,bid&gt;多元组列表。过程Initialize Calculation Parameters把rank &amp; bids(Ti)初始化为用于项Ti的可能&lt;rank,bid&gt;多元组列表,由为每个项选择的&lt;rank,bid&gt;多元组定义被考虑的“当前组合”。为项Ti选择的多元组由index(Ti)定义。如果index(Ti)&gt;=0,则项Ti具有一个零出价(在当前组合中它没有被选择)。如果index(Ti)=1,则第一个多元组rank &amp;bids(1)定义了用于项Ti的出价和排名,并且类似地情况用于index(Ti)的其它值。回想一下多元组列表通过递增出价来排序,所以第一个多元组具有最低的出价,其对应于最差的排名。
在迭代1处,该过程提取项Ti的当前排名和出价。Ti在它的当前排名处、在剩余计划时间(L)上的点击次数,从历史的市场数据中计算得到。Ti的成本是点击次数乘以出价。用于项Ti的利润是1)点击次数,和2)利润/动作乘以转化率再减去出价,的乘积。在迭代的结束处,成本总数递增用于Ti成本、点击总数递增用于Ti的点击、然后总利润递增用于Ti的利润。
当在{T1,T2,…,Tk}中的所有项T都已经被考虑了时结束定冠词循环。该过程最终返回四个值1)点击总数、2)平均出价、3)成本总数、和4)用于项{T1,T2,…,Tk}的总利润。
图17是显示了过程current combination的一个实施例的框图。该过程从方框1700开始。在方框1702处,变量cost被初始化为值0。在方框1704处,变量clicks被初始化为值0。在方框1706处,变量profit被初始化为值0。
在方框1706处,使用广告商的搜索项作为循环索引,开始一个循环操作。在方框1710处,确定用于当前搜索项的索引值是否不等于0。如果用于当前搜索项的索引等于0,则控制继续进行到方框1724。否则,在方框1712处,变量rank被分配了用于搜索项T的数组ranks &amp;bids的index(T)单元中的排名。在方框1714处,变量bid被分配了用于搜索项T的数组bids &amp; bids的index(T)单元中的出价。在方框1716处,计算搜索项T在当前排名处的点击次数。在方框1718处,当前的成本值被设置为等于成本与出价和用于搜索项T的点击次数的乘积的总和。在方框1720处,点击次数增加了用于搜索项T的点击次数。最后,在方框1722处,利润递增了点击次数与,每个动作的利润乘以转化率再减去用于该搜索项的出价,的乘积。在方框1724处,控制返回到方框1708用于另一次迭代,当变量用于当前当前搜索项的索引的值等于0时,退出该循环并且在方框1726处,该过程返回四个变量点击、每个点击成本、成本与利润的值。该过程在方框1728处结束。
在下面的伪代码中显示了过程current combination的第二实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Current Combination(index)Assign cost=0;Assign clicks=0;Assign profit=0;Loop over each term Ti in {T1,T2,…,Tk}  If index(Ti)<>0  Assign rank(Ti)=rank-of(rankS&amp;bids(Ti),index(Ti));  Assign bid(Ti)=bid-of(rankS&amp;bids(Ti),index(Ti));  Assign clicks(Ti)=historical-clicks(Ti,rank(Ti),L);  Assign cost=cost+bid(Ti)*clicks(Ti);  Assign clicks=clicks+clicks(Ti);  Assign profit=profit+   clicks(Ti)*(P*conversion-rate(Ti,rank(Ti))-bid(Ti)); End If;End For;Return clicks,cost/clicks,cost,profit;End Procedure;]]></pre>过程最大索引(procedure Max-Index?)检查是否没有更多的组合要考虑了。开始的组合为所有的项具有一个零出价。如果当前组合在用于所有项的排名1处,则没有更多的组合了。
如上所述,由为每一项选择的&lt;rank,bid&gt;多元组定义“当前组合”。为项Ti选择的多元组由index(Ti)定义。如果index(Ti)=0,则项Ti具有一个零出价(在当前组合中它没有被选择)。如果index(Ti)=1,则第一个多元组rank &amp; bids(1)定义了用于项Ti的出价和排名,并且类似的情况用于index(Ti)的其它值。如果用于每一项的索引在它的最大值处,则没有更多的组合了。这对应于正被出价到排名1的每一项(回想从最低出价到最高出价排序的字节组列表——其对应于排名1)。
图18是说明过程max-index?的一个实施例的流程图。该过程从方框1800开始。在方框1802处,使用广告商的搜索项作为循环索引,开始一个循环操作。在方框1804,确定用于当前搜索项的变量index的值是否小于用于该搜索项的排名数目。如果这样的话,在方框1808,返回逻辑值假,并且控制继续到方框1812。否则,在方框1806,循环操作返回控制到方框1802,用于处理下一个搜索项。在退出循环之后,在方框1810,过程返回逻辑值真。该过程在方框1812处结束。在下面的伪代码显示了过程max-index?的一个替换实施例。Procedure Max-Index?(index)For each term Tiin{T1,T2,…,Tk}If index(Ti)&lt;#ranks(Ti)return False;End For;Return True;End Procedure;过程递增索引(procedure Increment-Index)选择要考虑的下一个组合。在{T1,T2,…,Tk}中的每一项Ti具有一个索引值index(Ti),其是到&lt;rank,bid&gt;字节组列表中的索引。在列表中把这些字节组从最低出价到最高出价进行排序。该过程第一次尝试增加Ti的索引(以用下一个更高的出价和下一个更好的排名选择字节组)。如果Ti的索引已经在它的最大值了,则T1的索引被设置为0(我们不再在T1上出价),而且为T2重复相同的处理过程。这类似于增加一个k位数的数字。我们首先增加一位。如果我们到达了用于一位的最大值,则我们把它设置为0,并且增加下一位,等等诸如此类。在此,每一位具有它自己的范围(0用于在该项上没有出价,1用于最坏的排名,2用于其次最坏的排名,直到用于排名1的#ranks(T1))。函数next把项Ti作为输入,并且返回在{T1,T2,…,Tk}中的下一项Ti+1即next(Ti)=Ti+1。
图19是说明了过程increment-Index的一个实施例的流程图。该过程从方框1900开始。在方框1902,确定用于当前搜索项的索引值是否等于这个当前搜索项的排名数目。如果不是,则在方框1904,把用于该搜索项的索引值加1。Control then proceeds to block 1912。
如果在方框1902用于该搜索项的索引等于用于该搜索项的排名数目,则在方框1906,用于该搜索项的索引被设置为0,并且在方框1908,确定i是否和k相等。如果这样的话,则控制继续到方框1912,然后退出该过程。否则,在方框1910,该过程递归调用它自己,以递增下一项的索引。该过程在方框1912处结束。
在下面的伪代码中显示了用于实现过程increment-index的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Increment-Index(index,Ti)If index(Ti)= #ranks(Ti)   Assign index(Ti)=0;   If i=k return;   Increment-index(index,Ti+1);Else   Assign index(Ti)=index(Ti)+1;End If;End Procedure;]]></pre>制导计划管理上述的过程已经定义了其中系统计算用于项{T1,T2,…,Tk}的最优出价以最大化广告商利润的第一种变体。如上所述,查找最优解的成本对大的问题来说是难以计算求解的。
第二种变体,被称作制导计划管理(Guided Flight Management),通过查找一个可能在大部分情况(尽管不是所以的情况)下最优的解解决了这个问题,并且已经大大地减少了计算成本。
Guided Flight Management的效率关键是它仅仅考虑了很可能是最优解的组合。这大大地减少了需要考虑的组合数目。为了最大化广告商利润,自动计划管理必须设置项{T1,T2,…,Tk}的出价以获得用于预算B的最多点击。这等于具有用于项{T1,T2,…,Tk}的最低平均出价。
Guided Flight Management通过查看具有最低出价和最多点击的组合开始。这伴随用于所有项的最低出价。它然后进入一个循环——在每次迭代时增加出价以提高在{T1,T2,…,Tk}中的一个项的排名,以便把平均出价增加最小的金额。只要总成本小于计划预算,而且只要平均出价小于广告商指定的最大平均CPC,就重复迭代。最后,返回花费计划预算并且具有最低平均出价的最好组合。
过程制导计划管理(procedure Guided Flight Management)与过程Optimal Flight Management(早先描述的)相同,除了它使用过程Generate Guided Flight而不是Generate Optimal Flight之外。这在下面是以黑体显示的行。早先给出的相同说明适用于其它公共的过程。
图20是说明了一种制导计划管理方法的一个实施例的流程图。该方法从方框2000开始。在方框2002,过程中的操作等候广告发布计划开始。在方框2004,初始化计划。在一个实施例中,这可以依据以上结合图11所述的方法实现。
在方框2006,循环操作开始,它延续整个计划的持续时间。第一个循环操作是方框2008,其中设立计划参数。这可以依据以上结合图12所述的动作实现。在方框2010,启动过程generate guided flight。下面将结合图21说明这个过程的一个实施例。
在处理广告商的与广告发布计划有关的所有搜索项期间,循环操作从方框2012开始。在方框2014,确定当前搜索项的索引是否等于0。如果这样的话,则在方框2016,用于搜索项的变量PP-BID被设置为等于0,而且在方框2018,用于搜索项的变量last-rank被设置为等于有用于搜索项Ti的出价的排名的数目加1。然后控制继续到方框2024,并且为另一遍循环回到方框2012。因此,在方框2014,用于当前搜索项的索引不等于0,在方框1020,用于当前搜索项的变量PP-BID的值被设置为等于包含在BID-OF(ranks &amp; bids(T),index(T))中的变量值。在方框2022,用于当前搜索项的变量last-rank的值被设置为等于当前搜索项的排名。
在退出包含方框2012、2014、2016、2018、2020、2022、2024的循环之后,在方框2026,把由循环操作确定的当前出价和排名的报告发送给与广告发布计划有关的广告商。在方框2028,逻辑变量First-Execution被设置为假值。在方框2030,过程在再继续之前等待一段时间。这段时间可以由随机时间、经过一段预定时间或者由一个事件的发生确定。在方框2032,变量remaining-budget被设置为等于在用于计划的总预算B和从广告发布计划开始花费的预算之间的差。在方框2034,变量remaining-flight被设置为等于在当前时间和当前计划间隔结束时间之间的差。在方框2036,到达循环的结束,并且控制返回到方框2003用于额外的处理。到计划结束时,在方框2038结束图20中的方法。
在下面的伪代码中显示了过程guided flight management的第二实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Guided Flight Management()Wait until the beginning of the flight;Initialize Flight;Loop until the end of the flight Set flight parameters;   Generate Guided Flight;   For every term Ti in {T1,T2,…,Tk}  If index(Ti)=0  Assign price-protected-bid(Ti)=0;  Assign last-rank(Ti)=#ranks(Ti)+l;  Else  Assign price-protected-bid(Ti)=   bid-of(ranks &amp; bids(Ti),index(Ti));  Assign last-rank(Ti)=   rank-of(ranks &amp; bids(Ti),index(Ti));  End If;   End For;   Send report to advertiser;   Assign first-execution=false;   Wait for a random time,or some time period,or for an event;   Assign remaining-budget=B-budget spent from start;   Assign remaining-flight=interval from now to end of I;End Loop;End Procedure;]]></pre>过程产生制导计划(procedure Generate Guided Flight)仅仅探测很可能在最优解中的组合。如早先为过程Generate Optimal Flight描述的那样,该过程通过初始化计算参数开始。它接下来进入一个循环。循环中的每次迭代探测一个新组合,其中把一个项的排名增加一个位置——这总是导致一个较高的总成本和较高的平均出价。
在每次迭代时,系统检查当前组合是否比迄今为止看到的最佳组合更好。如果是这种情况的话,则用当前组合代替最好组合。
如果当前组合具有大于计划预算B的总成本,或者如果当前组合的平均出价大于最大平均CPC C,或者如果没有更多的组合。则退出循环。过程返回发现的最好组合。
图21是显示了过程generate guided flight的一个实施例的流程图。该过程从方框2100开始。在方框2102处,调用过程initializecalculation parameters。以上结合图15说明了这个过程的一个实施例。
在方框2104,开始循环操作。在方框2106处,4个变量clicks/bid/cost/profit的值被设置为等于由过程current combination返回的值。以上结合图17说明了这个过程的一个实施例。在方框2108,确定当前出价是否大于最大CPC C,或者成本是否大于变量remaining-budget,或者过程max-index?是否返回逻辑值真。以上结合图18说明了过程max-index?的一个实施例。如果方框2108中的文本为真,则在方框2110,过程返回变量best-index的值,而且过程在方框2112结束。否则,在方框2114,确定变量best-index是否存储了一个空值,或者由过程better返回的值是否具有一个真值。以上结合图14说明了过程better的一个实施例。如果方框2114中的文本为真,则在方框2116,变量best-index的值被设置为等于变量index的值。在方框2118处,变量best-clicks的值被设置为等于变量clicks的值。在方框2120,变量best-profits的值被设置为等于变量profits的值。如果方框2114中的测试不为真,或者在处理方框2120之后,在方框2112,变量index的值被设置为等于由过程minimum-bid-extend返回的值。下面结合图22说明这个过程的一个实施例。循环过程在方框2124结束,然后控制返回到方框2104。
在下面的伪代码中显示了过程generate guided flight的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Generate Guided Flight(Terms)Initialize Calculation Parameters;Loop Assign clicks/bid/cost/profit=current combination(index); If bid > C or cost > remaining-budget or max-index?(index)   Return best-index; End If; If best-index={} or better(clicks,profit)   Assign best-index=index;   Assign best-clicks=clicks;   Assign best-profit=profit; End If; Assign index=minimum-bid-extend(index);End Loop;End Procedure;]]></pre>在Guided Flight Management和Optimal Flight Management之间的主要区别在于生成下一个“当前组合”。就Optimal FlightManagement来说,我们考虑所有的组合。就Guided Flight Management来说,我们查看当前组合,并且查看如何提高一个项的排名,以便使平均出价增加最小金额。这伴随有过程Minimum Bid Extend。
当前组合由每一项{T1,T2,…,Tk}中的排名和出价定义。每一项Ti具有一个按从最低出价到最高出价排序的&lt;rank,bid&gt;多元组列表。为项Ti选择的多元组由index(Ti)的值定义。如果这为0,则用于Ti的出价为0。如果这为1,则这是第一个排名/出价组合(最低的出价和最坏的排名)。
过程最小出价扩展(procedure Minimum Bid Extend)通过初始化变量“lowest-bid-index”(所探测的导致最低平均出价的组合的索引)和“lowest-bid”(所探测的导致最低平均出价的组合的平均出价)开始。
过程接下来进入一个循环,其中循环中的每次迭代考虑提高项{T1,T2,…,Tk}其中之一的排名。这伴随有把所选项的索引加1。每次迭代计算用于正被考虑的新组合的总点击数、平均出价、总成本、和总利润。如果当前组合的平均出价小于在任一前次迭代时考虑的最好平均出价,则用当前组合代替最好的扩展。
当所有的扩展都已经被考虑了时,退出该过程,并且它返回把平均出价增加最小金额的新组合。
图22是说明了过程minimum bid extend的一个实施例的流程图。该过程从方框2200开始。在方框2202,变量lowest-bid-index被初始化为0,而且在方框2204,变量lowest-bid被初始化为0。
循环操作从方框2206开始,在广告商的所有搜索项上进行循环。在方框2208,确定用于当前搜索项的索引是否小于该搜索项的排名数目。如果不是,则到达循环结束,并且控制继续到方框2222。否则,在方框2210,把变量index的值加1,并且在方框2212,四个变量clicks/bid/cost/profit的值被设置为等于由过程current-combination返回的四个值。以上结合图17说明了这个过程的一个实施例。
在方框2214,确定变量lowest-bid-Index的值是否等于0,或者当前出价是否小于变量lowest-bid的值。如果不是的话,则控制继续进行到方框2220。否则,在方框2216,变量lowest-bid-index被设置为等于变量index的当前值,在方框2218,变量lowest-bid被设置为等于用于当前搜索项的当前出价,并且在方框2220,把用于当前搜索项的索引减1。在方框2222,循环返回控制到方框2206。当循环结束时,在广告商的所有搜索项都已经被处理了之后,在方框2224,变量index被设置为等于变量lowest-bld-index,并且过程在方框2226结束。
在下面的伪代码中显示了过程minimum bid extend的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Minimum Bid Extend(Index)Assign lowest-bid-index=0;Assign lowest-bid=0;Loop over each term Ti in{T1,T2,…,Tk} If index(Ti) < #ranks(Ti)Assign index(Ti)=index(Ti)+1;Assign clicks/bid/cost/profit=current-combination(index);If lowest-bid-index=0 or bid<lowest-bid Assign lowest-bid-index=index; Assign lowest-bid=bid;End If;Assign index(Ti)=index(Ti)-1; End If;End Loop;Assign index=lowest-bid-index;End Procedure;]]></pre>最优化在自动计划管理的第三种变体中,系统进一步通过除去那些不可能是最优解一部分的项{T1,T2,…,Tk}的排名。通过减少排名数目,要考虑的排名组合按指数规律地减少。这大大改善了性能。这些最优化能够应用于Optimal Flight Management和Guided Flight Management。
在为每一项丢弃的排名数目中有权衡。如果更多的排名被丢弃了,则性能中的改善按指数规律地更大了,然而,如果太多的排名被丢弃了,则可能丢失最优解。市场操作员能够控制最优化参数以进行最好的权衡。
通过用过程初始化过滤计算参数(procedure Initialize FilteredCalculation Parameters)代替先前定义的过程Initialize CalculationParameters,实现最优化。
在新的过程中有两个改变(以黑体显示)。首先,在初始执行自动计划管理之前,系统估算出价bo,其如果被指定被所有项{T1,T2,…,Tk}将导致花费计划预算B。这个估算的最优出价bo用来选择为每一项要考虑的排名范围。过程Estimate Original Bids实现这个计算。
第二个变化是为所有的项{T1,T2,…,Tk}查找可能排名和出价的结果被过滤以仅仅考虑每一项中的某些排名。这伴随有过程Filler。
图23是说明了过程initialize filtered calculation parameters的一个实施例的流程图。该过程从方框2300开始。在方框2302处,变量best-index被初始化为0。类似地,在方框2304和方框2306,变量best-clicks和best-profit被初始化为0。在方框2306实行测试以确定变量first-execution是否为逻辑值真。如果这样的话,则在方框2310,调用过程estimate original bids。下面将结合图24说明这个过程的一个实施例。在方框2312处,进入一个循环。在方框2314处,在当前项T的索引处的数组变量ranks &amp; bids的值被设置为等于由过程filter返回的值。下面将结合图27说明这个过程的一个实施例。在方框2316处,在当前项T的索引处的数组变量#ranks的值被设置为等于用于当前搜索项的数组值的长度。在方框2318,用于当前搜索项的索引被设置为等于0,而且在方框2320循环结束。控制返回到方框2312,直到所有的搜索项都已经被处理了为止。在处理了所有的搜索项之后,过程在方框2322结束。
在下面的伪代码中显示了过程Initialize filtered calculationparameters的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Initialize Filtered Calculation Parameters()Assign bast-index={};Assign bast-clicks=0;Assign bast-profit=0;If first-execution=true Estimate original bids;End If;For each term T,in {T1,T2,…,Tk}   Assign ranks &amp; bids(Ti)=filter(Ti,possible-ranks&amp;bids(Ti));   Assign #ranks(Ti)=length(ranks&amp;bids(Ti));   Assign index(Ti)=0;End For;End Procedure;]]></pre>
过程估算原始出价(procedure Estimate Original Bids)计算出价bo,其如果被指定给所有的项{T1,T2,…,Tk}将导致花费计划预算B。变量“best-under”是已经发现的bo的最大值,导致花费小于预算B。类似地,变量“best-over”是已经发现的bo的最小值,导致花费超过预算B。最初,best-under为0,best-over为处于用于任一项{T1,T2,…,Tk}的排名1处的最高出价,而且bo的初始估算值是“best-over”除以2。
过程循环进行多次迭代,其中每次迭代调整当前出价(bo)以便使总成本接近于计划预算B。如果“bid”的当前值导致花费大约是预算B,则循环结束。近似的范围由变量δ定义,它必须介于0和1之间。如果δ为0,则总成本必须精确地为B,而且如果δ为1,则任何小于2×B的总成本是可以接受的。
如果就具有出价“bid”的所有项{T1,T2,…,Tk}来说总成本大于预算((1+δ)×B&lt;cost),则“bid”被调整为是在它的当前值和“best-under”之间的一半。此外,如果当前的“bid”小于“best-over”,则用“bid”代替“best-over”。
类似地,如果就具有出价“bid”的所有项{T1,T2,…,Tk}来说总成本小于预算(((1+δ)×B&gt;cost),则“bid”被调整为是在它的当前值和“best-over”之间的一半。此外,如果当前的“bid”大于“best-under”,则用“bid”代替“best-under”。
循环中的每次迭代使估算的“bid”更接近于导致花费预算B的平均最优出价bo。最终,“bid”的值将足够接近了,然后过程将结束,并且把这个“bid”分配给original-bid-estimate。
图24是说明了过程estimate original bids的一个实施例的流程图。该过程从方框2400开始。在方框2402处,变量best-under被初始化为0。在方框2404,变量best-over被初始化为将要位于用于广告商的任一搜索项的排名1处的最大出价。在方框2406,变量bid被初始化为是变量best-over的值的一半。
在方框2408以下是循环。在方框2410,变量cost被设置为等于由过程cost with bid返回的结果。下面将结合图25说明这个过程的一个实施例。在方框2412,执行测试以确定预算和变量delta与1的和的乘积是否大于或等于变量cost的值,以及变量cost是否大于或等于预算B和1减去变量delta的值之间的乘积。如果这样的话,在方框2414,变量original-bid-estimate被设置为等于变量bid的当前值,并且过程在方框2416结束。否则,在方框2418,确定预算B和1加上变量delta的乘积是否小于变量cost的值。
在方框2420,确定变量bid的值是否小于变量best-over。如果这样的话,则在方框2422处,变量best-over的值被设置为等于变量bid的值。在方框2424,变量bid的值被设置为等于变量bid与变量best-under的和除以2的基数。然后控制继续到方框2434。否则,在方框2426,确定预算B和1减去变量delta的乘积是否大于变量cost。如果这样的话,则在方框2428,确定变量bid是否大于变量best-under。如果这样的话,则在方框2430处,变量best-unders被设置为等于变量bid的当前值,而且在方框2432处,变量bid被设置为等于变量bid与best-over的和除以2的基数。然后控制继续到方框2434,循环结束。
在下面依据伪代码显示了过程Estimate Original Bids的第二实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Estimate Original Bids()Assign best-under=0;Assign best-over=max(bid(T1,1),bid(T2,1),...,bid(Tk,1));Assign bid=best-over/2;Loop   Assign cost=cost with bid(bid);   If(1+δ)×B >=cost >=(1-δ)×B   Exit Loop;   Else If(1+δ)×B < cost   If bid < best-over   Assignbest-over=bid;   End If;   Assign bid=floor((bid+best-under)/2);   Else If(1-δ)×B>cost  If bid>best-under   Assign best-under=bid;  End If;  Assign bid=floor((bid+best-over)/2);   End If;End Loop;Assign original-bid-estimate=bid;End Procedure;]]></pre>如果所有的项{T1,T2,…,Tk}具有出价“bid”,则过程成本与出价(procedure Cost With Bid)计算给广告商的成本。通过把每一项的成本与这个出价求和实现这个过程。
图25是说明了过程Cost With Bid的一个实施例的流程图。该过程从方框2500开始。在方框2502处,变量total-cost被初始化为0。循环从方框2504开始。在方框2506,把变量total-cost增加由过程TermCost返回的结果。下面结合图26说明过程Term Cost的一个实施例。在方框2503到达循环的结束,并且重复循环直到所有的与广告商有关的这种项都已经被处理了为止。在方框2510,过程返回变量total-cost的值。该过程在方框2512处结束。
下面结合伪代码说明过程Cost With Bid的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Cost with Bid(bid)Assign total-cost=0;For each term Ti in {T1,T2,…,Tk}   Assign total-cost=total-cost+term cost(Ti,bid);End For;Return total-cost;End Procedure;]]></pre>过程项成本(procedure Term Cost)把在{T1,T2,…,Tk}中的项T和出价作为输入。它计算给广告商的以“bid”为Ti出价的成本。过程首先查找一个广告商能够处于的所有可能排名,以及用于这些排名的最低出价。它接下来在所有可能的排名/出价上进行循环,并且选择具有最接近于输入“bid”的出价的排名/出价。用于这个排名的成本是该出价乘以在用于这个排名的市场中的历史点击。
图26是说明了过程Term Cost的一个实施例的流程图。该过程从方框2600开始。初始化几个变量,包含在方框2602,把变量closest-bid(最接近的出价)初始化为零值,在方框2604,把变量closest-rank(最接近的排名)初始化为零值,在方框2606,把变量closest-distance(最接近的距离)初始化为该值减一,以及把变量ranks/bids(排名/出价)设置为等于由过程possible-ranks &amp; blds返回的值。以上结合图16说明了过程Possible-Rank &amp; Bids的一个实施例。
在方框2610,使用循环变量x开始一个循环操作,其中循环变量x具有介于1和变量ranks/bids的长度之间的值。在方框2612,变量current-bid的值被设置为等于在ranks/bids列表中用于条目X的出价。在方框2614,变量distance(距离)值被设置为等于在变量bid和变量current-bid之间的差的绝对值。在方框2616,执行测试以确定变量closest-distance的值是否等于-1、或者变量distance的值是否小于变量closest-distance的值。如果条件皆不为真,则控制继续到方框2622,循环结束。如果方框2616中的任何一个条件为真,则在方框2618,变量closest-bid被指定一个等于current-bid的值。在方框2620,变量closest-rank被设置为等于数组rank/bids中的第X个条目的排名。在方框2622,循环控制返回到方框2610。
在推出循环之后,在方框2624,变量closest-clicks被设置为等于由过程Historical-Clicks返回的值。在方框2626,cost被设置为等于变量closest-clicks和closest-bid的乘积。在方框2628,由该过程返回变量cost的值。该过程在方框2630结束。
用以下的伪代码说明了过程Term Cost的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Term Cost(Ti,bid)Assign closest-bid=0;Assign closest-rank=0;Assign closest-distance=-1;Assign ranks/bids=possible-ranks&amp;bids(Ti);Loop x from 1 to length(ranks/bids)   Assign current-bid=bid-of(ranks/bids,x);   Assign distance=abs(bid-current-bid);   If closest-distance=-1 or distance<closest-distance  Assign closest-bid=current-bid;  Assign closest-rank=rank-of(rank/bids,x);   End If;End Loop;Assign closest-clicks=historical-clicks(Ti,closest-rank,L);Assign cost=closest-clicks * closest-bid;Return cost;End Procedure;]]></pre>过程过滤器(procedure Fitter)把项Ti和一个&lt;rank,bid&gt;多元组列表作为输入。该过程过滤某些多元组,因而从考虑中除去具有除去的Ti的多元组中的排名。这个过滤通过由广告商和/或市场操作员提供的信息控制。
有三种类型的过滤,而且能够以任意组合应用这些中的一个或多个。广告商能够指定如果排名具有低于某一阈值的点击则他希望除去每一项中的所有排名。最小化点击的广告商限制条件用min-clicks(Ti)的值表示。
广告商能够指定要考虑的排名范围——从最好的排名到最坏的排名(首末包括在内)。用于Ti的最坏排名的广告商限制条件由worst-rank(Ti)定义,而用于Ti的最好排名的广告商限制条件由best-rank(Ti)定义。
自动过滤是第三种类型的过滤,其中市场操作员能够使用前一次执行自动计划管理的结果,以除去那些不接近于用于每一项{T1,T2,…,Tk}的前一次执行的排名的排名。
图27是说明了过程Filter的一个实施例的流程图。该过程从方框2700开始。在方框2702,确定用于当前搜索项的变量min-clicks的值是否不等于0。如果是这样的话,则在方框2704,数组ranks/bids的值被设置为等于由过程Fitter Min Clicks返回的结果。以下结合图28说明这个过程的一个实施例。在方框2706,确定用于搜索项T的best-rank是否大于1或者用于该搜索项的worst-rank是否为不同于零的值。如果是这样的话,则在方框2708,数组ranks/bids的内容被设置为等于由过程Fitter Ranks返回的结果。下面结合图29说明这个过程的一个实施例。在方框2710,确定由过程Auto-Filter-Ranks返回的结果是否为逻辑值真。下面结合图32说明这个过程的一个实施例。如果方框2710中的测试为真,则在方框2712,数组ranks/bids的值被设置为等于由过程Auto-filter返回的结果。下面结合图30说明这个过程的一个实施例。在方框2714,该过程返回数组ranks/bids的值。该过程在方框2716结束。
结合以下的伪代码说明过程Filter的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Filter(Ti,ranks/bids)If min-clicks(Ti)<>0 Assign ranks/bids=filter min clicks(Ti,ranks/bids);End If;If best-rank(Ti)>1 or worst-rank(Ti)<>0   Assign ranks/bids=filter ranks(Ti,ranks/bids);End If;If auto-filter-ranks=true;   Assign ranks/bids=auto-filter(Ti,ranks/bids);End If;Return ranks/bids;End Procedure;]]></pre>过程过滤器最小点击(procedure Filter Min Clicks)把项Ti和一个&lt;rank,bid&gt;多元组列表作为输入。它除去了其排名具有比由广告商指定的、用于项Ti的点击阈值少的点击的所有多元组。
图28是说明了过程Filter Min Clicks的一个实施例的流程图。该过程从方框2800开始。在方框2802,变量min被设置为等于由过程Min-Clicks返回的值。循环操作从方框2804开始,在从1值到等于数组ranks/bids的长度的一个值变化的变量x上进行循环。在方框2806,变量rank被设置为等于数组rank/bids中的条目x的排名。在方框2802,变量clicks被设置为等于由过程Historical-Clicks返回的值。在方框2810,执行测试以确定变量clicks的值是否小于变量min。如果是这样的话,则在方框2812,从数组ranks/bids中删掉该数组中的第X个条目。在方框2814,循环控制返回到方框2804。在已经完全处理了该循环之后,在方框2816,由该过程返回数组ranks/bids的值。该过程在方框2818结束。
依据显示如下的伪代码说明过程Filter-Min-Clicks的一替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Filter Min Clicks(Ti,ranks/bids)Assign min=min-clicks(Ti);Loop x from 1 to length(ranks/bids)   Assign rank=rank-of(ranks/bids,x);   Assign clicks=historical-clicks(Ti,,rank,L);   If clicks<min  delete ranks/bids(x)from ranks/bids;   End If;End Loop;Return ranks/bids;End Procedure;]]></pre>过程过滤器排名(procedure Filter Ranks)把项Ti和一个&lt;rank,bid&gt;多元组列表作为输入。它除去了其排名大于由广告商指定的worst-rank的、或者其排名小于由广告商指定的best-rank的所有多元组。
图29是说明了过程Filter Ranks的一个实施例的流程图。该过程从方框2900开始。在方框2902,变量best被指定为广告商的任一搜索项的best-rank。在方框2904,变量worst被指定为广告商的任一这种项的worst-rank。循环操作从方框2906开始,在从1值到等于数组ranks/bids的长度的一个值变化的变量x上进行循环。在方框2908,变量rank被设置为等于数组rank/bids中的第X个条目的排名。在方框2930,执行测试以确定变量rank的值是否等于变量best的值、或者变量worst的值是否不等于0以及变量rank是否大于worst的值。如果是这样的话,则在方框2912,从数组ranks/bids中删掉该数组中的第X个条目。在方框2914,控制返回到循环开始处方框2906。在方框2916,该过程返回数组ranks/bids的值。该过程在方框2918结束。
结合以下的伪代码说明过程Filter Ranks的第二个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Filter Ranks(Ti,ranks/bids)Assign best=best-rank(Ti);Assign worst=worst-rank(Ti);Loop x from 1 to length(ranks/bids)   Assign rank=rank-of(ranks/bids,x);   If rank<best or(worst<>0 and rank> worst)  delete ranks/bids(x) from ranks/bids;   End If;End Loop;Return ranks/bids;End Procedure;]]></pre>过程自动过滤器(procedure Auto Filter)把项Ti和一个&lt;rank,bid&gt;多元组列表作为输入。它除去了其排名在其中很可能存在最优解的排名范围之外的所有多元组。过滤由能够由市场操作员调整的参数进行控制。
有两种类型的自动过滤。第一种根据它们的出价过滤排名——删除其出价远离前一次执行自动计划管理的出价的排名。如果这恰好是第一次执行自动计划管理,则该系统使用由过程Estimate Original Bids计算的平均最优出价bo的估算。第二种过滤那些远离前一次执行自动计划管理的排名的排名。如果这是第一次执行自动计划管理,则不执行这个第二过滤步骤。
图30是说明了过程Auto Filter的一个实施例的流程图。该过程从方框3000开始。在方框3002,数组ranks/bids被设置为等于由过程Auto Filter Using Bids返回的结果。下面结合图31说明过程AutoFilter Using Bids的一个实施例。在方框3004,确定变量first-execution是否具有逻辑值假。如果是这样的话,则在方框3006,数组ranks/bids被设置为等于由过程Auto Filter Using Ranks返回的值。下面结合图32说明过程Auto Filter Using Ranks的一个实施例。在方框3008,该过程返回数组ranks/bids的值。该过程在方框3010结束。
结合以下的伪代码说明过程Auto Filter的第二个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Auto Filter(Ti,ranks/bids)Assign ranks/bids=auto filter using bids(Ti,ranks/bids);If first-execution=false Assign ranks/bids=auto filter using ranks(Ti,ranks/bids);End If;Return ranks/bids;End Procedure;]]></pre>过程使用出价的自动过滤器(procedure Auto Filter Using Bids)把项Ti和一个&lt;rank,bids&gt;多元组列表作为输入。它除去了其出价不接近于Ti的最优出价的所有多元组,其中Ti的最优出价在前一次执行自动计划管理中计算。如果这恰好是第一次执行自动计划管理,则该系统使用由过程Estimate Original Bids计算的平均最优出价bo的估算。
过程在&lt;rank,bid&gt;多元组列表上循环,并且检查多元组的出价是否“接近于”在前一次执行自动计划管理中计算的最优出价。如果当前多元组的出价不接近,则除去该多元组。由介于0和1之间的参数β控制接近性。如果β为0,则如果当前多元组的出价不精确地等于在前一次执行自动计划管理中所计算的用于Ti的最优出价,就除去该多元组。如果β为1,则如果当前多元组的出价是前一次执行的最优出价的两倍以上,就除去该多元组。
图31是说明了过程Auto Filter Using Bills的一个实施例的流程图。该过程从方框3100开始。在方框3102,确定逻辑变量first-execution是否具有逻辑值真。如果这样的话,则在方框3104,变量last-bid被设置为等于变量original-bid-estimate的值。否则,在方框3106,变量last-bid被设置为等于用于当前搜索项的数组price-protected-bid的值。
在方框3108,循环操作开始,在从1值到等于数组ranks/bids的长度的一个值变化的变量x上进行循环。在方框3110,变量bid被设置为等于数组bid-of中的第X个条目的出价值。在方框3112,确定bid值是否小于1-beta和变量last-bid的乘积,或者变量bid的值是否大于1+beta乘以变量last-bid的值。如果是这样的话,则在方框3114,从数组ranks/bids中删掉第X个条目。否则,在方框3116,控制返回到循环开始处方框3108。在在循环中处理所有值之后,在方框3118,返回数组ranks/bids。该过程在方框3120处结束。
下面结合下列伪代码说明过程Auto Filter Using Bids的一个替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Auto Filter Using Bids(Ti,ranks/bids)If fist-execution=true   Assign last-bid=original-bid-estimate;Else   Assign last-bid=price-protected-bid(Ti);End If;Loop x from 1 to length(ranks/bids) Assign bid=bid-of(ranks/bids,x); If bid<(1-β)*last-bid or bid>(1+β)*last-bid   delete ranks/bids(x)from ranks/bids; End If;End Loop;Return ranks/bids;End Procedure;]]></pre>过程使用排名的自动过滤器(procedure Auto Filter Using Ranks)使用项Ti和一组&lt;rank,bid&gt;多元组作为输入。它删除了排名不接近于在自动计划管理的先前执行中计算的Ti最佳排名的所有多元组。
该过程在&lt;rank,bid&gt;多元组的列表上循环并且检查该多元组的排名是否“接近”于在自动计划管理的先前执行中计算的最佳排名。如果当前多元组的排名和在自动计划管理的先前执行中、为Ti计算的最佳排名的距离大于α,则删除它。
图32是一个说明过程Auto Filter Using Ranks的流程图。该过程从方框3200开始。在方框3202处,变量last-rank被分配了在数组last/rank中、对应于当前检索项的条目的值。在方框3204处,在从值1到等于数组ranks/bids长度的变量x上进行循环,来开始一次循环操作。在方框3206处,变量rank被给与了数组ranks/bids中的第X个条目的排名值。在方框3208处,确定变量rank是否具有一个比变量last-rank减去d要小的值或者变量rank是否具有一个大于last-rank和d总和的值。如果是这样的话,在方框3210处,从数组ranks/bids中删除第X个条目。否则,在方框3212处,控制返回到在方框3204的循环开始处。在方框3214处,在所有条目都已经在循环中处理过了之后,该过程返回数组ranks/bids的值。该过程在方框3216处结束。
结合以下伪码,在下面显示了过程Auto Filter Using Ranks的替换实施例。
<pre listing-type="program-listing"><![CDATA[Procedure Auto Filter Using Ranks(Ti,ranks/bids)Assign last-rank=last-rank(Ti);Loop x from 1 to length(ranks/bids) Assign rank=rank-of(ranks/bids,x); If rank<(last-rank-α)or rank>(last-rank+α)   delete ranks/bids(x) from ranks/bids; End If;End Loop;Return ranks/bids;End Procedure;]]></pre>从上文中能够看出,本实施例提供了一种用于利用一在线市场系统为广告商提供自动化计划管理系统的方法和装置。系统把广告发布预算、广告发布计划持续时间、可适用的广告商的搜索项、每次动作的最大平均成本、转化率、和广告商的用于每一项的每次动作平均利润接收作为输入参数。该系统自动地为每个列表设置每次点击或者其它动作的成本,以便最大化广告商的利润,而且在计划持续时间上完全地花费预算。定期地,该系统自动地重新计算列表的每次动作成本。这个系统因此增强了广告商利用市场系统经历的的方便性和效率。
虽然已经显示和描述了本发明的一个特定实施例,但是可以进行修改。例如,该系统可以被应用于任何使用不同于每次点击成本的支付方案的在线市场系统,该支付方案可以是诸如每次印象成本,其中当向用户显示广告商的搜索列表时由广告商给予经济价值,或者为包含在内付费,其中由刚好被包含在搜索数据库中的广告商给予经济价值。因此,意图使附加的权利要求涵盖这样的改变和修改,它表示了本发明真实的精神和范围。
权利要求
1.一种用于在一个或者多个广告商和一个或多个搜索者之间的在线市场中管理广告发布计划的方法,该方法包含从一个广告商接收广告发布计划参数;不时地审核在付费安排市场中指定的广告商搜索项的出价金额;以及调整指定广告商搜索项的出价金额以实现指定广告商的目标。
2.如权利要求1所述的方法,其特征在于接收广告发布计划参数包含接收一个或多个广告商搜索项;接收计划预算;以及接收计划时间。
3.如权利要求2所述的方法,进一步包含接收下列中的一个或多个在所接收的一个或多个广告商搜索项上的每次点击最大平均成本;广告商的转化率;以及广告商的每次动作的平均利润。
4.如权利要求1所述的方法,其特征在于调整指定广告商搜索项的出价金额以实现指定广告商的目标包含最大化与广告商网站的搜索者联系。
5.如权利要求1所述的方法,其特征在于调整指定广告商搜索项的出价金额以实现指定广告商的目标包含最大化对广告商网站的搜索者点击。
6.如权利要求5所述的方法,其特征在于调整出价金额包含根据每次点击的最大成本,最大化对广告商网站的搜索者点击。
7.如权利要求1所述的方法,其特征在于调整包含改变出价金额以最大化广告商利润。
8.如权利要求7所述的方法,进一步包含根据每次点击的最大成本改变出价金额。
9.如权利要求7所述的方法,进一步包含根据对广告商的一个或多个网站的多次搜索者点击,确定广告商利润。
10.如权利要求7所述的方法,进一步包含根据转化率确定广告商利润。
11.如权利要求10所述的方法,进一步包含确定具有独立转化率的多个搜索项的搜索项转化率。
12.如权利要求10所述的方法,进一步包含在两个或更多排名处确定多个搜索项的搜索项转化率,在每个排名处的搜索项具有独立的转化率。
13.如权利要求1所述的方法,其特征在于审核出价金额包含审核一个或多个的所有出价组合。
14.如权利要求1所述的方法,其特征在于审核出价金额包含审核某些出价组合。
15.如权利要求14所述的方法,进一步包含确定不大可能在一个最优解法中的排名;以及忽略所确定的排名。
16.如权利要求15所述的方法,进一步包含忽略低于排名阈值的排名。
17.如权利要求15所述的方法,进一步包含忽略具有低于点击阈值的点击的排名。
18.如权利要求15所述的方法,进一步包含忽略其距一最优解的一定距离大于在一最优解和上一个解之间的距离的排名。
19.如权利要求15所述的方法,进一步包含忽略具有其改变量在由上一个解确定的一个可接受范围之外的出价金额的排名。
20.如权利要求1所述的方法,进一步包含定期地依据计划参数重新计算出价金额。
21.如权利要求1所述的方法,进一步包含接收对于一个或多个搜索项的广告商指定最大出价金额;依据最大出价金额调整对于一个或多个搜索项的出价金额。
22.如权利要求21所述的方法,进一步包含把所确定的出价金额减少到刚好超过下一个最低出价金额的水平。
23.如权利要求1所述的方法,进一步包含从搜索者接收搜索查询;在一数据库中搜索与搜索查询相匹配的搜索项,该数据库存储了一个或多个广告商的搜索项和相关的出价金额;从与搜索查询相匹配的搜索项中提供搜索结果;当由一搜索者点击了所提供的一个搜索项时,从广告商传输与所提供搜索项有关的经济价值。
24.一个数据库搜索系统,包含一个搜索项数据库,每个搜索项与应由多个广告商中的一个广告商支付的出价金额有关;一个搜索引擎,对来自搜索者的搜索查询做出响应,对数据库进行搜索;以及一个计划管理代理,对广告商指定的参数做出响应,对搜索列表的出价金额进行调整以管理在一段时间内的开支。
25.如权利要求24所述的数据库搜索系统,其特征在于计划管理代理被配置为接收与广告商的一个或多个搜索项、预算、和该段时间有关的信息。
26.如权利要求25所述的数据库搜索系统,其特征在于计划管理代理被配置为接收与对于一个或多个搜索项的每次点击最大平均成本、转化率和每次动作的平均利润中的一个或多个有关的信息。
27.如权利要求25所述的数据库搜索系统,其特征在于计划管理代理被配置为花费在该段时间内预算。
28.如权利要求25所述的数据库搜索系统,其特征在于计划管理代理被配置为最大化对广告商网站的点击次数。
29.如权利要求25所述的数据库搜索系统,其特征在于计划管理代理被配置为最大化在该段时间间内广告商的广告利润。
30.如权利要求29所述的数据库搜索系统,其特征在于计划管理代理被配置为根据每次点击的最高价格最大化广告商利润。
31.如权利要求29所述的数据库搜索系统,其特征在于计划管理代理被配置为通过根据在广告商网站处的多次搜索者动作确定利润来最大化广告商利润。
32.如权利要求29所述的数据库搜索系统,其特征在于计划管理代理被配置为通过根据具有多个转化率的多个搜索项确定利润来最大化广告商利润。
33.如权利要求29所述的数据库搜索系统,其特征在于计划管理代理被配置为根据在不同排名处具有不同转化率的多个搜索项确定利润。
34.如权利要求25所述的数据库搜索系统,其特征在于计划管理代理被配置为分析对一个或多个搜索项的所有可能的出价组合,并选择一个向广告商提供最高利润的组合。
35.如权利要求25所述的数据库搜索系统,其特征在于计划管理代理被配置为分析对一个或多个搜索项的仅为可能的出价组合,并从可能组合中选择一个向广告商提供最高利润的组合。
36.如权利要求35所述的数据库搜索系统,其特征在于计划管理代理被配置为确定不大可能在一个最优解中的搜索项排名。
37.如权利要求36所述的数据库搜索系统,其特征在于计划管理代理被配置为排除具有小于排名阈值的排名的搜索项。
38.如权利要求36所述的数据库搜索系统,其特征在于计划管理代理被配置为排除已经接收了比点击阈值小的多次点击的搜索项。
39.如权利要求36所述的数据库搜索系统,其特征在于计划管理代理被配置为排除在其距解的距离大于距前一个解的距离的排名处的搜索项。
40.如权利要求36所述的数据库搜索系统,其特征在于计划管理代理被配置为排除具有一个不同于前一出价金额一预定金额的出价金额的搜索项。
41.如权利要求24所述的数据库搜索系统,其特征在于计划管理代理被配置为不时地重新计算搜索列表的出价金额。
42.利用在线市场系统管理广告商的广告发布计划的计算机程序代码。
43.如权利要求42所述的计算机程序代码,进一步包含用于不时地检查在在线市场系统中的状态、以及调整广告商搜索列表的出价以确保满足广告商指定目标的代码。
44.如权利要求42所述的计算机程序代码,进一步包含用于依据广告商指定的计划管理标准更新广告商的出价金额的代码,出价金额与可由搜索者搜索的一数据库中的广告商搜索项有关,出价金额表示当搜索者选择广告商的搜索项时应由广告商支付的经济价值。
全文摘要
一个数据库搜索系统,包含一个搜索项数据库,其中每个搜索项与应由多个广告商中的一个广告商支付的出价金额有关;以及一个搜索引擎,对来自搜索者的搜索查询做出响应,对该数据库进行搜索。一个计划管理代理,对广告商指定的参数做出响应,对搜索列表的出价金额进行调整以管理在一段时间内的开支。
文档编号G06Q30/00GK1462936SQ0310410
公开日2003年12月24日 申请日期2003年2月8日 优先权日2002年2月8日
发明者纳林德·辛格, 达雷恩·戴维斯 申请人:奥维丘尔服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1