2012-04-19 8 views
4

私はPHPでバウンティスクリプトをコーディングしています。 Prosper202のオープンソースコードを使用して、Reward Script(Reward Script)を実行してください。SubidsとPostbackを使ってリードを追跡しようとしています。 例。サブディーズとポストバックトラッキングの仕事をする

urlの最後に一意のIDを追加したいと思います。 Like http://google.com/c3={unique_id}

ここで一意のIDは少なくとも15分間無作為に生成される必要があり、Mysqlデータベースに格納する必要があります。

成功した第三者サーバーがポストバック形式で送信したとき。

次に両方をリアルタイムで比較する必要があります。 (これは、エンドユーザへの遅延を避けるため、できるだけ早く行う必要があります。)

このケースではどうすればよいですか?

ポストバックまたはPHPに使用するJavaScript?

そして、PHPスクリプトでポストバックを操作する方法。

私が言及したように。このスクリプトProsper202にも、ポストバックを追跡するのと同じ機能があります。 しかし、私はそれから有用なコードを抽出することができません。

資源: -

http://prosper.tracking202.com/apps/ 
http://prosper.tracking202.com/forum/6/21/tracking-subids#7848 

答えて

1

は、ここであなたがする必要があるものです:

1)これらの分野でのMySQLでのトランザクションテーブルを作成します。

TRANSACTIONS 
############ 
id - INT, AUTO-INCREMENT, UNSIGNED, NOT NULL 
transaction_id - VARCHAR(8) 
created_on - TIMESTAMP, DEFAULT CURRENT_TIMESTAMP() 

2)を作成しますこれらのフィールドを持つMySQLのコンバージョンテーブル:

受信するために使用される別のスクリプトでは

/** 
* Generates [$length] character transaction ID's. Verifies transaction ID is not 
* currently in use. If it is, function recursively attempts to generate 
* a unique one. After 10 attempts, it fails and returns false. 
* 
* @param PDO Database connection via dependency injection 
* @param Int Length of string to generate 
*/ 
function generateTransactionId($db, $length = 8) 
{ 
// Don't let this function get stuck in endless recursion. 
static $recursion_count = 0; 
$recursion_count++; 
if($recursion_count > 10) 
{ 
    $recursion_count = 0; 
    return false; 
} 

// Create transaction ID 
$transaction_id = substr(md5(uniqid(mt_rand(), true)), 0, $length); 

// Check to make sure it is unique 
$query = "SELECT id FROM myDb.transactions WHERE transaction_id = ?"; 
$stmt = $db->prepare($query); 
$stmt->execute(array($transaction_id)); 
$row = $stmt->fetch(PDO::FETCH_OBJ); 
$stmt = null; 

// If nothing found, we have a unique ID. Otherwise recursively find a unique one. 
if(!is_object($row) || $row == false) 
{ 
    // Reset recursion counter 
    $recursion_count = 0; 

    // Found unique ID 
    return $transaction_id; 
} 
else 
{ 
    // Recursively generate unique transaction ID 
    return generateTransactionId($db); 
} 
} 

$url = "http://www.google.com/"; 
$transaction_id = generateTransactionId($myPDOConnection); 

// Add to URL 
$url = $url . "?c3=" . $transaction_id; 

// Do redirect to URL 
header('Location: ' . $url); 

4):あなたのコードで

3)、URLに送信する前に、あなたが生成し、固有のトランザクションID(別名サブID)を添付する必要がありますポストバック、あなたは(あなたがそう傾斜している場合またはPOST)GET経由でサブID /トランザクションIDを取得したいと転換マークします:あなたは限りリアルタイムの比較が行くよう

$transaction_id = isset($_GET['c3']) ? trim($_GET['c3']) : false; 

if($transaction_id) 
{ 
    // Received conversion, add this transaction ID to conversions table 
} 

を、唯一のメトリクスにアクセス権があるリダイレクトの前の時刻、およびポストバックを受け取った時刻です。トランザクションテーブルのCOUNT()をチェックすることで、リダイレクトの回数を確認できます。コンバージョン数表のCOUNT()を確認すると、受信したポストバック/コンバージョン数を確認できます。