增加广告landing_page表; google广告每天成效原始表增加指标
This commit is contained in:
parent
249c12e92c
commit
2094a49b67
@ -88,7 +88,6 @@ class GoogleAdsAdService extends BaseService
|
|||||||
return $groupAdsResourceName;
|
return $groupAdsResourceName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在数据库中保存广告信息
|
* 在数据库中保存广告信息
|
||||||
* @param $groupadsResourceName
|
* @param $groupadsResourceName
|
||||||
@ -101,20 +100,20 @@ class GoogleAdsAdService extends BaseService
|
|||||||
foreach ($groupadsResourceName as $data) {
|
foreach ($groupadsResourceName as $data) {
|
||||||
// 构建 SQL 语句,添加 ad_type 和 metadata
|
// 构建 SQL 语句,添加 ad_type 和 metadata
|
||||||
$sql = "INSERT INTO {$tableName}
|
$sql = "INSERT INTO {$tableName}
|
||||||
(ad_id, ad_set_id, campaign_id, account_id, name, status, metadata,platform_type, last_sync_time, update_at)
|
(ad_id, ad_set_id, campaign_id, account_id, name, status, metadata, platform_type, last_sync_time, update_at)
|
||||||
VALUES
|
VALUES
|
||||||
(:ad_id, :ad_group_id, :campaign_id, :customer_id, :ad_name, :status, :metadata, 2, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
(:ad_id, :ad_group_id, :campaign_id, :customer_id, :ad_name, :status, :metadata, 2, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
||||||
ON CONFLICT (platform_type,ad_id)
|
ON CONFLICT (platform_type, ad_id)
|
||||||
DO UPDATE SET
|
DO UPDATE SET
|
||||||
ad_set_id = EXCLUDED.ad_set_id,
|
ad_set_id = EXCLUDED.ad_set_id,
|
||||||
campaign_id = EXCLUDED.campaign_id,
|
campaign_id = EXCLUDED.campaign_id,
|
||||||
account_id = EXCLUDED.account_id,
|
account_id = EXCLUDED.account_id,
|
||||||
name = EXCLUDED.name,
|
name = EXCLUDED.name,
|
||||||
status = EXCLUDED.status,
|
status = EXCLUDED.status,
|
||||||
metadata = EXCLUDED.metadata,
|
metadata = EXCLUDED.metadata,
|
||||||
last_sync_time = CURRENT_TIMESTAMP, -- 使用当前时间戳
|
last_sync_time = CURRENT_TIMESTAMP, -- 使用当前时间戳
|
||||||
update_at = CURRENT_TIMESTAMP -- 使用当前时间戳
|
update_at = CURRENT_TIMESTAMP -- 使用当前时间戳
|
||||||
WHERE {$tableName}.platform_type = 2";
|
WHERE {$tableName}.platform_type = 2";
|
||||||
|
|
||||||
// 绑定数据
|
// 绑定数据
|
||||||
$bindData = [
|
$bindData = [
|
||||||
@ -125,14 +124,67 @@ class GoogleAdsAdService extends BaseService
|
|||||||
'ad_name' => $data['ad_name'],
|
'ad_name' => $data['ad_name'],
|
||||||
'status' => $data['status'],
|
'status' => $data['status'],
|
||||||
'metadata' => $data['metadata'],
|
'metadata' => $data['metadata'],
|
||||||
|
// 'display_url' => $data['display_url'] ?? '', // 新增字段,默认值为空字符串
|
||||||
|
// 'final_app_urls' => self::toPgArray($data['final_app_urls']), // 新增字段,默认值为空数组
|
||||||
|
// 'final_mobile_urls' => self::toPgArray($data['final_mobile_urls']), // 新增字段,默认值为空数组
|
||||||
|
// 'final_url_suffix' => $data['final_url_suffix'] ?? '', // 新增字段,默认值为空字符串
|
||||||
|
// 'final_urls' => self::toPgArray($data['final_urls']), // 新增字段,默认值为空数组
|
||||||
];
|
];
|
||||||
|
|
||||||
// 执行 SQL 插入语句
|
// 执行 SQL 插入语句
|
||||||
ThinkDb::execute($sql, $bindData);
|
ThinkDb::execute($sql, $bindData);
|
||||||
|
// 处理 final_app_urls、final_mobile_urls 和 final_urls
|
||||||
|
self::saveLandingUrls($data['ad_id'], $data['customer_id'], $data['final_app_urls'] ?? [], 'app');
|
||||||
|
self::saveLandingUrls($data['ad_id'], $data['customer_id'], $data['final_mobile_urls'] ?? [], 'mobile');
|
||||||
|
self::saveLandingUrls($data['ad_id'], $data['customer_id'], $data['final_urls'] ?? [], 'web');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将 URL 数组存储到 bps_ads_landing_url 表中
|
||||||
|
*
|
||||||
|
* @param string $adId 广告 ID
|
||||||
|
* @param string $accountId 账户 ID
|
||||||
|
* @param array $urls URL 数组
|
||||||
|
* @param string $landingAccess 落地类型(如 'app', 'mobile', 'web')
|
||||||
|
*/
|
||||||
|
private static function saveLandingUrls($adId, $accountId, $urls, $landingAccess)
|
||||||
|
{
|
||||||
|
if (empty($urls)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$tableName = 'bps.bps_ads_landing_url';
|
||||||
|
$platformType = 2; // Google Ads 平台类型
|
||||||
|
|
||||||
|
foreach ($urls as $url) {
|
||||||
|
// 构建 SQL 语句,插入或更新 URL 数据
|
||||||
|
$sql = "INSERT INTO {$tableName}
|
||||||
|
(landing_url, landing_access, ad_id, account_id, last_sync_time, platform_type, create_at, update_at)
|
||||||
|
VALUES
|
||||||
|
(:landing_url, :landing_access, :ad_id, :account_id, CURRENT_TIMESTAMP, :platform_type, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
||||||
|
ON CONFLICT (platform_type, landing_url)
|
||||||
|
DO UPDATE SET
|
||||||
|
landing_access = EXCLUDED.landing_access,
|
||||||
|
ad_id = EXCLUDED.ad_id,
|
||||||
|
account_id = EXCLUDED.account_id,
|
||||||
|
last_sync_time = CURRENT_TIMESTAMP,
|
||||||
|
update_at = CURRENT_TIMESTAMP";
|
||||||
|
|
||||||
|
// 绑定数据
|
||||||
|
$bindData = [
|
||||||
|
'landing_url' => $url,
|
||||||
|
'landing_access' => $landingAccess,
|
||||||
|
'ad_id' => $adId,
|
||||||
|
'account_id' => $accountId,
|
||||||
|
'platform_type' => $platformType,
|
||||||
|
];
|
||||||
|
|
||||||
|
// 执行 SQL 插入或更新 URL 数据
|
||||||
|
ThinkDb::execute($sql, $bindData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在数据库中保存广告信息
|
* 在数据库中保存广告信息
|
||||||
* @param $groupadsResourceName
|
* @param $groupadsResourceName
|
||||||
@ -297,7 +349,12 @@ class GoogleAdsAdService extends BaseService
|
|||||||
ad_group_ad.ad.responsive_display_ad.square_logo_images,
|
ad_group_ad.ad.responsive_display_ad.square_logo_images,
|
||||||
ad_group_ad.ad.responsive_display_ad.marketing_images,
|
ad_group_ad.ad.responsive_display_ad.marketing_images,
|
||||||
ad_group_ad.ad.responsive_display_ad.square_marketing_images,
|
ad_group_ad.ad.responsive_display_ad.square_marketing_images,
|
||||||
ad_group_ad.ad.responsive_display_ad.youtube_videos
|
ad_group_ad.ad.responsive_display_ad.youtube_videos,
|
||||||
|
ad_group_ad.ad.display_url, -- 新增字段
|
||||||
|
ad_group_ad.ad.final_app_urls, -- 新增字段
|
||||||
|
ad_group_ad.ad.final_mobile_urls, -- 新增字段
|
||||||
|
ad_group_ad.ad.final_url_suffix, -- 新增字段
|
||||||
|
ad_group_ad.ad.final_urls -- 新增字段
|
||||||
FROM ad_group_ad
|
FROM ad_group_ad
|
||||||
WHERE
|
WHERE
|
||||||
ad_group_ad.status != 'REMOVED' ";
|
ad_group_ad.status != 'REMOVED' ";
|
||||||
@ -315,16 +372,27 @@ class GoogleAdsAdService extends BaseService
|
|||||||
// $finalUrlsList = $googleAdsRow->getAdGroupAd()->getAd()->getFinalUrls();
|
// $finalUrlsList = $googleAdsRow->getAdGroupAd()->getAd()->getFinalUrls();
|
||||||
// 将最终的 URL 列表转换为 PHP 数组
|
// 将最终的 URL 列表转换为 PHP 数组
|
||||||
// $finalUrlsArray = iterator_to_array($finalUrlsList);
|
// $finalUrlsArray = iterator_to_array($finalUrlsList);
|
||||||
|
$finalAppUrls = iterator_to_array($googleAdsRow->getAdGroupAd()->getAd()->getFinalAppUrls());
|
||||||
|
$finalMobileUrls = iterator_to_array($googleAdsRow->getAdGroupAd()->getAd()->getFinalMobileUrls());
|
||||||
|
$finalUrls = iterator_to_array($googleAdsRow->getAdGroupAd()->getAd()->getFinalUrls());
|
||||||
|
|
||||||
$resourceName = [];
|
$resourceName = [];
|
||||||
$resourceName['ad_id'] = $googleAdsRow->getAdGroupAd()->getAd()->getId();
|
$resourceName['ad_id'] = $googleAdsRow->getAdGroupAd()->getAd()->getId();
|
||||||
$resourceName['ad_name'] = $googleAdsRow->getAdGroupAd()->getAd()->getName();
|
$resourceName['ad_name'] = $googleAdsRow->getAdGroupAd()->getAd()->getName();
|
||||||
$resourceName['ad_group_id'] = $googleAdsRow->getAdGroup()->getId();
|
$resourceName['ad_group_id'] = $googleAdsRow->getAdGroup()->getId();
|
||||||
$resourceName['campaign_id'] = $googleAdsRow->getCampaign()->getId();
|
$resourceName['campaign_id'] = $googleAdsRow->getCampaign()->getId();
|
||||||
$resourceName['customer_id'] = $googleAdsRow->getCustomer()->getId();
|
$resourceName['customer_id'] = $googleAdsRow->getCustomer()->getId();
|
||||||
|
// 新增字段
|
||||||
|
|
||||||
|
$resourceName['display_url'] = $googleAdsRow->getAdGroupAd()->getAd()->getDisplayUrl();
|
||||||
|
$resourceName['final_app_urls'] = $finalAppUrls;
|
||||||
|
$resourceName['final_mobile_urls'] = $finalMobileUrls;
|
||||||
|
$resourceName['final_url_suffix'] = $googleAdsRow->getAdGroupAd()->getAd()->getFinalUrlSuffix();
|
||||||
|
$resourceName['final_urls'] = $finalUrls;
|
||||||
// $resourceName['final_urls'] = $finalUrlsArray;
|
// $resourceName['final_urls'] = $finalUrlsArray;
|
||||||
$resourceName['status'] = $googleAdsRow->getAdGroupAd()->getStatus();
|
$resourceName['status'] = $googleAdsRow->getAdGroupAd()->getStatus();
|
||||||
// $resourceName['resource_name'] = $googleAdsRow->getAdGroupAd()->getAd()->getResourceName();
|
// $resourceName['resource_name'] = $googleAdsRow->getAdGroupAd()->getAd()->getResourceName();
|
||||||
$adType = $googleAdsRow->getAdGroupAd()->getAd()->getType();
|
$adType = $googleAdsRow->getAdGroupAd()->getAd()->getType();
|
||||||
//ad_type 19=> RESPONSIVE_DISPLAY_AD 自适应展示广告 详细看model定义
|
//ad_type 19=> RESPONSIVE_DISPLAY_AD 自适应展示广告 详细看model定义
|
||||||
if ($adType === 19) {
|
if ($adType === 19) {
|
||||||
// 获取 squareMarketingImages 中的每个 asset
|
// 获取 squareMarketingImages 中的每个 asset
|
||||||
|
@ -203,7 +203,7 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
public function runListCampaigns(int $customerId, $options): mixed
|
public function runListCampaigns(int $customerId, $options): mixed
|
||||||
{
|
{
|
||||||
|
|
||||||
$googleAdsClient = new GoogleAdsClientService($options['refresh_token'], $options['login_customer_id']);
|
$googleAdsClient = new GoogleAdsClientService($options['refresh_token'], $options['login_customer_id']);
|
||||||
// $campaignsResourceName = self::getCampaigns($googleAdsClient->getGoogleAdsClientWithloginCustomerId(), $customerId);
|
// $campaignsResourceName = self::getCampaigns($googleAdsClient->getGoogleAdsClientWithloginCustomerId(), $customerId);
|
||||||
$campaignsResourceName = self::getCampaignsNew($googleAdsClient->getGoogleAdsClientWithloginCustomerId(), $customerId);
|
$campaignsResourceName = self::getCampaignsNew($googleAdsClient->getGoogleAdsClientWithloginCustomerId(), $customerId);
|
||||||
// dump(json_encode($campaignsResourceName));
|
// dump(json_encode($campaignsResourceName));
|
||||||
@ -220,7 +220,7 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws ApiException
|
* @throws ApiException
|
||||||
*/
|
*/
|
||||||
public function runListDateDatas($customerId,$options, $date): mixed
|
public function runListDateDatas($customerId, $options, $date): mixed
|
||||||
{
|
{
|
||||||
|
|
||||||
// $googleAdsClient = $this->googleAdsClient;
|
// $googleAdsClient = $this->googleAdsClient;
|
||||||
@ -281,11 +281,11 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
// $googleAdsRow->getCampaignBudget()->getName(),
|
// $googleAdsRow->getCampaignBudget()->getName(),
|
||||||
// PHP_EOL
|
// PHP_EOL
|
||||||
// );
|
// );
|
||||||
$resourceName['campaign_id'] = $googleAdsRow->getCampaign()->getId();
|
$resourceName['campaign_id'] = $googleAdsRow->getCampaign()->getId();
|
||||||
$resourceName['campaign_name'] = $googleAdsRow->getCampaign()->getName();
|
$resourceName['campaign_name'] = $googleAdsRow->getCampaign()->getName();
|
||||||
$resourceName['status'] = $googleAdsRow->getCampaign()->getStatus();
|
$resourceName['status'] = $googleAdsRow->getCampaign()->getStatus();
|
||||||
$resourceName['customer_id'] = $googleAdsRow->getCustomer()->getId();
|
$resourceName['customer_id'] = $googleAdsRow->getCustomer()->getId();
|
||||||
$resourceNames[] = $resourceName;
|
$resourceNames[] = $resourceName;
|
||||||
}
|
}
|
||||||
return $resourceNames;
|
return $resourceNames;
|
||||||
}
|
}
|
||||||
@ -370,8 +370,44 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
|
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
|
||||||
|
|
||||||
// Creates a query that retrieves all campaigns.
|
// Creates a query that retrieves all campaigns.
|
||||||
$query = "SELECT ad_group_ad.ad.id, ad_group_ad.ad.name, ad_group_ad.ad.resource_name, ad_group.id, campaign.id, customer.id, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.impressions FROM ad_group_ad WHERE segments.date = '{$date}' ORDER BY ad_group.id ASC LIMIT 10000";
|
// $query = "SELECT ad_group_ad.ad.id, ad_group_ad.ad.name, ad_group_ad.ad.resource_name, ad_group.id, campaign.id, customer.id, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.impressions FROM ad_group_ad WHERE segments.date = '{$date}' ORDER BY ad_group.id ASC LIMIT 10000";
|
||||||
|
$query = "SELECT
|
||||||
|
ad_group_ad.ad.id,
|
||||||
|
ad_group_ad.ad.name,
|
||||||
|
ad_group_ad.ad.resource_name,
|
||||||
|
ad_group.id,
|
||||||
|
campaign.id,
|
||||||
|
customer.id,
|
||||||
|
metrics.clicks,
|
||||||
|
metrics.cost_micros,
|
||||||
|
metrics.conversions,
|
||||||
|
metrics.conversions_value,
|
||||||
|
metrics.impressions,
|
||||||
|
metrics.interactions,-- 新增字段
|
||||||
|
metrics.orders,-- 新增字段
|
||||||
|
metrics.revenue_micros,-- 新增字段
|
||||||
|
metrics.value_per_all_conversions,-- 新增字段
|
||||||
|
metrics.value_per_all_conversions_by_conversion_date,-- 新增字段
|
||||||
|
metrics.value_per_conversion,-- 新增字段
|
||||||
|
metrics.value_per_conversions_by_conversion_date,-- 新增字段
|
||||||
|
metrics.video_quartile_p25_rate,-- 新增字段
|
||||||
|
metrics.video_quartile_p50_rate,-- 新增字段
|
||||||
|
metrics.video_quartile_p75_rate,-- 新增字段
|
||||||
|
metrics.video_quartile_p100_rate,-- 新增字段
|
||||||
|
metrics.video_view_rate,-- 新增字段
|
||||||
|
metrics.video_views,-- 新增字段
|
||||||
|
metrics.view_through_conversions -- 新增字段
|
||||||
|
FROM
|
||||||
|
ad_group_ad
|
||||||
|
WHERE
|
||||||
|
segments.date = '{$date}'
|
||||||
|
ORDER BY
|
||||||
|
ad_group.id ASC
|
||||||
|
LIMIT 10000
|
||||||
|
";
|
||||||
|
|
||||||
// dump($query);return;
|
// dump($query);return;
|
||||||
|
|
||||||
// Issues a search stream request.
|
// Issues a search stream request.
|
||||||
/** @var GoogleAdsServerStreamDecorator $stream */
|
/** @var GoogleAdsServerStreamDecorator $stream */
|
||||||
$stream = $googleAdsServiceClient->searchStream(
|
$stream = $googleAdsServiceClient->searchStream(
|
||||||
@ -397,7 +433,21 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
$resourceName['month'] = $month;
|
$resourceName['month'] = $month;
|
||||||
$resourceName['season'] = $season;
|
$resourceName['season'] = $season;
|
||||||
$resourceName['year'] = $year;
|
$resourceName['year'] = $year;
|
||||||
|
// 新增字段
|
||||||
|
$resourceName['interactions'] = $googleAdsRow->getMetrics()->getInteractions();
|
||||||
|
$resourceName['orders'] = $googleAdsRow->getMetrics()->getOrders();
|
||||||
|
$resourceName['revenue_micros'] = $googleAdsRow->getMetrics()->getRevenueMicros();
|
||||||
|
$resourceName['value_per_all_conversions'] = $googleAdsRow->getMetrics()->getValuePerAllConversions();
|
||||||
|
$resourceName['value_per_all_conversions_by_conversion_date'] = $googleAdsRow->getMetrics()->getValuePerAllConversionsByConversionDate();
|
||||||
|
$resourceName['value_per_conversion'] = $googleAdsRow->getMetrics()->getValuePerConversion();
|
||||||
|
$resourceName['value_per_conversions_by_conversion_date'] = $googleAdsRow->getMetrics()->getValuePerConversionsByConversionDate();
|
||||||
|
$resourceName['video_quartile_p25_rate'] = $googleAdsRow->getMetrics()->getVideoQuartileP25Rate();
|
||||||
|
$resourceName['video_quartile_p50_rate'] = $googleAdsRow->getMetrics()->getVideoQuartileP50Rate();
|
||||||
|
$resourceName['video_quartile_p75_rate'] = $googleAdsRow->getMetrics()->getVideoQuartileP75Rate();
|
||||||
|
$resourceName['video_quartile_p100_rate'] = $googleAdsRow->getMetrics()->getVideoQuartileP100Rate();
|
||||||
|
$resourceName['video_view_rate'] = $googleAdsRow->getMetrics()->getVideoViewRate();
|
||||||
|
$resourceName['video_views'] = $googleAdsRow->getMetrics()->getVideoViews();
|
||||||
|
$resourceName['view_through_conversions'] = $googleAdsRow->getMetrics()->getViewThroughConversions();
|
||||||
|
|
||||||
// $resourceName['budget_id'] = $googleAdsRow->getCampaignBudget()->getId();
|
// $resourceName['budget_id'] = $googleAdsRow->getCampaignBudget()->getId();
|
||||||
$resourceNames[] = $resourceName;
|
$resourceNames[] = $resourceName;
|
||||||
@ -479,6 +529,7 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
ThinkDb::execute($sql, $data);
|
ThinkDb::execute($sql, $data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在数据库中保存广告系列信息
|
* 在数据库中保存广告系列信息
|
||||||
* @param $campaignsResourceName
|
* @param $campaignsResourceName
|
||||||
@ -525,8 +576,16 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
// ThinkDb::execute($sql, $data);
|
// ThinkDb::execute($sql, $data);
|
||||||
|
|
||||||
$sql = "INSERT INTO bps.bps_google_ad_day_data
|
$sql = "INSERT INTO bps.bps_google_ad_day_data
|
||||||
(ad_id, customer_id, ad_name, ad_resource_name, ad_group_id, campaign_id, clicks, cost_micros, conversions, conversions_value, impressions, date, month, season, year)
|
(ad_id, customer_id, ad_name, ad_resource_name, ad_group_id, campaign_id, clicks, cost_micros, conversions, conversions_value, impressions, date, month, season, year,interactions, orders, revenue_micros, value_per_all_conversions,
|
||||||
VALUES (:ad_id, :customer_id, :ad_name, :ad_resource_name, :ad_group_id, :campaign_id, :clicks, :cost_micros, :conversions, :conversions_value, :impressions, :date, :month, :season, :year)
|
value_per_all_conversions_by_conversion_date, value_per_conversion,
|
||||||
|
value_per_conversions_by_conversion_date, video_quartile_p25_rate,
|
||||||
|
video_quartile_p50_rate, video_quartile_p75_rate, video_quartile_p100_rate,
|
||||||
|
video_view_rate, video_views, view_through_conversions)
|
||||||
|
VALUES (:ad_id, :customer_id, :ad_name, :ad_resource_name, :ad_group_id, :campaign_id, :clicks, :cost_micros, :conversions, :conversions_value, :impressions, :date, :month, :season, :year,:interactions, :orders, :revenue_micros, :value_per_all_conversions,
|
||||||
|
:value_per_all_conversions_by_conversion_date, :value_per_conversion,
|
||||||
|
:value_per_conversions_by_conversion_date, :video_quartile_p25_rate,
|
||||||
|
:video_quartile_p50_rate, :video_quartile_p75_rate, :video_quartile_p100_rate,
|
||||||
|
:video_view_rate, :video_views, :view_through_conversions)
|
||||||
ON CONFLICT (ad_id, date)
|
ON CONFLICT (ad_id, date)
|
||||||
DO UPDATE SET
|
DO UPDATE SET
|
||||||
customer_id = EXCLUDED.customer_id,
|
customer_id = EXCLUDED.customer_id,
|
||||||
@ -542,6 +601,20 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
month = EXCLUDED.month,
|
month = EXCLUDED.month,
|
||||||
season = EXCLUDED.season,
|
season = EXCLUDED.season,
|
||||||
year = EXCLUDED.year,
|
year = EXCLUDED.year,
|
||||||
|
interactions = EXCLUDED.interactions,
|
||||||
|
orders = EXCLUDED.orders,
|
||||||
|
revenue_micros = EXCLUDED.revenue_micros,
|
||||||
|
value_per_all_conversions = EXCLUDED.value_per_all_conversions,
|
||||||
|
value_per_all_conversions_by_conversion_date = EXCLUDED.value_per_all_conversions_by_conversion_date,
|
||||||
|
value_per_conversion = EXCLUDED.value_per_conversion,
|
||||||
|
value_per_conversions_by_conversion_date = EXCLUDED.value_per_conversions_by_conversion_date,
|
||||||
|
video_quartile_p25_rate = EXCLUDED.video_quartile_p25_rate,
|
||||||
|
video_quartile_p50_rate = EXCLUDED.video_quartile_p50_rate,
|
||||||
|
video_quartile_p75_rate = EXCLUDED.video_quartile_p75_rate,
|
||||||
|
video_quartile_p100_rate = EXCLUDED.video_quartile_p100_rate,
|
||||||
|
video_view_rate = EXCLUDED.video_view_rate,
|
||||||
|
video_views = EXCLUDED.video_views,
|
||||||
|
view_through_conversions = EXCLUDED.view_through_conversions,
|
||||||
update_at = EXCLUDED.update_at"; // 更新其他字段和更新时间戳
|
update_at = EXCLUDED.update_at"; // 更新其他字段和更新时间戳
|
||||||
// dump($sql, $data);
|
// dump($sql, $data);
|
||||||
ThinkDb::execute($sql, $data);
|
ThinkDb::execute($sql, $data);
|
||||||
@ -724,7 +797,7 @@ class GoogleAdsCampaignService extends BaseService
|
|||||||
public function runUpdateCampaign($options): mixed
|
public function runUpdateCampaign($options): mixed
|
||||||
{
|
{
|
||||||
|
|
||||||
$googleAdsClient = new GoogleAdsClientService($options['refresh_token'],$options['login_customer_id']);
|
$googleAdsClient = new GoogleAdsClientService($options['refresh_token'], $options['login_customer_id']);
|
||||||
// Creates a single shared budget to be used by the campaigns added below.
|
// Creates a single shared budget to be used by the campaigns added below.
|
||||||
$resourceName = self::updateCampaign($googleAdsClient->getGoogleAdsClient(), $options['customer_id'], $options['campaign_id'], $options['status']);
|
$resourceName = self::updateCampaign($googleAdsClient->getGoogleAdsClient(), $options['customer_id'], $options['campaign_id'], $options['status']);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user