很多商家团队经常会需要通过微信推广一些线下举办的活动或者产品的广告网页。因为现阶段,微信推广是传播信息速度最快的方法,见的最多的就是在海报上贴上微信二维码,让看到的人都能立刻了解到自己的产品,但是由于微信官方要维持一个绿色的环境,因此对这类的推广链接有着非常苛刻的审查,违规的我就不多说了,没有违反微信规则的,都经常会被腾讯封杀了。
这个问题一直让广大群众头疼,因为微信推广的效率确实很理想,用户量的裂变也很快,但当投入了大批人力和物力时候,微信却不声不响地把域名给封了,导致了之前做的所有推广工作都白搭了。
我身边就有这样的一个例子,我们兄弟团队之前花大人力和财力去开发了一款新产品,花了很多精力做了几套精美的产品宣传页,本想着去大力推广,却屡屡被微信拦截域名,最终的导致所有的推广工作都暂停了,产品写的再好,无法推广出去那就等于是做了无用功。后来他们的技术去百度、去各大博客论坛找解决方案,皇天不负有心人他们最终找到一个比较靠谱的合作方366tool,后来我们团队在推广的时候就借鉴了,确实还不错,至少我们发出去的广告宣传链接一个多月了没被拦截过。
于是我就让技术总监去研究他们的防封原理,特此写这篇文章把我们研究的一些防封心得和经验分享给大家。
首先:你需要有一个域名检测系统,实时检测域名访问状态,推荐 r8date 免费测试接口 ,接口检测速度快,体现效果很好。
然后:你需要一个给域名加防护,推荐366tool 测试接口,我们团队就是用的他们的防封,效果还不错吧,主要是服务好,随时帮你处理问题,不像有些平台收了钱就放养了。
最后想说的一点是:以上两个平台的使用前提是你的域名没有被封,如果被封是需要更换一条正常的域名的。那么域名被封了又不想换要怎么办?用跳转api接口处理即可,小编推荐几个比较稳定的免费测试接口:
防封的原理大致有以下几点:
1、检测微信域名并将域名切换
首先你要有一个微信域名检测接口,配置好你的接口请求程序,准备2套域名A和B。我们分享出去的域名是A,但点开后跳到B,前提是要检测一下B有没有被封,这里我们的 B一般需要准备几十甚至上百个,利用域名检测接口可以轻松实现被封自动切换。
2、多级矩阵加密跳转
这里需要注意的是,落地页的域名尽可能长一点,尽量将最后.html做成动态的,这种方式还是会要用到第一种检测+切换的接口,而且这种防封效果更好、稳定性会更高。分享一段代码供大家参考
$url = "http://www.366tool.com"; $params = array( 'appkey' =>'appkey',//您申请的APPKEY 'path' =>'/home',//需要切换的路由(非必传) ); $paramstring = http_build_query($params); $content = Curl($url, $paramstring); $result = json_decode($content, true); if($result) { var_dump($result); }else { //请求异常 } /** * 请求接口返回内容 * @param string $url [请求的URL地址] * @param string $params [请求的参数] * @param int $ipost [是否采用POST形式] * @return string */ function Curl($url, $params = false, $ispost = 0) { $httpInfo = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if ($ispost) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_URL, $url); }else { if ($params) { curl_setopt($ch, CURLOPT_URL, $url.'?'.$params); } else { curl_setopt($ch, CURLOPT_URL, $url); } } $response = curl_exec($ch); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $httpInfo = array_merge($httpInfo, curl_getinfo($ch)); curl_close($ch); return $response; }