Update ROAS calculations to include all-time values and adjust cache metadata

This commit is contained in:
2025-04-24 00:17:36 +02:00
parent 2ea0cc28a6
commit 056559d0f3
3 changed files with 19 additions and 8 deletions

View File

@@ -23,8 +23,8 @@
}, },
"class.Api.php": { "class.Api.php": {
"type": "-", "type": "-",
"size": 11018, "size": 11235,
"lmtime": 0, "lmtime": 1744498273470,
"modified": false "modified": false
}, },
"class.Campaigns.php": { "class.Campaigns.php": {
@@ -41,8 +41,8 @@
}, },
"class.Products.php": { "class.Products.php": {
"type": "-", "type": "-",
"size": 8787, "size": 8915,
"lmtime": 1744064045288, "lmtime": 1744489800429,
"modified": false "modified": false
}, },
"class.Site.php": { "class.Site.php": {
@@ -139,7 +139,7 @@
"robots.txt": { "robots.txt": {
"type": "-", "type": "-",
"size": 25, "size": 25,
"lmtime": 0, "lmtime": 1744488227849,
"modified": false "modified": false
}, },
"templates": { "templates": {
@@ -158,6 +158,7 @@
} }
} }
}, },
"tmp": {},
"upload": {}, "upload": {},
"xml": {} "xml": {}
} }

View File

@@ -63,7 +63,7 @@ class Cron
$cpc = $offer_data['clicks'] > 0 ? round( $offer_data['cost'] / $offer_data['clicks'], 6 ) : 0; $cpc = $offer_data['clicks'] > 0 ? round( $offer_data['cost'] / $offer_data['clicks'], 6 ) : 0;
$roas = ($offer_data['conversions'] > 0 and $offer_data['cost']) ? round($offer_data['conversions_value'] / $offer_data['cost'], 2) * 100 : 0; $roas = ($offer_data['conversions'] > 0 and $offer_data['cost']) ? round($offer_data['conversions_value'] / $offer_data['cost'], 2) * 100 : 0;
// $impressions_30 = \factory\Products::get_impressions_30( $offer_data['product_id'] ); $impressions_30 = \factory\Products::get_impressions_30( $offer_data['product_id'] );
// update custom_label_4 only current is empty or is bestseller // update custom_label_4 only current is empty or is bestseller
$custom_label_4 = \factory\Products::get_product_data( $offer_data['product_id'], 'custom_label_4' ); $custom_label_4 = \factory\Products::get_product_data( $offer_data['product_id'], 'custom_label_4' );
@@ -205,6 +205,14 @@ class Cron
exit; exit;
} }
static public function get_roas_all_time( $product_id, $date_to )
{
global $mdb;
$roas_all_time = $mdb -> query( 'SELECT SUM(conversions_value) / SUM(cost) * 100 AS roas_all_time FROM products_history WHERE product_id = ' . $product_id . ' AND date_add <= \'' . $date_to . '\'' ) -> fetchColumn();
return round( $roas_all_time, 2 );
}
static public function cron_product_history_30_save( $product_id, $date_to ) static public function cron_product_history_30_save( $product_id, $date_to )
{ {
global $mdb; global $mdb;
@@ -262,7 +270,8 @@ class Cron
'cost' => $cost, 'cost' => $cost,
'conversions' => $conversions, 'conversions' => $conversions,
'conversions_value' => $conversions_value, 'conversions_value' => $conversions_value,
'roas' => $roas 'roas' => $roas,
'roas_all_time' => self::get_roas_all_time( $product_id, $date_to )
], [ 'AND' => [ 'product_id' => $product_id, 'date_add' => $date_to ] ] ); ], [ 'AND' => [ 'product_id' => $product_id, 'date_add' => $date_to ] ] );
} }
else else
@@ -276,6 +285,7 @@ class Cron
'conversions' => $conversions, 'conversions' => $conversions,
'conversions_value' => $conversions_value, 'conversions_value' => $conversions_value,
'roas' => $roas, 'roas' => $roas,
'roas_all_time' => self::get_roas_all_time( $product_id, $date_to ),
'date_add' => $date_to 'date_add' => $date_to
] ); ] );
} }

View File

@@ -211,7 +211,7 @@ class Products
$cost[] = (float)$row['cost']; $cost[] = (float)$row['cost'];
$conversions[] = (int)$row['conversions']; $conversions[] = (int)$row['conversions'];
$conversions_value[] = (float)$row['conversions_value']; $conversions_value[] = (float)$row['conversions_value'];
$roas[] = (float)$row['roas']; $roas[] = (float)$row['roas_all_time'];
$dates[] = $row['date_add']; $dates[] = $row['date_add'];
} }