2010-02-22 35 views
7

我已经构建了一个使用Java EE平台的Web应用程序,该平台销售了我的一个软件。如何实现加盟链接到我的web应用程序?

现在我想给我的网站营销工作,以各种电子营销公司。但由于我不得不向他们提供佣金,我应该知道是谁发送了流量。

我认为一个解决上述问题是:

让每个电子邮件营销公司一个独立的网址,并给他们相应的网址,所有这些网址重定向到一个Servlet。之后,数一数。的访问者在一个特定的URL(电子营销公司的网址)上统计不。该电子营销公司转介的访问者。

Google和其他各种使用类似的技术区别于其他。

Q1。他们都使用这种方法吗? Q2302。有没有其他的方法可以以更好的方式完成?

您也可以劝告一些其他的东西太...

在此先感谢

+0

指向相同内容的多个网址可能会损害您的谷歌排名,因为这看起来像是一个链接农场。 – Dominik 2010-03-05 19:52:12

回答

1

是的,我同意@krassib和@TomR - 使用queryString参数,然后你可以编写一个servlet过滤器来检查特定的参数并增加该会员的计数。使用servlet过滤器还可以为您追踪每个分支机构单个链接计数的额外好处。

你做的东西像下面这样:

import java.io.IOException; 
import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 

public class AffiliateTrackingFilter implements Filter { 
    private AffiliateTrackingService affiliateTrackingService = null; 

    @Override 
    public void destroy() { 
    } 

    @Override 
    public void doFilter(ServletRequest rq, ServletResponse rs, 
      FilterChain chain) throws IOException, ServletException { 
     String affililateId = rq.getParameter("affiliateId"); 
     affiliateTrackingService.incrementAffiliateHit(affililateId); 
     chain.doFilter(); 
    } 

    @Override 
    public void init(FilterConfig fc) throws ServletException { 
     affiliateTrackingService = new AffiliateTrackingService(); 
    } 
} 

然后加入这样的事情你的web.xml

<filter> 
    <filter-name>AffiliateTrackingFilter</filter-name> 
    <filter-class>com.example.AffiliateTrackingFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>AffiliateTrackingFilter</filter-name> 
    <servlet-name>MyMainServlet</servlet-name> 
</filter-mapping> 

而且对所有的Servlet过滤器映射。

+0

@simonlord来自搜索引擎的一些请求将不包含会员ID。那么解决方案是什么? – 2010-03-05 16:17:31

+0

@Yatendra:来自搜索引擎的请求不应与关联企业关联,因为关联企业不负责为您的网站吸引流量。也就是说,他们不需要包含会员ID,因为他们不是来自会员。 – 2010-03-05 17:03:27

+0

@Software Monkey ..我知道这就是为什么我问上述问题的原因......其实你解释错了或可能是我无法解释清楚......现在我已经得到了我的答案从别人..但感谢您花时间回答 – 2010-03-05 18:42:12

0

差不多类似于以前的答案 - 你可以给每个会员网站的唯一密钥(在URL )他们会提交。您的服务器应用程序将(解密并)将关键字与关联企业网站列表进行匹配并计算关键字的来源。

1

据我所知,有3种可能性:

  1. 正如你所说,唯一的网址每个公司,
  2. 使用,需要通过访问用户输入了“优惠券代码”。有点烦人的访客,但我见过这样的事情。
  3. 最后,如果你提到的公司有一个网站,并把链接到你的网站从那里只工作:通过获取引荐网址

最好的,在我看来,是第一个选项。这可能是为什么这是最广泛使用/知道。

你可能会想实现cookie来“记住”访问者来自哪个公司的到来,所以当--who还没有决定访客购买的第一visit--回报什么,买什么东西,你会知道哪家公司向您介绍您的网站。

0

为什么不使用已经存在的东西?我正在谈论HTTP协议及其头部字段之一:Referrer(通常传递给环境变量HTTP_REFERER或HTTP_REFERRER中的代码)。尽管它不是100%防弹(但是再次,什么是100%防弹?)我认为在你的情况下这可能就足够了。我假设你的一个与一个分支机构有关的客户是从他们的一个网站获得的?如果是这样,您很容易区分来自不同电子营销公司的客户,因为他们每个人都应拥有自己的域名。

了解更多关于Referrer field。请记住,虽然引用者欺骗或隐藏是可能的,但非常不可能(经过我的服务器日志文件,估计95%的访问者发送引荐者字段)。

问候。

+0

我不能使用Referrer字段,因为我不打算限制电子营销公司拥有自己的网站(尽管在大多数情况下他们都有)。这样,他们也可以把我网站的横幅广告放到其他网站上。 – 2010-03-05 21:12:25

1

好的,这是另一个。您可以使用锚定方法。让我解释一下:

想象一下,http://myappz.com/fooshop_cs是销售产品的网址,这是你分发给你的分支机构,但每一个都有一个小的变化。您只需通过劫持fragment identifier(即http://myappz.com/fooshop_cs#em001)向URL添加唯一ID。

一旦用户访问了一个链接到您的网站,该网站使用了唯一的ID,您可以使用Javascript检查ID是否存在(location.href.search(/#em\d*/))。一旦你找到了一个ID,你只需触发一个AJAX调用就可以将该联盟加入一个陷阱(我可能会推荐jQuery框架来这样做)。

这种方法的好处是,搜索引擎不关心片段标识符,并且你将能够从单个页面出售你的产品。您的用户不会关心,因为锚点对它们绝对没有影响(除非您在页面中设置锚定标记)。

再见

1

关于aefxx的有关片段标识符的答案,我认为这种做法的好处是保持SEO排名。如果是这样,您仍然可以使用querystrings来管理这个问题,但您必须将它们设置为在Google网站站长工具中忽略。我认为Bing和雅虎可能有类似的机制。这样,您仍然可以根据查询字符串进行跟踪,实际上,如果您愿意,也可以在没有自定义的情况下在Google Analytics(不跟踪片段标识符)中跟踪它。

相关问题