php - 如何使用 Google Ads API 获取 AdSchedule 对象
问题描述
我正在尝试通过 Google Ads API 获取放置在 Google Ads 中的所有广告时间表,并获取开始和结束时间(小时和分钟)以将其与一些现有值进行比较,并取决于它们是否有相应的更新。
这是我的代码,显示了我在哪里迭代返回的广告时间表。
foreach($campaigns as $camp) {
// Get restaurant and details
$res = RestaurantsService::getRestaurantByName($camp->getName());
$hours =$res->getHours()->dequeue();
$start = explode("-",$hours)[0];
$end = explode("-",$hours)[1];
// Get current ad schedules as they are now
$campaignAdSchedules = self::getCampaignAdSchedule($campaignCriterionService,$camp->getId());
if ($campaignAdSchedules == null){
$operations = [];
$schedule = new AdSchedule();
$schedule->setDayOfWeek(self::DAYS[date("N")-1]);
$schedule->setStartHour((int)substr($start,0,2));
$schedule->setStartMinute(MinuteOfHour::ZERO);
$schedule->setEndHour((int)substr($end,0,2));
$schedule->setEndMinute(MinuteOfHour::ZERO);
$operation = new CampaignCriterionOperation();
$criterion = new CampaignCriterion();
$criterion->setCampaignId($camp->getId());
$criterion->setCriterion($schedule);
$operation->setOperand($criterion);
$operation->setOperator(Operator::ADD);
$operations[] = $operation;
$campaignCriterionService->mutate($operations);
} else {
foreach($campaignAdSchedules as $adSchedule){
---> $schedule = $adSchedule->getCriterion(); <---
}
}
}
这里标有箭头的线是我遇到问题的线。该getCriterion()
函数返回一个没有方法getStartHour()
等的 Criterion 对象。我尝试过转换它但没有找到正确的方法。
非常感谢您的帮助!
解决方案
Try check the instance:
$result = $campaignCriterionService->get($serviceSelector);
$campaignAdSchedules = $result->getEntries();
foreach ($campaignAdSchedules as $criterion) {
$adSchedule = $criterion->getCriterion();
if ($adSchedule instanceof AdSchedule) {
$adSchedule->getStartHour();
}
}
推荐阅读
- kubernetes - How can I get CoreDNS to resolve on my Raspberry Pi Kubernetes cluster?
- arrays - C# How to save multiple images asynchronously from a a list of Task
using FileStream. (WinForms) - r - 根据多个条件删除组上的行 r
- microsoft-graph-api - 在 MS 的示例应用程序中创建 GraphServiceClient 时出错
- controller - 控制器 AdminAddresses 丢失或无效 PrestaShop 1.7.5.1
- api - 在生产环境中请求时出现 AMADEUS API 凭据错误
- java - Spring JPA - 为 N 个数据库创建 N 个存储库
- angular - TypeError:不是 Angular 中的函数
- gcc - 第一个 gcc 交叉编译器编译阶段出错(arm-none-eabi/bin/as:无法识别的选项 '--64')
- java - 如果对象类型不同,GSON 会引发异常