首页 > 解决方案 > 如何使用 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 对象。我尝试过转换它但没有找到正确的方法。

非常感谢您的帮助!

标签: phpadsgoogle-api-php-client

解决方案


Try check the instance:

$result = $campaignCriterionService->get($serviceSelector);
$campaignAdSchedules = $result->getEntries();
foreach ($campaignAdSchedules as $criterion) {
    $adSchedule =  $criterion->getCriterion();
    if ($adSchedule instanceof AdSchedule) {
        $adSchedule->getStartHour();
    }
}

推荐阅读