【问题标题】:How to implement Affiliate Links to my web application?如何在我的 Web 应用程序中实现附属链接?
【发布时间】:2010-02-22 18:53:14
【问题描述】:

我使用 Java EE 平台构建了一个 Web 应用程序,销售我的一个软件。

现在我想将我的网站营销工作交给各种电子营销公司。但是因为我必须给他们佣金,所以我应该知道是谁发送了流量。

我认为解决上述问题的一种方法是:

为每个电子营销公司创建一个单独的 URL,并为他们提供相应的 URL,并将所有这些 URL 重定向到一个 Servlet。在那之后,数一下。访问特定 URL(电子营销公司的 URL)的访问者数量。该电子营销公司推荐的访问者。

Google 和其他各种使用类似的技术来区分彼此。

第一季度。他们都使用这种方法吗?

第二季度。有没有其他方法可以更好地做到这一点?

你也可以建议一些其他的事情......

提前致谢

【问题讨论】:

  • 多个指向同一内容的网址可能会损害您的谷歌排名,因为这看起来像是一个链接农场。

标签: java servlets jakarta-ee affiliate


【解决方案1】:

您也可以使用查询字符串参数。 (这可能是 krassib 所指的。) 点赞http://yoursite.foo/yourpage.jsp?affiliateid=ABC123

然后让该单个页面从 URL 中解析查询字符串并存储/计算它。

【讨论】:

    【解决方案2】:

    是的,我同意 @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 设置一个过滤器映射。

    【讨论】:

    • @simonlord 一些来自搜索引擎的请求不会包含会员 ID。那么解决方案是什么?
    • @Yatendra:来自搜索引擎的请求不应与附属公司相关联,因为附属公司不负责为您的网站带来流量。也就是说,它们不需要包含会员 ID,因为它们并非来自会员。
    • @Software Monkey .. 我知道这就是我问上述问题的原因...实际上您解释错了,或者我无法解释清楚...现在我得到了答案来自其他人..但感谢您花时间回答
    • @simonlord 当您跟踪 CPC、CPM 等时,上述解决方案非常有效。但是付款跟踪呢?如果用户购买 X 产品,那么只有我想支付佣金。大多数方法都谈到在 cookie 中存储相同的信息。但是我怎么知道有人购买了 X 产品?
    【解决方案3】:

    afaik,有 3 种可能性:

    1. 正如您所提到的,每个公司的唯一网址,
    2. 使用访问用户需要输入的“优惠券代码”。对访客来说有点烦人,但我见过这样的事情。
    3. 最后,仅当您提到的公司有网站并从那里链接到您的网站时才有效:通过捕获引荐来源网址

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

    您可能希望实施 cookie 以“记住”访问者来自哪家公司,因此当访问者(第一次访问时尚未决定购买任何东西)返回并购买东西时,您会知道哪家公司向他们介绍了您的网站。

    【讨论】:

      【解决方案4】:

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

      假设http://myappz.com/fooshop_cs 是销售产品的网址,这是您分发给您的附属公司的网址,但每个网址都略有不同。您只需通过劫持fragment identifier(即http://myappz.com/fooshop_cs#em001)向URL 添加一个唯一ID。

      一旦用户点击您网站的链接,该链接已被收取唯一 ID,您可以使用 Javascript (location.href.search(/#em\d*/)) 检查 ID 是否存在。一旦你找到了一个 ID,你只需触发一个 AJAX 调用就可以让该附属公司更上一层楼(我可能会推荐 jQuery 框架来这样做)。

      这种方法的好处是搜索引擎不关心片段标识符,您将能够从一个页面销售您的产品。您的用户也不会在意,因为锚对他们完全没有影响(除非您在页面中设置锚标记)。

      再见

      【讨论】:

        【解决方案5】:

        关于 aefxx 关于片段标识符的回答,我认为这种方法的好处是保持 SEO 排名。如果是这样,您仍然可以使用查询字符串来管理它,但您必须在 Google 网站管理员工具中将它们设置为忽略。我认为必应和雅虎可能有类似的机制。这样,您仍然可以根据查询字符串进行跟踪,事实上,如果您愿意,您还可以在 Google Analytics(不跟踪片段标识符)中进行跟踪,无需自定义。

        【讨论】:

          【解决方案6】:

          与上一个答案非常相似 - 您可以为每个附属网站提供一个他们将提交的唯一密钥(在 URL 中)。您的服务器应用程序将(解密和)将密钥与附属网站列表进行匹配并计算潜在客户来源。

          【讨论】:

            【解决方案7】:

            为什么不使用已有的东西?我说的是 HTTP 协议及其标头字段之一:Referrer(通常传递给环境变量 HTTP_REFERER 或 HTTP_REFERRER 中的代码)。

            虽然它不是 100% 防弹(但话说回来,什么是 100% 防弹?)我认为这对你的情况来说就足够了。我假设您的与附属公司相关的客户是从他们的网站之一获得的?如果是这样,您将很容易区分来自不同电子营销公司的客户,因为他们每个人都应该有自己的域名。

            阅读有关Referrer field 的更多信息。请记住,虽然引用者欺骗或隐藏是可能的,但非常不可能(查看我的服务器日志文件,估计有 95% 的访问者确实发送了引用者字段)。

            问候。

            【讨论】:

            • 我不能使用推荐人字段,因为我不会限制电子营销公司拥有自己的网站(尽管在大多数情况下他们确实拥有)。这样,他们也可以将我网站的横幅广告投放到其他网站。
            猜你喜欢
            • 2010-09-07
            • 1970-01-01
            • 1970-01-01
            • 2010-10-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-13
            • 2017-09-05
            相关资源
            最近更新 更多