googleAdsClient = new GoogleAdsClient([ 'developerToken' => $config['developer_token'], 'clientId' => $config['client_id'], 'clientSecret' => $config['client_secret'], 'refreshToken' => $config['refresh_token'], ]); } // 创建广告预算 public function createCampaignBudget($customerId, $budgetName, $amountMicros) { $campaignBudgetService = $this->googleAdsClient->getCampaignBudgetServiceClient(); $campaignBudget = new \Google\Ads\GoogleAds\V18\Resources\CampaignBudget([ 'name' => $budgetName, 'amountMicros' => $amountMicros, 'deliveryMethod' => 'STANDARD', 'status' => 'ENABLED', ]); $operation = new CampaignBudgetOperation(); $operation->setCreate($campaignBudget); try { $response = $campaignBudgetService->mutateCampaignBudgets($customerId, [$operation]); return $response->getResults()[0]->getResourceName(); } catch (\Google\Ads\GoogleAds\Errors\GoogleAdsException $e) { return $e->getMessage(); } } // 创建广告系列 public function createCampaign($customerId, $budgetId, $campaignName) { $campaignService = $this->googleAdsClient->getCampaignServiceClient(); $campaign = new \Google\Ads\GoogleAds\V18\Resources\Campaign([ 'name' => $campaignName, 'advertisingChannelType' => 'SEARCH', 'status' => 'PAUSED', 'startDate' => '2024-12-01', 'endDate' => '2024-12-31', 'manualCpc' => new \Google\Ads\GoogleAds\V18\Resources\ManualCpc([ 'enhancedCpcEnabled' => true ]), 'campaignBudget' => "customers/{$customerId}/campaignBudgets/{$budgetId}" ]); $operation = new CampaignOperation(); $operation->setCreate($campaign); try { $response = $campaignService->mutateCampaigns($customerId, [$operation]); return $response->getResults()[0]->getResourceName(); } catch (\Google\Ads\GoogleAds\Errors\GoogleAdsException $e) { return $e->getMessage(); } } // 创建广告组 public function createAdGroup($customerId, $campaignId, $adGroupName, $cpcBidMicros) { $adGroupService = $this->googleAdsClient->getAdGroupServiceClient(); $adGroup = new \Google\Ads\GoogleAds\V18\Resources\AdGroup([ 'name' => $adGroupName, 'campaign' => "customers/{$customerId}/campaigns/{$campaignId}", 'status' => 'PAUSED', 'cpcBidMicros' => $cpcBidMicros, 'startDate' => '2024-12-01', 'endDate' => '2024-12-31', ]); $operation = new AdGroupOperation(); $operation->setCreate($adGroup); try { $response = $adGroupService->mutateAdGroups($customerId, [$operation]); return $response->getResults()[0]->getResourceName(); } catch (\Google\Ads\GoogleAds\Errors\GoogleAdsException $e) { return $e->getMessage(); } } // 创建广告 public function createAd($customerId, $adGroupId, $adName, $headline, $description, $finalUrls) { $adService = $this->googleAdsClient->getAdServiceClient(); // 创建文本广告 $textAd = new \Google\Ads\GoogleAds\V18\Resources\AdTextAdInfo([ 'headline' => $headline, 'description' => $description, 'finalUrls' => $finalUrls, ]); $ad = new \Google\Ads\GoogleAds\V18\Resources\Ad([ 'name' => $adName, 'adGroup' => "customers/{$customerId}/adGroups/{$adGroupId}", 'status' => 'PAUSED', 'textAd' => $textAd, ]); $operation = new AdOperation(); $operation->setCreate($ad); try { $response = $adService->mutateAds($customerId, [$operation]); return $response->getResults()[0]->getResourceName(); } catch (\Google\Ads\GoogleAds\Errors\GoogleAdsException $e) { return $e->getMessage(); } } }