ピンを刺してください!

Pinterestは、Chromeプラグインを介して、自身のプロモーション広告をWebページに配置しています。 Postlightの人々は、Pinterestが何をしているのかを理解するために一日を費やし、次にWebサイトを管理する誰もが広告を隠すために使用できるコードを書きました。そのコードはこの記事の最後にあります。

更新、2015年12月10日: Pinterestから連絡がありました。彼らは正規表現のバグを修正し、プロモーション広告がReadability.comに表示されないようにしています。これにより、問題が完全に解決されます。ありがとう、Pinterest!

誰が今何をしましたか?

12月4日金曜日、Readabilityの主任開発者であるPhilip Forgetが、Readability.comの次のスクリーンショットをグループチャットに投稿しました。 「これは私には卑劣な動きのようです」と彼は書いた。 「でも、偏見があるかもしれません。」

それが卑劣な動きのように見えた理由を理解するには、誰が関与しているかを知る必要があります。

まず、 Pinterest a であり、1億人のユーザーと、 500人以上の従業員。数か月前に、写真だけでなく記事全体を保存できる機能の提供が開始されました。

次に、 Postlight は、モバイルアプリとウェブアプリを構築するニューヨーク市のデジタルエージェンシーです。 ビジネスとして、私たちは生後わずか数か月ですが、チームとして、私たちの多くは何年も一緒に働いてきました。この会社は、私であるPaulFordと私のパートナーであるRichZiadeによって設立されました。

3番目、 読みやすさは、Postlightが管理するデジタルサービスです。シンプルで読みやすいビューにWeb記事を保存することで、Pinterestの「後で読む」製品と競合します。数千万人のユーザーがいて、忙しい週には2、3人の従業員がいます(静かな週には0人の従業員)。 2010年から登場しています。

これを引き起こしている原因を理解するのは難しくありませんでした。ウェブ上で見つけた画像を簡単に「ピン留め」できるはずのPinterestChromeプラグインは、その義務を超え、広告をドロップし始めました。他の人のウェブページ。これは違法ではありません!しかし、それは悪い形式であり、ユーザーを混乱させることにもなります。 Pinterestが競合製品の広告を自分のページに挿入しているとは思いもしませんでした。さらに、広告のようには見えません。親しみやすいリマインダーのようです。私たちは赤を使います、彼らは赤を使います。人々は私たちがPinterestの製品を私たち自身よりも宣伝していると思うかもしれません。

私たちは憤慨していませんでした。ただ好奇心が強いだけです。なぜ、Pinterestは私たちの読書サービスのページの上に読書サービスの広告を掲載したのでしょうか。 私たちは小さいです。彼らは巨大です。それは私たちを妄想的にしました。 New York Times New Yorker などの他のウェブサイトに広告を表示しようとしましたが、サイコロはありませんでした。彼らは私たちを具体的にターゲットにすることができますか?次に、オンラインで調べたところ、他の人が他のサイトの広告に気付いていたことがわかりました。

私たち3人、Richard、Paul、Philipは、Pinterestプラグインのソースコードをダウンロードして、あちこち探し回っていました。フィリップは3人の中で群を抜いて最高のプログラマーなので、やがて彼は状況を解き明かし、何が起きているのかを説明しました。これは素晴らしい土曜日のアクティビティです。

ソース内

Pinterest Chromeプラグインのソースコードは十分に文書化されていませんが、理解するために最善を尽くしました。 任意のウェブページにアクセスするたびにわかる限り、Pinterestのコードはページのアドレスを調べ、12文字のコードに「ハッシュ」し、そのコードを約8,000のリストと照合します。その他のコード。

これは、画像を固定したくない サイトのあいまいなリスト、つまり「オプトアウト」リストであると推測されます。また、サイトがそのリストに ない場合、Pinterestのコードは、現在のWebページで幅300ピクセル以上のすべての画像に「ピン留め」ボタンを追加します。

