サイトに広告を表示するためにiframeを使用しています。
Iframeは、広告生成コードと他のサイトモジュールを分離しておくために使用されます。
サイトの広告ビューを追跡し、どのページタイプがどのビューを取得するかを正確にカウントできる必要があるため、ユーザーが広告が読み込まれるiframeを別のサイトに単純にコピーアンドペーストできないようにする必要があります。これにより、このページの広告数が増加し、iframeが「表示される」ページの表示数と一致しなくなります。
誰かがそう言う前に:いいえ、ページビュー数と広告ビュー数を単純に比較したり、ページビュー数*ページあたりの広告数を使用したりすることはできません。ページあたりの広告数は必ずしも静的ではないからです。
動的に生成され、ページに表示されるiframeに対してのみ広告を表示できるようにするソリューションを考え出す必要があります。
私はPHPセッションに精通していませんが、少し読んだだけで、次のことが許容できる解決策のようです。
広告のiframeのsrcに「s=session_id()」を追加します。
広告リクエストを受信して処理するコードでは、s == session_id()の場合にのみ、広告を返します(そしてカウントします)。
私が間違っている場合は訂正してください。ただし、これにより次のことが保証されます。
広告は、通常の使用時のように、srcがページの残りのコンテンツと一緒に生成されたiframeにのみ返されます。
無効なsession_idを使用してロゴを広告呼び出しに戻すことができます。
したがって、簡単な例は次のようになります。
私たちのページの1つ:
<?php session_start(); ?>
<div id="someElement">
<!-- EVERYONE LOVES ADS -->
<iframe src="http//awesomesite.com/ad/can_has_ad.php?s=<?php echo session_id(); ?>></iframe>
</div>
ad / can_has_ad.php:
<?php session_start(); ?>
if($_GET['s'] == session_id()){
echo 'can has ad';
}
else{
echo '<img src="http://awesomesite.com/images/canhaslogo.jpg"/>';
}
そして最後に、静的な's'パラメータを使用してコードをコピーしました。
<!-- HAHA LULZ I WILL SCREW WITH YOUR AD VIEW COUNTS LULZ HAHA -->
<iframe src="http//awesomesite.com/ad/can_has_ad.php?s=77f2b5fcdab52f52607888746969b0ad></iframe>
それは彼らに私たちの素晴らしいサイトのロゴを示すiframeを与え、私たちの視聴回数を台無しにすることはありません。
基本的なテストケースをいくつか作成しました。1つはiframeを生成してエコーするファイルで、もう1つはiframeのsrcが指すファイルで、「s」パラメータをチェックし、結果に応じて適切なメッセージを表示します。iframeをファイルにコピーして別のサーバーでホストすると、正しいメッセージが表示されました(広告を含めることはできません)。
だから、私の質問は:
これは機能しますか、それとも私はPHPセッションの初心者であり、上記のテストは完全なまぐれですか?
御時間ありがとうございます!
編集:
I'm trying to solve this without touching the SQL server, as the rest of the site is very SQL intensive and I don't want to add load to the already creaky SQL server...