php - 使补贴和回发跟踪工作

标签 php javascript jquery

我正在用 Php 编写赏金脚本。 (奖励脚本),使用 Prosper202 的开源代码。尝试使用 Subids 和 Postbacks 跟踪潜在客户。我无法让这些东西发挥作用。 示例。

我想在 url 末尾附加唯一 ID。 喜欢 http://google.com/c3={unique_id}

这里Unique id需要随机生成至少15分钟有效,需要存入Mysql数据库。

当成功的第三方服务器以格式发送回传时。

http://watever.com/c3={unique_id}

然后我们需要实时比较两者。 (这需要尽可能快,以避免对最终用户造成延迟。)

在这种情况下我们应该使用什么?

用于 Postback 或 php 的 JavaScript?

以及如何在 php 脚本中操作回发。

正如我提到的。此脚本 Prosper202 也具有跟踪回发的相同功能。 但是我无法从中提取有用的代码。

资源:-

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

最佳答案

这是您需要做的:

1) 使用这些字段在 MySQL 中创建一个事务表:

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

2) 在 MySQL 中使用这些字段创建一个转换表:

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

3) 在您的代码中,在将它们发送到 URL 之前,您需要生成并附加一个唯一的交易 ID(也称为子 ID):

/**
* 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) 在用于接收回发的另一个脚本中,您将希望通过 GET(或 POST,如果您愿意)获取子 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() 来查看收到了多少回传/转化。

关于php - 使补贴和回发跟踪工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10226778/

相关文章:

javascript - jQuery Datepicker 中的禁用日期取决于模型 MVC 中的其他属性

javascript - SetInterval 只调用一次,不知道为什么?

php - 如何将新值更新到当前字段并将当前值传输到旧字段?

php - PhpStorm 中 ZF2 View 助手的自动完成

javascript - Mongoose:获取完整的用户列表

c# - 如何使用 www.addthis.com

php - 在 PHP 中的表单顶部显示消息

php - Cron 作业执行 php 文件

javascript - 可在 xul 应用程序中使用的 mongodb 的纯 javascript 驱动程序

jquery - jqGrid - 如何重置搜索选项?