122 lines
4.5 KiB
PHP
122 lines
4.5 KiB
PHP
<?php
|
|
namespace App\Controllers\Advertisement;
|
|
|
|
use App\Controllers\BaseController;
|
|
use App\ThirdParty\googleads_api\ZenithGG;
|
|
use CodeIgniter\CLI\CLI;
|
|
use Config\Paths;
|
|
use DateInterval;
|
|
use DatePeriod;
|
|
|
|
class GoogleAds extends BaseController
|
|
{
|
|
private $chainsaw;
|
|
|
|
public function __construct(...$param)
|
|
{
|
|
$this->chainsaw = new ZenithGG();
|
|
}
|
|
|
|
public function getAccounts()
|
|
{
|
|
CLI::clearScreen();
|
|
CLI::write("광고계정 수신을 진행합니다.", "light_red");
|
|
$this->chainsaw->getAccounts();
|
|
CLI::write("광고계정 업데이트 완료", "yellow");
|
|
}
|
|
|
|
public function getReports($date=null, $edate=null) {
|
|
CLI::clearScreen();
|
|
if($date == null)
|
|
$date = CLI::prompt("리포트를 수신할 기간 중 시작날짜를 입력해주세요.", date('Y-m-d'));
|
|
if($edate == null)
|
|
$edate = CLI::prompt("리포트를 수신할 기간 중 종료날짜를 입력해주세요.", $date);
|
|
// $run = CLI::prompt("광고데이터를 ".($all=="true"?"포함":"미포함")."하여 {$date} ~ {$edate} 기간의 인사이트를 수신합니다.",["y","n"]);
|
|
// if($run != 'y') return false;
|
|
$this->chainsaw->getReports($date, $edate);
|
|
CLI::write("데이터 수신이 완료되었습니다.", "yellow");
|
|
$this->chainsaw->getAdsUseLanding($date);
|
|
}
|
|
|
|
public function getAll()
|
|
{
|
|
CLI::clearScreen();
|
|
CLI::write("계정/계정예산/에셋/캠페인/그룹/소재/보고서 업데이트를 진행합니다.", "light_red");
|
|
$result = $this->chainsaw->getAll();
|
|
CLI::write("계정/계정예산/에셋/캠페인/그룹/소재/보고서 업데이트 완료", "yellow");
|
|
// $paths = new Paths();
|
|
// $log_file = fopen($paths->writableDirectory . '/logs/GoogleAdsGetAll.txt', 'a');
|
|
// fwrite($log_file, $result . "\r\n\r\n");
|
|
// fclose($log_file);
|
|
}
|
|
public function getAdSchedules() {
|
|
$result = $this->chainsaw->getAdSchedules();
|
|
}
|
|
|
|
public function updateDB($sdate = null, $edate = null) {
|
|
CLI::clearScreen();
|
|
$cliArgs = CLI::getOptions();
|
|
$is_result = false;
|
|
$ids = [];
|
|
if (isset($cliArgs['result'])) {
|
|
$is_result = $cliArgs['result'];
|
|
}
|
|
if (isset($cliArgs['ids'])) {
|
|
$ids = $cliArgs['ids'];
|
|
}
|
|
if($sdate == null) {
|
|
$sdate = CLI::prompt("유효DB 업데이트 할 시작날짜를 입력해주세요.", date('Y-m-d'));
|
|
}
|
|
if($edate == null) {
|
|
$edate = CLI::prompt("유효DB 업데이트 할 종료날짜를 입력해주세요.", $sdate);
|
|
}
|
|
if(!empty($ids)) {
|
|
$ids = explode(',', $ids);
|
|
}
|
|
$sdate = date_create($sdate);
|
|
$edate = date_create(date('Y-m-d', strtotime($edate.'+1 days')));
|
|
$interval = DateInterval::createFromDateString('1 day');
|
|
$date_range = new DatePeriod($sdate, $interval, $edate);
|
|
foreach($date_range as $date) {
|
|
$date = $date->format('Y-m-d');
|
|
CLI::write("{$date} 유효DB를 업데이트 합니다.", "light_red");
|
|
$result = $this->chainsaw->getAdsUseLanding($date, $ids);
|
|
if($is_result) print_r($result);
|
|
}
|
|
}
|
|
|
|
public function getReport() {
|
|
$accounts = [
|
|
['manageCustomer'=> 7792262348,'customerId'=>4658512480]
|
|
];
|
|
$this->chainsaw->getReports('2024-05-31', '2024-05-31', $accounts);
|
|
}
|
|
|
|
public function getCampaign() {
|
|
$campaigns = $this->chainsaw->getCampaigns('7792262348', '1705230747', '20870581914');
|
|
dd($campaigns);
|
|
}
|
|
|
|
public function getCriterion() {
|
|
// $campaigns = $this->chainsaw->getCriterions('7792262348', '1705230747', '20870581914');
|
|
// $campaigns = $this->chainsaw->getCriterions('7792262348', '8023466215', '20999659346');
|
|
$campaigns = $this->chainsaw->getCriterions('7792262348', '9049844350', '20979863645');
|
|
dd($campaigns);
|
|
}
|
|
|
|
public function getAdGroups() {
|
|
$adgroups = $this->chainsaw->getAdGroups('5980790227', '3931611101', '20581900068');
|
|
dd($adgroups);
|
|
}
|
|
|
|
public function getAds() {
|
|
$ads = $this->chainsaw->getAds('5980790227', '3288458378', '130392657290', '2023-12-22');
|
|
dd($ads);
|
|
}
|
|
|
|
public function getData() {
|
|
$getAll = $this->chainsaw->getAll(null, [['manageCustomer'=>7177486093, 'customerId'=>9604111811]]);
|
|
dd($getAll);
|
|
}
|
|
}
|