登録済みユーザーには広告を表示し、ゲストには表示しない方法はありませんか?
または、セッションの状態に応じてカスタムスクリプトタグを使用することはできますか?
ここでのロジックは、サインアップまたは SSO 中に利用規約/プライバシーポリシーに同意したユーザーは、他の場所でのクッキーや広告の使用に同意したとみなされる一方、ゲストは同意していないという点です。
この必要性や範囲は限定的(主に EEA 諸国)だと考えていますが、訪問者の所在地に関係なくこの機能を実装できる方法があれば、それだけでも満足です。
コードのどの部分を確認すればよいかというヒントも歓迎します。
pfaffman
(Jay Pfaffman)
2020 年 3 月 12 日午後 9:33
2
CSS で非表示にすることはできますが、それでもクッキーを受け取り、情報を収集することになります。編集:これは悪いアドバイスです。
もしかしたら、こちらがご希望かもしれません:Discourse Cookie Consent Banner
確かに、CSS で広告を非表示にしても、クッキーや収集されるデータには何の影響もありません。
これは有料製品であるサードパーティのサービスに依存しています。また、ソースを見ると、バナーを表示するだけで、Discourse の Advertisement プラグインによってトリガーされるクッキーを阻止する機能はないようです。
いずれにせよ、そのバナーはクッキーの使用に関する同意を処理するものですが、ターゲティング広告など、個人情報を収集するために必要なより厳格な GDPR 同意には不十分です。この同意は、広告が読み込まれる前に得られる必要があります。
すでに SSO などでその同意を収集しているため、ログインユーザーにのみ広告を表示するオプションが一つの解決策となり得ますが、これは私たちの設定に特有のものかもしれません。
neounix
(Dark Matter)
2020 年 3 月 25 日午前 8:36
4
参考までに、当サイトではユーザー ID を確認することで、ゲストユーザーにのみ広告を表示しています。Discourse 以外の当フォーラムでは、ログインしていないすべてのゲストユーザーのユーザー ID が 1 未満となるため、チェックが容易で、会員には広告を表示しない(登録ユーザーにのみ表示するのとは逆の)設定が可能です。
公式の Discourse 広告プラグインについては、これが設定オプションとして存在するか、簡単なコード修正で実現可能かどうかは、まだ確認していません。
Stephen
(Stephen)
2020 年 3 月 25 日午前 9:08
5
「広告を表示する」とおっしゃる場合、DoubleClickなどの公開広告ネットワークを指しているのでしょうか、それとも自社広告でしょうか?
公開広告ネットワークがページ内で表示されている広告を確認できない場合(ゲストには非表示になっているため)、アカウントが停止されるリスクがあります。検証なしのインプレッションは通常、不正利用のフラグとみなされ、広告をビューポート外でレンダリングしている、あるいは同様に疑わしい行為を行っていると推測されます。
neounix
(Dark Matter)
2020 年 3 月 25 日午前 10:06
6
広告を配信しないということは、広告を配信しないという意味です。私たちの場合、広告サーバーを自社で所有・運営しており、そのサーバーは私たちが指定したタグ(ハウス広告、テック系ネットワーク、特別キャンペーン、Google 広告タグなど、非常に多くの広告ネットワーク)を配信します。広告の配信方法は「私たちと広告クライアント次第」です。
広告を配信しないことは、広告を隠すことではありません。広告を配信しないのです。
「中国にはハウス広告を配信する」「会員には広告を配信しない」「米国にはテック系ネットワークの広告のみを配信する」「ブラジルにはグリーン広告を配信する」「英国には広告を配信しない」「FF ブラウザにはパープル広告を配信する」「Chrome にはピンク広告を配信する」……これらはすべて基本的な広告配信の基礎知識です。
私たちは 15 年以上にわたり広告の管理と配信を行っており、いかなるリスクも負っていません。
私たちは何をしているかを知っており、この業界には非常に長い間携わってきました。
他の人々に関しては、CSS や「広告を隠す」といった議論は、ウェブサイト運営やこのトピックについて議論する方法として適切ではありません。広告配信は、地理的位置、ユーザーの状態、時間帯など、さまざまな基準に基づいてユーザーに対して行われます。ブラウザやユーザーの性別にまで広告をターゲティングすることも可能です。自社で広告サーバーを運用している場合、これらはすべて広告配信の基礎知識です。
去年は約 5 億件の広告を配信しました(古いフォーラムのトラフィックが減少しているため、もしかしたらそれ以下かもしれません)。ハウス広告からカスタム直接購入まで、さまざまな形態で配信しました。
Discourse の広告プラグインの仕組みについてはよくわかりませんが、広告配信の観点から見れば、登録ユーザーをターゲティングし、ゲストをターゲティング(または配信)しないことに全く問題はありません。これが広告配信の仕組みであり、ターゲティングです。
私たちの場合、広告サーバーを運用しており、無数の基準に基づいてターゲティングを行います。これらはすべて基本的な広告配信の基礎知識です。私たちのサイトでは、ほぼ 20 年にわたり、登録されていない(ゲスト)ユーザーに対してのみ広告を配信しています。会員が広告を見ることは、長年のポリシーにより一切ありません。
広告ターゲティングの例
これは私がこれまで管理してきたすべての広告サーバーの動作方法です。
さらに、「ベアメタル」レベルでは、地理的位置、会員(さまざまな基準に基づく)などに対して、すべての広告(すべての広告配信)をオフにすることも可能です。これは、すべての商用広告サーバーで利用可能な基本的な広告ターゲティングです。
フォーラムでは、サイトが選択したグループに対して広告を配信しないように、ブール値を設定するのは比較的簡単です。
ただし、Discourse プラグインについては、すぐに広告を配信する予定がないためわかりません。しかし、もし配信することになれば、ログインユーザーには広告を配信しないことをお約束します。必要であればプラグインを自分で修正するか、独自に作成することもします
neounix
(Dark Matter)
2020 年 3 月 25 日午前 11:01
7
レガシーなフォーラム広告管理を見たことがない方のために(モダンな広告プラグインはもっと見栄えが良いですよ、笑)、ここではレガシーな vB 広告管理システム(詳細な広告配置ページではなく、グローバル設定ページのみ)からのスクリーンショットを 2 枚紹介します。
これは「広告サーバー」ではなく、フォーラム ID(カテゴリ)、ユーザーグループなどをターゲットに広告配置を支援するプラグインに過ぎません。これらはすべて非常にレガシーなもので、現在はほとんど使用していませんので、ご参考までに。
ただし、ユーザーグループを簡単にターゲティングできることがお分かりいただけると思います。ゲスト、登録ユーザー、モデレーター、リーダーといったユーザーグループクラスに対して、広告を表示または非表示にすることも可能です。
また、以下の画像もご覧ください。
注:サーバー(bare metal)上では、地理的位置、クッキーなどに基づいたターゲティングも行っています。正直なところ、これは広告配信の基礎中の基礎(101)です。例えば、「ドイツでは広告サーバー 1 を使用」「日本では広告サーバー 3 を使用」といったことも簡単に実現できます。つまり、「bare metal」と「優れた広告配置プラグイン」、「自前の広告サーバーの運用」の 3 つを組み合わせれば、できることは無限大です。
neounix
(Dark Matter)
2020 年 3 月 25 日午前 11:33
8
Discourse 広告プラグインについて…
初めてプラグインを少し覗いてみました。
$ pwd
/Users/Tim/desktop/discourse-adplugin/test/javascripts/acceptance
$ vi dfp-test.js.es6
基本的には、特定の信頼レベルやグループに対して広告を表示する機能は既に実装されているようです(私はテストはしていませんが、プラグイン内に既にコードがあるため、比較的 straightforward に見えるのですが…)。
コードは以下の通りです:
申し訳ありませんが、今月はこのプラグインに取り組む予定はありませんでした。しかし、コードを少し確認しただけでも、信頼レベルやユーザーグループに基づいたターゲティングは straightforward に実現できそうです。
とにかく… ドキュメントを確認しましたが、この機能のほとんどは Discourse 広告プラグインに既に存在しています。例えば、この設定例では、信頼レベルに基づいて AdSense を表示する仕組みがあります:
Discourse の広告プラグインは、ターゲティングの処理というよりは、主に広告ユニットのコードを Discourse の出力に挿入することにあります。地域やその他のターゲティングには、DFP(Ad Manager)のようなものを利用するのが良いでしょう。このプラグインがターゲティングの部分を担うべきだとは思いません。
すでに、特定の信頼レベル 以上 のユーザーには広告を表示しないという設定があります。私たちの必要(これも SSO 設定に特有のものですが)は、その逆で、ゲストには同意が得られていないため、広告を一切表示しないようにしたいというものです。
Ruby と Discourse のコードベースについては初心者ですが、コードを確認して何か解決策を見つけられるか検討してみます。ヒントがあれば幸いです。
neounix
(Dark Matter)
2020 年 3 月 25 日午後 12:21
10
こちらをご覧ください(AdSense の例です。そのディレクトリ内のファイルはそれぞれ異なります)。このコードのロジックを少し変更して、特定の信頼レベルまたはユーザーグループ以上のユーザーにのみ広告を表示するようにする(またはその逆)ことができます。
参考情報(ヒント)
./discourse-adplugin/assets/javascripts/discourse/components
ご質問の意図(メンバーのみに対して広告を表示する)が正しければ、このコードは「簡単に」修正して再構築できるかもしれません(お好みのステージングサーバーでテストしてください)。もし信頼レベルやユーザーグループに基づいて設定する場合は、もちろん修正はほぼ簡単です。
申し訳ありませんが、私はテストは行っておらず、コードの確認だけを行いました。
007
2020 年 4 月 18 日午前 12:12
11
ここでもう少し意見を言わせてください。
特定のユーザーグループに広告をターゲティングする(または特定のグループではスキップする)ことは、非常に理にかなっていると思います。
多くのコミュニティでは、運営コストを賄う手段として、広告を非表示にする有料オプションを提供しています。
古いフォーラムソフトウェアには、広告コードの周りに追加できるこのようなオプションがあります。Discourse 側で自分でこれを修正したい場合、同等の機能はありますか?
<if !user_in($loggedinuser($usergroup[id])); />
ここに広告コード
</endif>
といった具合に。久々のことなので、記憶が曖昧ですが。
neil
(Neil Lalonde)
2020 年 4 月 20 日午後 4:10
12
はい、それを制御する設定があります。「subscribers」というグループにユーザーを追加し、「特定のグループ向けに広告を表示しない」設定にそのグループを含めてください。