2

無料でダウンロードできるソフトウェアをいくつか作成しました。私はいくつかのアフィリエイトからトラフィックが送られてきたら支払いを行っています。現在の仕組みでは、各アフィリエイトに固有のリンクを提供し、私のソフトウェアが実際にダウンロードされた場合にのみアフィリエイトに入金されます。ただし、ユーザーが実際にソフトウェアをインストールしたかどうかを追跡できれば理想的です。ユーザーがソフトウェアを登録する必要なく、これを行う方法はありますか? (ユーザーが紹介されたアフィリエイトを知る必要があることに注意してください)

当初、アフィリエイトの ID を使用してユーザーのブラウザーに Cookie を作成し、ソフトウェアのインストールが完了すると、ブラウザーを開いてサンキュー ページを表示し、その時点で Cookie を読み取って把握することを考えていました。このユーザーが関連付けられているアフィリエイト。ただし、ユーザーの既定のブラウザー以外のブラウザーでソフトウェアをダウンロードした場合、これは機能しません....

私が考えた別のアイデアは、ユーザーの IP アドレスをデータベースに保存し、ありがとうページが開かれたときにそれを照合することでしたが、ユーザーが大学などの大規模なネットワークの一部である場合、これはうまく機能しません。

助言がありますか?

4

3 に答える 3

3

私が考えた別のアイデアは、ユーザーの IP アドレスをデータベースに保存し、ありがとうページが開いたときにそれを照合することでしたが、ユーザーが大学などの大規模なネットワークの一部である場合、これはうまく機能しません。

各ユーザーのインストーラーに個人名 (binary01、binary02、binary03 など) を付けて送信します。ダウンロード時にインストーラーに独自の名前を読み取らせ、それを GET パラメーターとしてサンキュー ページに挿入しますhttp://www.yoursite.com/thankyou?exe=binary03

サーバー上のバイナリ ファイルは常に同じ 1 つのファイルですが、ダウンローダはアフィリエイトごとに異なる名前を報告します (または、同じバイナリの複数のコピーを保持できますが、同期を維持するのはより困難です)。

たとえば、これはダウンロード リンクである可能性があります。

<?php
    // Download URL, of the form http://www.yoursite.com/download.php?aff=AffName
    // You can rewrite this with Apache's mod_rewrite and have .../filename-AffName.exe

    $affiliates = array(
        // You can keep these in a database
        "widgets"  => "Widgets'r'us",
        "foobar"   => "Foo's Software Bar",
    );

    $aff  = isset($_GET['aff']) ?  $_GET['aff'] : 'unaffiliated';
    $base = "YourBinary";
    $ext  = '.exe';

    $file = $base.$ext;
    $name = $base.'-'.$aff.$ext;

    Header("Content-Disposition: attachment; filename=" . urlencode($name));
    Header("Content-Type: application/force-download");
    Header("Content-Type: application/octet-stream");
    Header("Content-Type: application/download");
    Header("Content-Description: File Transfer");            
    Header("Content-Length: " . filesize($file));

    readfile($file);
?>

パッケージ名の読み方はインストーラーに依存します。InnoSetup は情報をスクリプト変数としてエクスポートし{srcexe}、Advanced Installer はそれを [SETUPEXEDIR] として保持します。

ただし、多くのユーザーが (職場やインターネット カフェなどで) インストールをダウンロードし、後でインターネットに接続せずに実行する場合は、これを「最初のインストール登録」機能に上げたいと思うかもしれません。インストール時に "InstallationID" レジストリ値を (実行可能ファイルから読み取って) アフィリエイト名に保存すると、プログラムがそれを検索し、数値 ID または UUID でない場合はそれを交換しようとする場合があります。

このようにして、両方の長所を活用し、顧客を悩ませず (「インターネット接続なしではインストールできません! ええ!」)、掘り出し物で UUID をスローすることさえできます。

于 2013-02-11T06:50:21.090 に答える
0

私は、クッキーを使用するというあなたの考えが最善であるという知識に基づいた推測に挑戦します。ユーザーがデフォルトのブラウザ以外のものを使用してソフトウェアをダウンロードする可能性はほとんどありません。ただし、新しいコンピュータをセットアップしていて、選択したブラウザをまだインストールしていない場合を除きます。

文字列を変更してソフトウェアを再コンパイルしてもかまわない場合は、アフィリエイトごとに特定のリンクを開くさまざまな実行可能ファイルを配布することもできます。

于 2013-02-11T06:45:12.160 に答える
0

アプリケーションの最初の実行時に、HTTP GET 要求をホーム サーバーにサイレントに送信できるはずです。一意のデバイス ID を送信して、これが新しいデバイスであることを確認することもできます。このイベントを毎回送信するのではなく、ローカル データベースに記憶しておく必要があります。

これが機能するには、アプリケーションがAndroidManifest.xml にリストされているINTERNET権限を持っている必要があることに注意してください。

ただし、プライバシーに関する問題があります。ホームに ping を送信することをユーザーに明確にする必要があります。

于 2013-02-11T06:47:44.123 に答える