これまでのところ、とても良いです。これは、プラグインが実行することを想定することです。しかし、PinterestのJavaScriptには、「実験」に関連し、コードネーム「トースト」のように見えるセクションがあります。 「トースト」コードは、アクセスしているページに画像が含まれているかどうかを確認し、「セグメント」に割り当てて、「エクスペリエンス」を提供する必要があるかどうかを判断します。 (これらは、コードで使用されている用語です。「canHazExperience」が「true」に設定されている場合は、エクスペリエンスを損なう可能性があります。

コードを読むと、広告の「エクスペリエンス」は実際よりも頻繁に表示されるようです。プラグインユーザーの30%は、2週間に1回表示されるはずです。しかし、Pinterestのコードにはバグがあります。ページ上のすべての画像を見ると、安全な「 https 」URLと「 htts <」に一致する画像を探します。 / strong>」URL。 「htts」のようなものはありません。それらは「http」を意味し、間違いを犯しました。そのバグの結果として、広告インジェクションは画像を安全にホストするサイトでのみ機能します。 ほとんどのサイトはこれを行わないため、ほとんどのサイトは実際には機能しません。経験。安全な接続を介して画像をホストする数少ないサイトの1つであるため、読みやすさは幸運です。

プラグインのコピーを作成し、バグを修正して実行すると、十分な大きさの画像を含む任意のウェブサイトで確実に広告を見ることができました。それで、私たちの会社が特に標的にされていないことを知り、それは安心でした。むしろ、Pinterestはどこにでも自分自身を注入することを期待しています。

申し訳ありませんが…

ChromeにPinterestプラグインをインストールした場合は、これらすべてに同意したことに注意してください。あなたのブラウザは、Pinterestがあなたが閲覧したすべてのものを見て大丈夫かどうか尋ねました。 そしてあなたはそう言いました。あなたはPinterestに、あなたが閲覧しているものを監視し、報告したいものを報告し、アクセスしたページの上に広告を詰め込む許可を暗黙のうちに与えました。これがWebプラグインの権限の仕組みです。

Pinterestは最悪の犯罪者ではありません。クレジットカード番号などを取得しようとはしていません。 できると言ったことを実行しているだけです。

これは、間違っていることが判明した妄想的な予感に基づいて、理解するのに少し時間がかかったコードの1つにすぎません。 (まあ、間違っているではなく、読みやすさに固有のものではありません。)ブラウザプラグインはRumpelstiltskinに似ています。ウェブを金色に回転させてから、長子を要求することを約束します。

今何?

次に何をすべきかについて少し考えました。私たちが行うスマートのことは、黙って肩をすくめることです。 (私たちには共通の知人がいます。)賢いですが退屈です。さらに、コードがどのように機能するかを理解するために多くの時間を費やしました。次に、Pinterestが許可なくページに広告を挿入できる場合は、広告にテキストを逆挿入することができます。方法を理解するのに数分しかかかりませんでした。これが私たちがテストしたものです:

Postlightのスタッフからの他のアイデア(合法的に実行可能な/わいせつなアイデアは削除されました)は次のとおりです。

—または—

—または—

—そして最後に—

巨人を微調整するのは楽しいですが、ウェブ上にはすでに十分な誤った方向性があります。読みやすさのユーザーのために賢明なことをすることにしました。Philipは、Pinterestの広告が表示されたときに削除するために、数行のコードを作成しました。 JavaScriptは譲り、JavaScriptは奪います。

もちろん、Pinterest はコードを変更してブロッカーを迂回することもできますが、気づいたり気にかけたりすることはないと思います。彼らの規模では、強制的な広告注入へのコンプライアンスの欠如は、統計的なノイズとしてログに表示されるだけです。

8,000のシークレットハッシュウェブサイトのように、オプトアウトする方法をおそらく理解できたでしょう—しかし、そうすると、ユーザーは自分の写真を固定できなくなります。そして、私たちは人々と彼らのピンの間に来るのは誰ですか?

この問題はありますか?

Pinterestは、500人以上の従業員を抱えるグローバル企業です。読みやすさも大きなサービスであり、毎月何億ものリクエストに対応しますが、基幹要員がいます。私たちは一度作家のために(そして私たち自身のために!)お金を稼ごうと試みましたが、私たちの試みはみんなを本当にひどく怒らせました。それで私たちは追跡できる限り多くの作家に作ったすべてのペニーを支払い、識字能力のある非営利団体に残り$ 100,000。概要:私たちはこの製品でお金を失っただけで、たくさんの人を悩ませました(ただし、識字能力を高め、インターネットサービスの全カテゴリを開拓しました)。

では、なぜそれを続けるのですか?愚かさ、頑固さ、そして大規模な世界的需要。読みやすさは、そのメリットとして、Web上の何百万もの人々にとってコアユーティリティになっています。私たちは、インターネットが厳しく検閲されている抑圧的な政権下に住むユーザーにサービスを提供し、障害者がWeb上の記事にアクセスできるように支援します。そして、私たちは密かに多くの読書アプリやサードパーティソフトウェアに電力を供給しています。だから私たちはそれらに焦点を合わせます。一部の企業は数十億の価値のあるユニコーンですが、私たちはそうではありません。しかし、今日Webの隠されたインフラストラクチャの一部となっているこの奇妙なツールを静かに管理することは、特権であり、教育でもあります。

金曜日まで、私たちはPinterestに畏敬の念を抱いていました。彼らは巨大なプラットフォームを構築し、いくつかの素晴らしい製品を出荷し、見出しを得るのではなく、ユーザーに焦点を合わせ続けています。このインジェクションスタイルは、新しいブックマークサービスを宣伝するための奇妙なステップのように見えますが、私たちが想像することしかできない商業的なプレッシャーがあります。

Pinterestの指導者の誰かがこれを読む可能性はほとんどないので、「実験」であるかどうかにかかわらず、Pinterestが他の人のサイトに漠然と定義されたプロモーションを挿入するのをやめることをお勧めします。そうでない場合、Pinterestは少なくとも広告がどこから来ているのかをユーザーに明確にする必要があります。挿入された広告に「 Chrome用のピン留めボタンをインストールしたため、このメッセージが表示されます」などのテキストを追加するだけでうまくいきます。明快さは敬意の表れです。または、ページの上部に色付きのストライプと通知を配置します。これは、宣伝用の広告インジェクションでよく知られているパターンです。

それはさておき、cr_139.jsの1031行目の正規表現を修正してください。 Pinterestが間違ったことをするつもりなら、少なくともうまくやるべきです。

誠意をこめて

ポールフォード&amp;リッチジアード
ポストライト&amp;読みやすさ

P.S。ウェブサイトを管理している場合は、このコードでPinterestの広告を非表示にすることができます(「これを固定」アイコンを通常どおり機能させながら、ソーシャルメディアのエンゲージメント戦略を台無しにしたくありません)。

Postlight は、ニューヨーク市で急成長している製品ショップであり、クライアントと私たち自身のためにモバイルアプリとウェブアプリを構築しています。私たちは、健康的で正気である以上に、本物の、乱雑な、グローバルなWeb、プラグインなどのWebを愛しています。 サービスを提供できる場合は、ご連絡ください。