$feedItemID = "14907223170"; //sitelink feed id that i need to add
$adgroupID = "1234" //adgroup id
$campaignExtensionSettingService =$adWordsServices->get($session, AdGroupExtensionSettingService::class);
foreach ( $links as $link ) { // Create a simple sitelink. $sitelink = new SitelinkFeedItem(); $sitelink->setSitelinkText($link["sitename"]); $sitelink->setSitelinkFinalUrls( new UrlList([ $link["sitelinks"] ])); $sitelinks[] = $sitelink; } // Create your campaign extension settings. This associates the sitelinks // to your campaign. $campaignExtensionSetting = new AdGroupExtensionSetting(); $campaignExtensionSetting->setAdGroupId($campaignId); $campaignExtensionSetting->setExtensionType(FeedType::SITELINK); $campaignExtensionSetting->setExtensionSetting(new ExtensionSetting()); $campaignExtensionSetting->getExtensionSetting()->setExtensions($sitelinks); // Create a campaign extension setting operation and add it to the list. $operation = new AdGroupExtensionSettingOperation(); $operation->setOperator(Operator::ADD); $operation->setOperand($campaignExtensionSetting); $operations[] = $operation;
$result = $campaignExtensionSettingService->mutate($operations);
$sitelink = new SitelinkFeedItem($feedId, $feedItemId);
$sitelinks[] = $sitelink;
//create AdGroup extension setting
$adGroupExtensionSetting = new AdGroupExtensionSetting();
$adGroupExtensionSetting->setAdGroupId($adGroupId);
$adGroupExtensionSetting->setExtensionType(FeedType::SITELINK);
$adGroupExtensionSetting->setExtensionSetting(new ExtensionSetting());
$adGroupExtensionSetting->getExtensionSetting()->setExtensions($sitelinks);
// Create an ad group extension setting operation and add it to the list.
$operation = new AdGroupExtensionSettingOperation();
$operation->setOperator(Operator::ADD);
$operation->setOperand($adGroupExtensionSetting);
$operations = [$operation];
// Perform the mutate operation to add the sitelinks
$result = $adGroupExtensionSettingService->mutate($operations);
Hi,You can specify the FeedId and the FeedItemId of the existing Sitelink in the SitelinkFeedItem as shown below to use existing Sitelinks in an AdGroupExtensionSetting:
$sitelink = new SitelinkFeedItem($feedId, $feedItemId);
$sitelinks[] = $sitelink;
//create AdGroup extension setting
$adGroupExtensionSetting = new AdGroupExtensionSetting();
$adGroupExtensionSetting->setAdGroupId($adGroupId);
$adGroupExtensionSetting->setExtensionType(FeedType::SITELINK);
$adGroupExtensionSetting->setExtensionSetting(new ExtensionSetting());
$adGroupExtensionSetting->getExtensionSetting()->setExtensions($sitelinks);
// Create a campaign extension setting operation and add it to the list.
$operation = new AdGroupExtensionSettingOperation();
$operation->setOperator(Operator::ADD);
$operation->setOperand($adGroupExtensionSetting);
$operations = [$operation];
// Perform the mutate operation to add the sitelinks
$result = $adGroupExtensionSettingService->mutate($operations);