This commit is contained in:
2025-05-14 14:55:56 +02:00
5 changed files with 2297 additions and 16 deletions

View File

@@ -23,8 +23,8 @@
},
"class.Api.php": {
"type": "-",
"size": 11018,
"lmtime": 0,
"size": 11235,
"lmtime": 1744498273470,
"modified": false
},
"class.Campaigns.php": {
@@ -35,14 +35,14 @@
},
"class.Cron.php": {
"type": "-",
"size": 20273,
"lmtime": 1744063175514,
"size": 20896,
"lmtime": 1745745807850,
"modified": false
},
"class.Products.php": {
"type": "-",
"size": 8787,
"lmtime": 1744064045288,
"size": 8924,
"lmtime": 1745445544980,
"modified": false
},
"class.Site.php": {
@@ -139,7 +139,7 @@
"robots.txt": {
"type": "-",
"size": 25,
"lmtime": 0,
"lmtime": 1744488227849,
"modified": false
},
"templates": {
@@ -158,6 +158,7 @@
}
}
},
"tmp": {},
"upload": {},
"xml": {}
}

View File

@@ -39,7 +39,7 @@ class Api
$campaign_history_data['roas_all_time'] = $campaign['roasAllTime'];
$campaign_history_data['budget'] = str_replace( ' zł', '' , $campaign['budget'] );
$campaign_history_data['money_spent'] = floatval( preg_replace(['/[^0-9,]/', '/,/'], ['', '.'], $campaign['spend30Days'] ) );
$campaign_history_data['conversion_value'] = $campaign['conversionValue30Days'];
$campaign_history_data['conversion_value'] = preg_replace( '/[^\d,.-]/', '', $campaign['conversionValue30Days'] );
if ( isset( $campaign['biddingStrategy'] ) and $campaign['biddingStrategy'] == 'MAXIMIZE_CONVERSIONS' )
{
@@ -121,7 +121,7 @@ class Api
$phrase_data['clicks'] = $phrase['Clicks'];
$phrase_data['cost'] = $phrase['Cost'];
$phrase_data['conversions'] = $phrase['Conversions'];
$phrase_data['conversions_value'] = $phrase['ConversionValue'];
$phrase_data['conversions_value'] = preg_replace( '/[^\d,.-]/', '', $phrase['ConversionValue'] );
$phrase_data['updated'] = 1;
if ( $mdb -> count( 'phrases_history', [ 'AND' => [ 'phrase_id' => $phrase_id, 'date_add' => $data['date'] ] ] ) )
@@ -178,7 +178,7 @@ class Api
$json = file_get_contents( 'php://input' );
$data = json_decode( $json, true );
// file_put_contents( 'tmp/products_data_save.txt', print_r( $data, true ) );
if ( $data['client_id'] and $data['date'] )
{
foreach ( $data['data'] as $offer )
@@ -216,9 +216,9 @@ class Api
$offer_data['impressions'] = $offer['Impressions'];
$offer_data['clicks'] = $offer['Clicks'];
$offer_data['ctr'] = round( $offer['Clicks'] / $offer['Impressions'], 4 ) * 100;
$offer_data['cost'] = $offer['Cost'];
$offer_data['cost'] = preg_replace( '/[^\d,.-]/', '', $offer['Cost'] );
$offer_data['conversions'] = $offer['Conversions'];
$offer_data['conversions_value'] = $offer['ConversionValue'];
$offer_data['conversions_value'] = preg_replace( '/[^\d,.-]/', '', $offer['ConversionValue'] );
$offer_data['updated'] = 1;
if ( $mdb -> count( 'products_history', [ 'AND' => [ 'product_id' => $offer_id, 'date_add' => $data['date'] ] ] ) )

View File

@@ -63,7 +63,7 @@ class Cron
$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;
// $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
$custom_label_4 = \factory\Products::get_product_data( $offer_data['product_id'], 'custom_label_4' );
@@ -205,6 +205,14 @@ class Cron
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 )
{
global $mdb;
@@ -251,7 +259,7 @@ class Cron
$conversions_value = $offer['conversions_value'];
$roas = ( $conversions_value > 0 and $cost ) ? round( $conversions_value / $cost, 2 ) * 100 : 0;
if ( $day_count >= 30 )
if ( $mdb -> count( 'products_history', [ 'AND' => [ 'product_id' => $product_id, 'date_add[<=]' => $date_to ] ] ) >= 14 )
{
if ( $mdb -> count( 'products_history_30', [ 'AND' => [ 'product_id' => $product_id, 'date_add' => $date_to ] ] ) > 0 )
{
@@ -262,7 +270,8 @@ class Cron
'cost' => $cost,
'conversions' => $conversions,
'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 ] ] );
}
else
@@ -276,6 +285,7 @@ class Cron
'conversions' => $conversions,
'conversions_value' => $conversions_value,
'roas' => $roas,
'roas_all_time' => self::get_roas_all_time( $product_id, $date_to ),
'date_add' => $date_to
] );
}

View File

@@ -75,6 +75,8 @@ class Products
$custom_label_4_color = 'background-color:rgb(255, 0, 0); color: #FFF;';
else if ( $custom_label_4 == 'zombie' )
$custom_label_4_color = 'background-color:rgb(58, 58, 58); color: #FFF;';
else if ( $custom_label_4 == 'pla' )
$custom_label_4_color = 'background-color:rgb(74, 63, 136); color: #FFF;';
$data['data'][] = [
$row['product_id'],
@@ -209,7 +211,7 @@ class Products
$cost[] = (float)$row['cost'];
$conversions[] = (int)$row['conversions'];
$conversions_value[] = (float)$row['conversions_value'];
$roas[] = (float)$row['roas'];
$roas[] = (float)$row['roas_all_time'];
$dates[] = $row['date_add'];
}

2268
tmp/products_data_save.txt Normal file

File diff suppressed because it is too large Load Diff