Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //date_default_timezone_set('America/Los_Angeles');
- //echo date('Y-m-d' , "1501353000");
- session_start();
- include "../connection.php";
- include "../config/main.php";
- include "../helpers/AdvertsHelper.php";
- include "../helpers/UserHelper.php";
- include "../helpers/CommonHelper.php";
- include "../_mailer/mail.php";
- error_reporting(0);
- $advertshelper = new AdvertsHelper();
- $userhelper = new UserHelper();
- $commonhelper = new CommonHelper();
- $currentDtTime = date('Y-m-d h:i:s');
- set_time_limit(0);
- $mailer = initiate_mail();
- /* $mail_detail = array(
- 'to'=>array('watermark0913@gmail.com'),
- 'to_name'=>array('tester'),
- 'from'=>'dstestteam@gmail.com',
- 'subject'=>'Cron Notification',
- 'message'=>'test email'
- );
- send_mail($mail_detail , $mailer);*/
- function cron_notification($message_content){
- $mailer = initiate_mail();
- $mail_detail = array(
- //'to'=>'watermark0913@gmail.com',
- //'to_name'=>'tester',
- 'to'=>array('alex@gosocialmarketing.co.uk', 'Josh.king@gosocialmarketing.co.uk','Andy@gosocialmarketing.co.uk','Lewis@gosocialmarketing.co.uk'),
- 'to_name'=>array('alex','josh','andy','lewis'),
- 'from'=>'dstestteam@gmail.com',
- 'subject'=>'Cron Notification',
- 'message'=>$message_content
- );
- send_mail($mail_detail , $mailer);
- echo "done";
- }
- function getCurlResponse($url){
- //echo $url."</br>";
- $ch = curl_init($url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
- $response = curl_exec($ch);
- //echo $response."--".$url."</br>";
- $data = json_decode($response, true);
- return $data;
- }
- ?>
- <?php
- $startrange = 1;
- for($i=$startrange; $i>=0; $i--){
- if($i>=1){
- $dateseries[$i]['start_date'] = date("Y-m-d" , strtotime(' -'.$i.' days'));
- $dateseries[$i]['end_date'] = date("Y-m-d" , strtotime(' -'.($i).' days'));
- }
- else {
- $dateseries[$i]['start_date'] = date("Y-m-d");
- $dateseries[$i]['end_date'] = date("Y-m-d");
- }
- }
- $timeranges =array();
- foreach($dateseries as $key=>$value){
- $timeranges[] = "{'since':"."'".$value['start_date']."'".","."'until':"."'".$value['end_date']."'"."}";
- }
- $timerangestring = implode("," , $timeranges);
- $timerangestring = '['.$timerangestring.']';
- //echo date('d M Y', strtotime($dateseries[$startrange]['start_date']));
- //echo date('d M Y', strtotime($dateseries[0]['start_date'].' +1 days'));
- $since = strtotime(date('d M Y', strtotime($dateseries[$startrange]['start_date'])));
- $until = strtotime(date('d M Y', strtotime($dateseries[0]['start_date'].' +1 days')));
- $startDate = date('Y-m-d', strtotime($dateseries[$startrange]['start_date']));
- $endDate = date('Y-m-d', strtotime($dateseries[0]['start_date']));
- //echo $startDate."--";
- //echo $endDate;
- $adverts_detail = $advertshelper->advert_accountlist(array(), $mysqli);
- while($adverts_info = mysqli_fetch_array($adverts_detail,MYSQLI_ASSOC)){
- //echo $adverts_info['id']."mera";
- $advvalue = $adverts_info['id'];
- $fb_app_ID[$advvalue] = $adverts_info['app_id'];
- $fb_acc_ID[$advvalue] = $adverts_info['acc_id'];
- $apiCallto = "https://graph.facebook.com/v2.12/".$fb_app_ID[$advvalue]."/app_insights/app_event/";
- //$accessTokenAppInsight[$advvalue] = 'EAANhrBZCwuZBYBAABpj9A7q1YwmXKgpHsHj52y60JXM2CYllXxAGjJBffBoMbwmtNWKG6sZBrtVtcl1Hb487SmvNswXBLKKbkMXOeXSpL6GOZBDmmkgBa7etyZCrEZAEtoNSbWSfwklgV0iajaPD7Cb6WdTzZAZApZAsZD';
- $accessTokenAppInsight[$advvalue] = $adverts_info['networkapi_access_token'];
- $accessTokenApiMarketing[$advvalue] = $adverts_info['access_token'];
- //--------------------------------------------------------1st Call
- $revQuery[$advvalue] = "$apiCallto?since=".$since."&until=".$until."&event_name=fb_ad_network_revenue&aggregateBy=SUM&breakdowns[0]=placement&access_token=".$accessTokenAppInsight[$advvalue];
- //echo $revQuery[$advvalue];
- //echo $revQuery[$advvalue]."</br></br>";
- //echo $revQuery[$advvalue].'</br>';
- $revenuArray = getCurlResponse($revQuery[$advvalue]);
- //print_r($revenuArray);exit;
- $logdetail[$advvalue]['advert_name'] = $adverts_info['name'];
- if(isset($revenuArray['error'])){
- $logdetail[$advvalue]['fb_ad_network_revenue']['error'] = 1;
- $logdetail[$advvalue]['fb_ad_network_revenue']['errormessage'] = $revenuArray['error']['message'];
- }
- if(isset($revenuArray['data'])){
- $logdetail[$advvalue]['fb_ad_network_revenue']['success'] = 1;
- $logdetail[$advvalue]['fb_ad_network_revenue']['total_data'] = count($revenuArray['data']);
- }
- if(!isset($revenuArray['error']) && isset($revenuArray['data']) && !empty($revenuArray['data'])){
- //usort($revenuArray['data'], "placement");
- }
- //--------------------------------------------------------2nd Call
- $cpmQuery[$advvalue] = "$apiCallto?since=".$since."&until=".$until."&event_name=fb_ad_network_imp&aggregateBy=COUNT&breakdowns[0]=placement&access_token=".$accessTokenAppInsight[$advvalue];
- //echo $cpmQuery[$advvalue].'</br>';
- //$estimatedcpmQuery[$advvalue] = "$apiCallto?since=".$since."&until=".$until."&event_name=fb_ad_network_cpm&aggregateBy=SUM&breakdowns[0]=placement&access_token=".$accessTokenAppInsight[$advvalue];
- //echo $estimatedcpmQuery[$advvalue];
- //die();
- $cpmArray = getCurlResponse($cpmQuery[$advvalue]);
- //print_r($cpmArray);exit;
- if(isset($cpmArray['error'])){
- $logdetail[$advvalue]['fb_ad_network_imp']['error'] = 1;
- $logdetail[$advvalue]['fb_ad_network_imp']['errormessage'] = $cpmArray['error']['message'];
- }
- if(isset($cpmArray['data'])){
- $logdetail[$advvalue]['fb_ad_network_imp']['success'] = 1;
- $logdetail[$advvalue]['fb_ad_network_imp']['total_data'] = count($cpmArray['data']);
- }
- if(!isset($cpmArray['error']) && isset($cpmArray['data']) && !empty($cpmArray['data'])){
- }
- $fillReqQuery[$advvalue] = "$apiCallto?since=".$since."&until=".$until."&event_name=fb_ad_network_request&aggregateBy=SUM&breakdowns[0]=placement&access_token=".$accessTokenAppInsight[$advvalue];
- $fillReqArray = getCurlResponse($fillReqQuery[$advvalue]);
- //print_r($fillReqArray);exit;
- if(isset($fillReqArray['error'])){
- $logdetail[$advvalue]['fb_ad_network_request']['error'] = 1;
- $logdetail[$advvalue]['fb_ad_network_request']['errormessage'] = $fillReqArray['error']['message'];
- }
- if(isset($fillReqArray['data'])){
- $logdetail[$advvalue]['fb_ad_network_request']['success'] = 1;
- $logdetail[$advvalue]['fb_ad_network_request']['total_data'] = count($fillReqArray['data']);
- }
- if(!isset($fillReqArray['error']) && isset($fillReqArray['data']) && !empty($fillReqArray['data'])){
- }
- //--------------------------------------------------------3rd Call
- $marketingQuery[$advvalue] = "https://graph.facebook.com/v2.12/act_".$fb_acc_ID[$advvalue]."/insights?fields=account_id,account_name,campaign_id,campaign_name,adset_id,adset_name,ad_id,ad_name,spend,cost_per_inline_link_click,ctr,clicks&time_ranges=".$timerangestring."&level=ad&limit=300&access_token=".$accessTokenApiMarketing[$advvalue];
- //echo $marketingQuery[$advvalue].'</br>';
- $mArray = getCurlResponse($marketingQuery[$advvalue]);
- //echo "start1";
- //print_r($mArray);
- //echo "end1";
- if(isset($mArray['error'])){
- $logdetail[$advvalue]['marketing_api']['error'] = 1;
- $logdetail[$advvalue]['marketing_api']['errormessage'] = $mArray['error']['message'];
- }
- if(isset($mArray['data'])){
- $logdetail[$advvalue]['marketing_api']['success'] = 1;
- $logdetail[$advvalue]['marketing_api']['total_data'] = count($mArray['data']);
- }
- $marketingArray[$advvalue] = $mArray;
- if(!isset($mArray['error']) && isset($mArray['data']) && !empty($mArray['data'])){
- }
- /*$isfbplacementdata_deleted = mysqli_query($mysqli,"DELETE FROM fb_placement where fb_ac_id = '".$mysqli->real_escape_string($fb_acc_ID[$advvalue])."' and fb_date>='".$mysqli->real_escape_string($startDate)."' and fb_date<='".$mysqli->real_escape_string($endDate)."'")
- or die(mysqli_error($mysqli));*/
- $delQuery = "DELETE FROM fb_placement where fb_ac_id = '".$mysqli->real_escape_string($fb_acc_ID[$advvalue])."' and fb_date>='".$mysqli->real_escape_string($startDate)."' and fb_date<='".$mysqli->real_escape_string($endDate)."'";
- $isfbplacementdata_deleted = mysqli_query($mysqli, $delQuery) or die(mysqli_error($mysqli));
- $logdetail[$advvalue]['account'] = $fb_acc_ID[$advvalue];
- $logdetail[$advvalue]['start_date'] = $startDate;
- $logdetail[$advvalue]['end_date'] = $endDate;
- $logdetail[$advvalue]['placement_query'] = $delQuery;
- //--------------------------------------------------------storing data to db
- if(!isset($revenuArray['error']) && !isset($cpmArray['error']) && isset($revenuArray['data']) && !empty($revenuArray['data']) && isset($cpmArray['data']) && !empty($cpmArray['data'])){
- $cpm_placementdetail = array();
- $cpm_placementdetail['fb_placement'] = array();
- for($i=0; $i<count($cpmArray['data']); $i++){
- if(!in_array($cpmArray['data'][$i]['breakdowns']['placement'], $cpm_placementdetail['fb_placement'])){
- $cpm_placementdetail['fb_placement'][$i] = $cpmArray['data'][$i]['breakdowns']['placement'];
- }
- $cpm_placementdetail[$cpmArray['data'][$i]['breakdowns']['placement']]['value'][$i] = $cpmArray['data'][$i]['value'];
- $cpm_placementdetail[$cpmArray['data'][$i]['breakdowns']['placement']]['time'][$i] = (new \DateTime(($cpmArray['data'][$i]['time'])))->format("Y-m-d");
- }
- $fillreq_placementdetail = array();
- $fillreq_placementdetail['fb_placement'] = array();
- for($i=0; $i<count($fillReqArray['data']); $i++){
- if(!in_array($fillReqArray['data'][$i]['breakdowns']['placement'], $cpm_placementdetail['fb_placement'])){
- $fillreq_placementdetail['fb_placement'][$i] = $fillReqArray['data'][$i]['breakdowns']['placement'];
- }
- $fillreq_placementdetail[$fillReqArray['data'][$i]['breakdowns']['placement']]['value'][$i] = $fillReqArray['data'][$i]['value'];
- $fillreq_placementdetail[$fillReqArray['data'][$i]['breakdowns']['placement']]['time'][$i] = (new \DateTime(($fillReqArray['data'][$i]['time'])))->format("Y-m-d");
- }
- $insertRev = "";
- $placementdetail = array();
- for($i=0; $i<count($revenuArray['data']); $i++){
- if(isset($cpm_placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']])){
- $kkey = array_search((new \DateTime(($revenuArray['data'][$i]['time'])))->format("Y-m-d") , $cpm_placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['time']);
- if($kkey){
- $placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_imp'][$i] = $cpm_placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['value'][$kkey];
- }
- else {
- $placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_imp'][$i] = "0.00";
- }
- }
- else {
- $placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_imp'][$i] = "0.00";
- }
- if(isset($fillreq_placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']])){
- $fillkey = array_search((new \DateTime(($revenuArray['data'][$i]['time'])))->format("Y-m-d") , $fillreq_placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['time']);
- if($kkey){
- $placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_fill'][$i] = $fillreq_placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['value'][$fillkey];
- }
- else {
- $placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_fill'][$i] = "0.00";
- }
- }
- else {
- $placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_fill'][$i] = "0.00";
- }
- /* @$insertRev.= "('".$mysqli->real_escape_string($fb_acc_ID[$advvalue])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['breakdowns']['placement'])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['value'])."','".$mysqli->real_escape_string($cpmArray['data'][$i]['value'])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['time'])."'),";*/
- /*@$insertRev.= "('".$mysqli->real_escape_string($fb_acc_ID[$advvalue])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['breakdowns']['placement'])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['value'])."','".$mysqli->real_escape_string($placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_imp'][$i])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['time'])."'),";*/
- if($revenuArray['data'][$i]['time']>=$startDate){
- @$insertRev.= "('".$mysqli->real_escape_string($fb_acc_ID[$advvalue])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['breakdowns']['placement'])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['value'])."','".$mysqli->real_escape_string($placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_imp'][$i])."','".$mysqli->real_escape_string($placementdetail[$revenuArray['data'][$i]['breakdowns']['placement']]['fb_fill'][$i])."','".$mysqli->real_escape_string($revenuArray['data'][$i]['time'])."','".$mysqli->real_escape_string($currentDtTime)."'),";
- }
- }
- $isfbplacementdata_added = mysqli_query($mysqli,"INSERT INTO fb_placement (fb_ac_id, fb_placement, fb_revenue, fb_imp, fb_fill, fb_date, created) VALUES ".trim(@$insertRev,",")) or die(mysqli_error($mysqli));
- }
- //$isfballdata_deleted = mysqli_query($mysqli,"DELETE FROM fb_all_data where fb_ac_id = '".$mysqli->real_escape_string($fb_acc_ID[$advvalue])."' and date_stop>='".$mysqli->real_escape_string($startDate)."' and date_stop<='".$mysqli->real_escape_string($endDate)."'") or die(mysqli_error($mysqli));
- $dataQuery = "DELETE FROM fb_all_data where fb_ac_id = '".$mysqli->real_escape_string($fb_acc_ID[$advvalue])."' and date_stop>='".$mysqli->real_escape_string($startDate)."' and date_stop<='".$mysqli->real_escape_string($endDate)."'";
- $isfballdata_deleted = mysqli_query($mysqli , $dataQuery) or die(mysqli_error($mysqli));
- $logdetail[$advvalue]['data_query'] = $dataQuery;
- if(!isset($mArray['error']) && isset($mArray['data']) && !empty($mArray['data'])){
- $insertMdata = "";
- foreach($mArray['data'] as $campaign){
- $budgetQuery = "https://graph.facebook.com/v2.12/".$campaign['adset_id']."?fields=status,daily_budget,lifetime_budget,name&access_token=".$accessTokenApiMarketing[$advvalue];
- $bArray = getCurlResponse($budgetQuery);
- //print_r($bArray);
- if(isset($bArray['daily_budget'])){
- $daily_budget = ($bArray['daily_budget']/100);
- }
- else {
- $daily_budget = "";
- }
- if(isset($bArray['lifetime_budget'])){
- $lifetime_budget = $bArray['lifetime_budget'];
- }
- else {
- $lifetime_budget = "";
- }
- /* fixer.io GBP->EUR->USD version */
- /*
- $access_key = ''; //fixer.io API Access Key
- $GBP_USD = getCurlResponse('http://data.fixer.io/latest?access_key='.$access_key.'&symbols=USD,GBP');
- if(!empty($GBP_USD['rates']['USD']) && !empty($GBP_USD['rates']['GBP'])) $GBP_USD = $GBP_USD['rates']['USD'] / $GBP_USD['rates']['GBP'];
- else {
- if(!empty($GBP_USD['error']['info'])) exit('Fixer.io API error: '.$GBP_USD['error']['info']);
- else exit('Fixer.io API error');
- }
- $campaign['spend'] *= $GBP_USD;
- */
- /* Changes 03.06.2018 */
- $GBP_USD = getCurlResponse('https://free.currencyconverterapi.com/api/v5/convert?q=GBP_USD&compact=y');
- if(!empty($GBP_USD['GBP_USD']['val'])) $GBP_USD = $GBP_USD['GBP_USD']['val'];
- else exit('CurrencyConverterAPI.com API error');
- $campaign['spend'] *= $GBP_USD;
- /* Changes 03.06.2018 */
- @$insertMdata.= "('".$mysqli->real_escape_string($campaign['account_id'])."','".$mysqli->real_escape_string($campaign['account_name'])."','".$mysqli->real_escape_string($campaign['campaign_id'])."','".$mysqli->real_escape_string($campaign['campaign_name'])."','".$mysqli->real_escape_string($campaign['adset_id'])."','".$mysqli->real_escape_string($campaign['adset_name'])."','".$mysqli->real_escape_string($campaign['ad_id'])."','".$mysqli->real_escape_string($campaign['ad_name'])."','".$mysqli->real_escape_string($campaign['spend'])."','".$mysqli->real_escape_string($campaign['cost_per_inline_link_click'])."','".$mysqli->real_escape_string($campaign['ctr'])."','".$mysqli->real_escape_string($campaign['date_start'])."','".$mysqli->real_escape_string($campaign['date_stop'])."' ,'".$mysqli->real_escape_string($daily_budget)."' ,'".$mysqli->real_escape_string($lifetime_budget)."','".$mysqli->real_escape_string($campaign['clicks'])."','".$mysqli->real_escape_string($currentDtTime)."'),";
- }
- $isfballdata_added = mysqli_query($mysqli,"INSERT INTO fb_all_data (fb_ac_id, fb_ac_name, fb_camp_id, fb_camp_name, fb_adset_id, fb_ad_set_name, fb_ad_id, fb_ad_name, fb_spend, fb_cpil_click, fb_ctr, date_start, date_stop, daily_budget, lifetime_budget, ad_clicks, created) VALUES ".trim(@$insertMdata,",")) or die(mysqli_error($mysqli));
- }
- //die("test1");
- }
- if(!empty($logdetail)){
- $message = "Hi Admin,";
- $prefix = "";
- foreach($logdetail as $logkey=>$logvalue){
- $val = "";
- if($logvalue['marketing_api']['error']==1){
- $val.= "<div><b>Marketing api error:</b> ".$logvalue['marketing_api']['errormessage']."</div><div style='height:10px'> </div>";
- }
- if($logvalue['fb_ad_network_request']['error']==1){
- $val.= "<div><b>Ad network api error:</b> ".$logvalue['fb_ad_network_request']['errormessage']."</div><div style='height:10px'> </div>";
- }
- if($logvalue['fb_ad_network_imp']['error']==1){
- $val.= "<div><b>Ad network impression api error:</b> ".$logvalue['fb_ad_network_imp']['errormessage']."</div><div style='height:10px'> </div>";
- }
- if($logvalue['fb_ad_network_revenue']['error']==1){
- $val.= "<div><b>Audiene network api error:</b> ".$logvalue['fb_ad_network_revenue']['errormessage']."</div><div style='height:10px'> </div>";
- }
- if($val!=""){
- $prefix.= "<div style='margin-top:10px'>System could not get the data for the advert account <b>'".$logvalue['advert_name']."'</b> due to the following error(s) receieved from the API: </div><div style='height:10px'> </div>";
- $prefix = $prefix."</br>".$val."</br>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";
- }
- }
- if($prefix!=""){
- $message.=$prefix."<div style='height:10px'> </div><div style='height:10px'>Thanks</div>";
- cron_notification($message);
- }
- }
- $islogs_added = mysqli_query($mysqli , "INSERT INTO logs (type, detail, created) VALUES ('campaigndetail_cron' , '".$mysqli->real_escape_string(json_encode($logdetail))."' , '".date('Y-m-d h:i:s')."')") or die(mysqli_error($mysqli));
- if(isset($_REQUEST['url']) && !empty($_REQUEST['url']) && trim($_REQUEST['url'])!=""){
- $urldata = explode("url=", $_SERVER['REQUEST_URI']);
- header("Location:".$urldata[1]);
- exit;
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement