From 3408d9992bb020ccecb40104a932d8d215bad4b2 Mon Sep 17 00:00:00 2001 From: Eric Urban Date: Thu, 11 Oct 2018 11:15:39 -0700 Subject: [PATCH 1/2] update proxies and sample helpers --- .../V12/CampaignManagementExampleHelper.php | 68 +++++++++++++++++-- src/V12/Bulk/DownloadEntity.php | 3 + .../Bulk/GetBulkDownloadStatusResponse.php | 2 +- .../AddCampaignsRequest.php | 6 ++ .../AssetLinkEditorialStatus.php | 25 +++++++ .../UpdateCampaignsRequest.php | 6 ++ src/V12/Reporting/AdTypeReportFilter.php | 3 + 7 files changed, 107 insertions(+), 6 deletions(-) create mode 100644 src/V12/CampaignManagement/AssetLinkEditorialStatus.php diff --git a/samples/V12/CampaignManagementExampleHelper.php b/samples/V12/CampaignManagementExampleHelper.php index 7fc3d0cc..9d0dbff9 100644 --- a/samples/V12/CampaignManagementExampleHelper.php +++ b/samples/V12/CampaignManagementExampleHelper.php @@ -206,7 +206,8 @@ static function AddCampaignCriterions( } static function AddCampaigns( $accountId, - $campaigns) + $campaigns, + $includeDynamicSearchAdsSource) { $GLOBALS['CampaignManagementProxy']->SetAuthorizationData($GLOBALS['AuthorizationData']); $GLOBALS['Proxy'] = $GLOBALS['CampaignManagementProxy']; @@ -215,6 +216,7 @@ static function AddCampaigns( $request->AccountId = $accountId; $request->Campaigns = $campaigns; + $request->IncludeDynamicSearchAdsSource = $includeDynamicSearchAdsSource; return $GLOBALS['CampaignManagementProxy']->GetService()->AddCampaigns($request); } @@ -732,7 +734,8 @@ static function GetAdGroupsByIds( } static function GetAdsByAdGroupId( $adGroupId, - $adTypes) + $adTypes, + $returnAdditionalFields) { $GLOBALS['CampaignManagementProxy']->SetAuthorizationData($GLOBALS['AuthorizationData']); $GLOBALS['Proxy'] = $GLOBALS['CampaignManagementProxy']; @@ -741,13 +744,15 @@ static function GetAdsByAdGroupId( $request->AdGroupId = $adGroupId; $request->AdTypes = $adTypes; + $request->ReturnAdditionalFields = $returnAdditionalFields; return $GLOBALS['CampaignManagementProxy']->GetService()->GetAdsByAdGroupId($request); } static function GetAdsByEditorialStatus( $adGroupId, $editorialStatus, - $adTypes) + $adTypes, + $returnAdditionalFields) { $GLOBALS['CampaignManagementProxy']->SetAuthorizationData($GLOBALS['AuthorizationData']); $GLOBALS['Proxy'] = $GLOBALS['CampaignManagementProxy']; @@ -757,13 +762,15 @@ static function GetAdsByEditorialStatus( $request->AdGroupId = $adGroupId; $request->EditorialStatus = $editorialStatus; $request->AdTypes = $adTypes; + $request->ReturnAdditionalFields = $returnAdditionalFields; return $GLOBALS['CampaignManagementProxy']->GetService()->GetAdsByEditorialStatus($request); } static function GetAdsByIds( $adGroupId, $adIds, - $adTypes) + $adTypes, + $returnAdditionalFields) { $GLOBALS['CampaignManagementProxy']->SetAuthorizationData($GLOBALS['AuthorizationData']); $GLOBALS['Proxy'] = $GLOBALS['CampaignManagementProxy']; @@ -773,6 +780,7 @@ static function GetAdsByIds( $request->AdGroupId = $adGroupId; $request->AdIds = $adIds; $request->AdTypes = $adTypes; + $request->ReturnAdditionalFields = $returnAdditionalFields; return $GLOBALS['CampaignManagementProxy']->GetService()->GetAdsByIds($request); } @@ -1368,7 +1376,8 @@ static function UpdateCampaignCriterions( } static function UpdateCampaigns( $accountId, - $campaigns) + $campaigns, + $includeDynamicSearchAdsSource) { $GLOBALS['CampaignManagementProxy']->SetAuthorizationData($GLOBALS['AuthorizationData']); $GLOBALS['Proxy'] = $GLOBALS['CampaignManagementProxy']; @@ -1377,6 +1386,7 @@ static function UpdateCampaigns( $request->AccountId = $accountId; $request->Campaigns = $campaigns; + $request->IncludeDynamicSearchAdsSource = $includeDynamicSearchAdsSource; return $GLOBALS['CampaignManagementProxy']->GetService()->UpdateCampaigns($request); } @@ -3347,8 +3357,10 @@ static function OutputExpandedTextAd($dataObject) self::OutputStatusMessage(sprintf("Path1: %s", $dataObject->Path1)); self::OutputStatusMessage(sprintf("Path2: %s", $dataObject->Path2)); self::OutputStatusMessage(sprintf("Text: %s", $dataObject->Text)); + self::OutputStatusMessage(sprintf("TextPart2: %s", $dataObject->TextPart2)); self::OutputStatusMessage(sprintf("TitlePart1: %s", $dataObject->TitlePart1)); self::OutputStatusMessage(sprintf("TitlePart2: %s", $dataObject->TitlePart2)); + self::OutputStatusMessage(sprintf("TitlePart3: %s", $dataObject->TitlePart3)); } self::OutputStatusMessage("* * * End OutputExpandedTextAd * * *"); } @@ -5228,6 +5240,29 @@ static function OutputArrayOfCallToAction($valueSets) } self::OutputStatusMessage("* * * End OutputArrayOfCallToAction * * *"); } + static function OutputAssetLinkEditorialStatus($valueSet) + { + self::OutputStatusMessage("* * * Begin OutputAssetLinkEditorialStatus * * *"); + self::OutputStatusMessage(sprintf("Values in %s", $valueSet->type)); + foreach ($valueSet->string as $value) + { + self::OutputStatusMessage($value); + } + self::OutputStatusMessage("* * * End OutputAssetLinkEditorialStatus * * *"); + } + static function OutputArrayOfAssetLinkEditorialStatus($valueSets) + { + if(count((array)$valueSets) == 0) + { + return; + } + self::OutputStatusMessage("* * * Begin OutputArrayOfAssetLinkEditorialStatus * * *"); + foreach ($valueSets->AssetLinkEditorialStatus as $valueSet) + { + self::OutputAssetLinkEditorialStatus($valueSet); + } + self::OutputStatusMessage("* * * End OutputArrayOfAssetLinkEditorialStatus * * *"); + } static function OutputBudgetLimitType($valueSet) { self::OutputStatusMessage("* * * Begin OutputBudgetLimitType * * *"); @@ -5458,6 +5493,29 @@ static function OutputArrayOfAdGroupStatus($valueSets) } self::OutputStatusMessage("* * * End OutputArrayOfAdGroupStatus * * *"); } + static function OutputAdAdditionalField($valueSet) + { + self::OutputStatusMessage("* * * Begin OutputAdAdditionalField * * *"); + self::OutputStatusMessage(sprintf("Values in %s", $valueSet->type)); + foreach ($valueSet->string as $value) + { + self::OutputStatusMessage($value); + } + self::OutputStatusMessage("* * * End OutputAdAdditionalField * * *"); + } + static function OutputArrayOfAdAdditionalField($valueSets) + { + if(count((array)$valueSets) == 0) + { + return; + } + self::OutputStatusMessage("* * * Begin OutputArrayOfAdAdditionalField * * *"); + foreach ($valueSets->AdAdditionalField as $valueSet) + { + self::OutputAdAdditionalField($valueSet); + } + self::OutputStatusMessage("* * * End OutputArrayOfAdAdditionalField * * *"); + } static function OutputKeywordEditorialStatus($valueSet) { self::OutputStatusMessage("* * * Begin OutputKeywordEditorialStatus * * *"); diff --git a/src/V12/Bulk/DownloadEntity.php b/src/V12/Bulk/DownloadEntity.php index 8d954759..5724bd3c 100644 --- a/src/V12/Bulk/DownloadEntity.php +++ b/src/V12/Bulk/DownloadEntity.php @@ -281,6 +281,9 @@ final class DownloadEntity /** Include Ad Group Negative Similar Remarketing List Association records in the download that each represent the association relationship between an ad group and a similar remarketing list exclusion. */ const AdGroupNegativeSimilarRemarketingListAssociations = 'AdGroupNegativeSimilarRemarketingListAssociations'; + + /** Reserved. */ + const Experiments = 'Experiments'; } } diff --git a/src/V12/Bulk/GetBulkDownloadStatusResponse.php b/src/V12/Bulk/GetBulkDownloadStatusResponse.php index 35ae1c30..178e398a 100644 --- a/src/V12/Bulk/GetBulkDownloadStatusResponse.php +++ b/src/V12/Bulk/GetBulkDownloadStatusResponse.php @@ -38,7 +38,7 @@ final class GetBulkDownloadStatusResponse public $RequestStatus; /** - * The URL that contains the download data. + * The URL that contains the download data when the RequestStatus value is Completed. * @var string */ public $ResultFileUrl; diff --git a/src/V12/CampaignManagement/AddCampaignsRequest.php b/src/V12/CampaignManagement/AddCampaignsRequest.php index ef1b6161..3237ce48 100644 --- a/src/V12/CampaignManagement/AddCampaignsRequest.php +++ b/src/V12/CampaignManagement/AddCampaignsRequest.php @@ -23,5 +23,11 @@ final class AddCampaignsRequest * @var Campaign[] */ public $Campaigns; + + /** + * Reserved. + * @var boolean + */ + public $IncludeDynamicSearchAdsSource; } } diff --git a/src/V12/CampaignManagement/AssetLinkEditorialStatus.php b/src/V12/CampaignManagement/AssetLinkEditorialStatus.php new file mode 100644 index 00000000..3820aeca --- /dev/null +++ b/src/V12/CampaignManagement/AssetLinkEditorialStatus.php @@ -0,0 +1,25 @@ + Date: Thu, 11 Oct 2018 12:27:43 -0700 Subject: [PATCH 2/2] update proxies and sample helpers --- samples/V12/AdExtensions.php | 5 +++- samples/V12/AudienceCampaigns.php | 3 ++- samples/V12/DynamicSearchAds.php | 5 +++- samples/V12/KeywordsAds.php | 40 ++++++++++++++++++++++++------- samples/V12/Labels.php | 3 ++- samples/V12/NegativeKeywords.php | 5 +++- samples/V12/RemarketingLists.php | 5 +++- samples/V12/ShoppingCampaigns.php | 5 +++- samples/V12/TargetCriterions.php | 5 +++- 9 files changed, 59 insertions(+), 17 deletions(-) diff --git a/samples/V12/AdExtensions.php b/samples/V12/AdExtensions.php index 80894d42..76e7f70c 100644 --- a/samples/V12/AdExtensions.php +++ b/samples/V12/AdExtensions.php @@ -97,7 +97,10 @@ $campaigns[] = $campaign; print "AddCampaigns\n"; - $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns($GLOBALS['AuthorizationData']->AccountId, $campaigns); + $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( + $GLOBALS['AuthorizationData']->AccountId, + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; CampaignManagementExampleHelper::OutputArrayOfLong($nillableCampaignIds); if(isset($addCampaignsResponse->PartialErrors->BatchError)){ diff --git a/samples/V12/AudienceCampaigns.php b/samples/V12/AudienceCampaigns.php index a7184039..a69c9044 100644 --- a/samples/V12/AudienceCampaigns.php +++ b/samples/V12/AudienceCampaigns.php @@ -185,7 +185,8 @@ print "AddCampaigns\n"; $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( $GLOBALS['AuthorizationData']->AccountId, - $campaigns); + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; CampaignManagementExampleHelper::OutputArrayOfLong($nillableCampaignIds); if(isset($addCampaignsResponse->PartialErrors->BatchError)){ diff --git a/samples/V12/DynamicSearchAds.php b/samples/V12/DynamicSearchAds.php index 1088a094..6e392bd6 100644 --- a/samples/V12/DynamicSearchAds.php +++ b/samples/V12/DynamicSearchAds.php @@ -109,7 +109,10 @@ $campaigns[] = $campaign; print "AddCampaigns\n"; - $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns($GLOBALS['AuthorizationData']->AccountId, $campaigns); + $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( + $GLOBALS['AuthorizationData']->AccountId, + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; CampaignManagementExampleHelper::OutputArrayOfLong($nillableCampaignIds); if(isset($addCampaignsResponse->PartialErrors)){ diff --git a/samples/V12/KeywordsAds.php b/samples/V12/KeywordsAds.php index 3e0f38df..f6df1173 100644 --- a/samples/V12/KeywordsAds.php +++ b/samples/V12/KeywordsAds.php @@ -23,6 +23,7 @@ use Microsoft\BingAds\V12\CampaignManagement\Keyword; use Microsoft\BingAds\V12\CampaignManagement\Ad; use Microsoft\BingAds\V12\CampaignManagement\AdType; +use Microsoft\BingAds\V12\CampaignManagement\AdAdditionalField; use Microsoft\BingAds\V12\CampaignManagement\ExpandedTextAd; use Microsoft\BingAds\V12\CampaignManagement\Bid; use Microsoft\BingAds\V12\CampaignManagement\BiddingScheme; @@ -262,7 +263,10 @@ // Add the campaign, ad group, keywords, and ads print "AddCampaigns\n"; - $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns($GLOBALS['AuthorizationData']->AccountId, $campaigns); + $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( + $GLOBALS['AuthorizationData']->AccountId, + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; CampaignManagementExampleHelper::OutputArrayOfLong($nillableCampaignIds); if(isset($addCampaignsResponse->PartialErrors->BatchError)){ @@ -412,7 +416,10 @@ $index++; } - CampaignManagementExampleHelper::UpdateCampaigns($GLOBALS['AuthorizationData']->AccountId, $updateCampaigns); + CampaignManagementExampleHelper::UpdateCampaigns( + $GLOBALS['AuthorizationData']->AccountId, + $updateCampaigns, + false); $getCampaigns = CampaignManagementExampleHelper::GetCampaignsByIds( $GLOBALS['AuthorizationData']->AccountId, @@ -465,12 +472,23 @@ // As an exercise you can view the results before and after update. $adTypes = array(AdType::AppInstall, AdType::DynamicSearch, AdType::ExpandedText, AdType::Product, AdType::Text); - $ads = CampaignManagementExampleHelper::GetAdsByAdGroupId($nillableAdGroupIds->long[0], $adTypes); - CampaignManagementExampleHelper::OutputArrayOfAd($ads); + $adAdditionalFields = array(AdAdditionalField::TextPart2, AdAdditionalField::TitlePart3); + $ads = CampaignManagementExampleHelper::GetAdsByAdGroupId( + $nillableAdGroupIds->long[0], + $adTypes, + $adAdditionalFields); + if(isset($ads->Ads)){ + CampaignManagementExampleHelper::OutputArrayOfAd($ads->Ads); + } $updateAdsResponse = CampaignManagementExampleHelper::UpdateAds($nillableAdGroupIds->long[0], $updateAds); - $ads = CampaignManagementExampleHelper::GetAdsByAdGroupId($nillableAdGroupIds->long[0], $adTypes); - CampaignManagementExampleHelper::OutputArrayOfAd($ads); + $ads = CampaignManagementExampleHelper::GetAdsByAdGroupId( + $nillableAdGroupIds->long[0], + $adTypes, + $adAdditionalFields); + if(isset($ads->Ads)){ + CampaignManagementExampleHelper::OutputArrayOfAd($ads->Ads); + } // Here is a simple example that updates the keyword bid to use the ad group bid @@ -485,15 +503,19 @@ // As an exercise you can view the results before and after update. $keywords = CampaignManagementExampleHelper::GetKeywordsByAdGroupId($nillableAdGroupIds->long[0], null); - CampaignManagementExampleHelper::OutputArrayOfKeyword($keywords); + if(isset($keywords->Keywords)){ + CampaignManagementExampleHelper::OutputArrayOfKeyword($keywords->Keywords); + } $updateKeywordsResponse = CampaignManagementExampleHelper::UpdateKeywords( $nillableAdGroupIds->long[0], $updateKeywords, null); $keywords = CampaignManagementExampleHelper::GetKeywordsByAdGroupId($nillableAdGroupIds->long[0], null); - CampaignManagementExampleHelper::OutputArrayOfKeyword($keywords); - + if(isset($keywords->Keywords)){ + CampaignManagementExampleHelper::OutputArrayOfKeyword($keywords->Keywords); + } + // As an exercise you can delete the keyword CampaignManagementExampleHelper::DeleteKeywords($nillableAdGroupIds->long[0], array($nillableKeywordIds->long[1])); diff --git a/samples/V12/Labels.php b/samples/V12/Labels.php index 98143abd..fe85ad4f 100644 --- a/samples/V12/Labels.php +++ b/samples/V12/Labels.php @@ -138,7 +138,8 @@ $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( $GLOBALS['AuthorizationData']->AccountId, - $campaigns); + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; $campaignErrors = $addLabelsResponse->PartialErrors; print("New Campaign Ids:\n"); diff --git a/samples/V12/NegativeKeywords.php b/samples/V12/NegativeKeywords.php index a0bb683d..4f7192cd 100644 --- a/samples/V12/NegativeKeywords.php +++ b/samples/V12/NegativeKeywords.php @@ -68,7 +68,10 @@ $campaigns[] = $campaign; print "AddCampaigns\n"; - $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns($GLOBALS['AuthorizationData']->AccountId, $campaigns); + $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( + $GLOBALS['AuthorizationData']->AccountId, + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; CampaignManagementExampleHelper::OutputArrayOfLong($nillableCampaignIds); if(isset($addCampaignsResponse->PartialErrors->BatchError)){ diff --git a/samples/V12/RemarketingLists.php b/samples/V12/RemarketingLists.php index cec405b8..49ac4dab 100644 --- a/samples/V12/RemarketingLists.php +++ b/samples/V12/RemarketingLists.php @@ -132,7 +132,10 @@ $adGroups[] = $adGroup; print "AddCampaigns\n"; - $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns($GLOBALS['AuthorizationData']->AccountId, $campaigns); + $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( + $GLOBALS['AuthorizationData']->AccountId, + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; CampaignManagementExampleHelper::OutputArrayOfLong($nillableCampaignIds); if(isset($addCampaignsResponse->PartialErrors->BatchError)){ diff --git a/samples/V12/ShoppingCampaigns.php b/samples/V12/ShoppingCampaigns.php index afceb600..c7eea84c 100644 --- a/samples/V12/ShoppingCampaigns.php +++ b/samples/V12/ShoppingCampaigns.php @@ -140,7 +140,10 @@ $ads[] = $encodedAd; print "AddCampaigns\n"; - $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns($GLOBALS['AuthorizationData']->AccountId, $campaigns); + $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( + $GLOBALS['AuthorizationData']->AccountId, + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; CampaignManagementExampleHelper::OutputArrayOfLong($nillableCampaignIds); if(isset($addCampaignsResponse->PartialErrors->BatchError)){ diff --git a/samples/V12/TargetCriterions.php b/samples/V12/TargetCriterions.php index 48bd1ccf..19fd08d4 100644 --- a/samples/V12/TargetCriterions.php +++ b/samples/V12/TargetCriterions.php @@ -304,7 +304,10 @@ function GetExampleCampaignIds() } print "AddCampaigns\n"; - $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns($GLOBALS['AuthorizationData']->AccountId, $campaigns); + $addCampaignsResponse = CampaignManagementExampleHelper::AddCampaigns( + $GLOBALS['AuthorizationData']->AccountId, + $campaigns, + false); $nillableCampaignIds = $addCampaignsResponse->CampaignIds; CampaignManagementExampleHelper::OutputArrayOfLong($nillableCampaignIds); if(isset($addCampaignsResponse->PartialErrors->BatchError)){