Skip to content

Commit 2e68acf

Browse files
authored
Update MigratePromotionFeedToAsset to match golden. (#461)
1 parent 5f504ab commit 2e68acf

1 file changed

Lines changed: 4 additions & 49 deletions

File tree

google-ads-examples/src/main/java/com/google/ads/googleads/examples/extensions/MigratePromotionFeedToAsset.java

Lines changed: 4 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,17 @@
1818
import com.google.ads.googleads.examples.utils.ArgumentNames;
1919
import com.google.ads.googleads.examples.utils.CodeSampleParams;
2020
import com.google.ads.googleads.lib.GoogleAdsClient;
21-
import com.google.ads.googleads.lib.utils.FieldMasks;
22-
import com.google.ads.googleads.v8.resources.AdGroupAsset;
23-
import com.google.ads.googleads.v8.resources.CampaignAsset;
2421
import com.google.ads.googleads.v8.common.PromotionAsset;
2522
import com.google.ads.googleads.v8.common.PromotionFeedItem;
2623
import com.google.ads.googleads.v8.enums.AssetFieldTypeEnum.AssetFieldType;
2724
import com.google.ads.googleads.v8.errors.GoogleAdsError;
2825
import com.google.ads.googleads.v8.errors.GoogleAdsException;
2926
import com.google.ads.googleads.v8.resources.AdGroup;
27+
import com.google.ads.googleads.v8.resources.AdGroupAsset;
3028
import com.google.ads.googleads.v8.resources.AdGroupExtensionSetting;
3129
import com.google.ads.googleads.v8.resources.Asset;
3230
import com.google.ads.googleads.v8.resources.Campaign;
31+
import com.google.ads.googleads.v8.resources.CampaignAsset;
3332
import com.google.ads.googleads.v8.resources.CampaignExtensionSetting;
3433
import com.google.ads.googleads.v8.resources.ExtensionFeedItem;
3534
import com.google.ads.googleads.v8.resources.FeedItem;
@@ -39,17 +38,13 @@
3938
import com.google.ads.googleads.v8.services.AssetServiceClient;
4039
import com.google.ads.googleads.v8.services.CampaignAssetOperation;
4140
import com.google.ads.googleads.v8.services.CampaignAssetServiceClient;
42-
import com.google.ads.googleads.v8.services.ExtensionFeedItemOperation;
43-
import com.google.ads.googleads.v8.services.ExtensionFeedItemServiceClient;
4441
import com.google.ads.googleads.v8.services.GoogleAdsRow;
4542
import com.google.ads.googleads.v8.services.GoogleAdsServiceClient;
46-
import com.google.ads.googleads.v8.services.GoogleAdsServiceClient.SearchPagedResponse;
4743
import com.google.ads.googleads.v8.services.MutateAdGroupAssetResult;
4844
import com.google.ads.googleads.v8.services.MutateAdGroupAssetsResponse;
4945
import com.google.ads.googleads.v8.services.MutateAssetsResponse;
5046
import com.google.ads.googleads.v8.services.MutateCampaignAssetResult;
5147
import com.google.ads.googleads.v8.services.MutateCampaignAssetsResponse;
52-
import com.google.ads.googleads.v8.services.MutateExtensionFeedItemsResponse;
5348
import com.google.ads.googleads.v8.services.SearchGoogleAdsStreamRequest;
5449
import com.google.ads.googleads.v8.services.SearchGoogleAdsStreamResponse;
5550
import com.google.ads.googleads.v8.utils.ResourceNames;
@@ -58,7 +53,6 @@
5853
import java.io.FileNotFoundException;
5954
import java.io.IOException;
6055
import java.util.ArrayList;
61-
import java.util.Iterator;
6256
import java.util.List;
6357
import java.util.Optional;
6458
import java.util.stream.Collectors;
@@ -69,6 +63,8 @@
6963
* asset-based extension. The new Asset-based extension will then be associated with the same
7064
* campaigns and ad groups as the original Feed-based extension. Finally, the Feed-based extension
7165
* will be mutated to no longer serve.
66+
* Once copied, you should remove the Feed-based extension; see
67+
* RemoveEntireSitelinkCampaignExtensionSetting.java for an example.
7268
*/
7369
public class MigratePromotionFeedToAsset {
7470

@@ -148,8 +144,6 @@ private void runExample(
148144
// Associates the new Promotion asset with the same ad groups as the original.
149145
associateAssetWithAdGroups(
150146
googleAdsClient, customerId, promotionAssetResourceName, adGroupIds);
151-
// Prevents the extension feed item from serving.
152-
clearExtensionFeedItemServingDates(googleAdsClient, customerId, extensionFeedItem);
153147
}
154148
}
155149

@@ -470,43 +464,4 @@ private void associateAssetWithAdGroups(
470464
}
471465
}
472466
}
473-
474-
/**
475-
* Prevent an ExtensionFeedItem from serving by clearing its start and end dates. This allows the
476-
* ExtensionFeedItem to still appear in reports while not generating new data.
477-
*/
478-
// [START migrate_promotion_feed_to_asset_3]
479-
private void clearExtensionFeedItemServingDates(
480-
GoogleAdsClient googleAdsClient, Long customerId, ExtensionFeedItem extensionFeedItem) {
481-
ExtensionFeedItem.Builder updatedExtensionFeedItem =
482-
ExtensionFeedItem.newBuilder().setResourceName(extensionFeedItem.getResourceName());
483-
484-
ExtensionFeedItemOperation.Builder operation =
485-
ExtensionFeedItemOperation.newBuilder()
486-
.setUpdate(updatedExtensionFeedItem)
487-
.setUpdateMask(FieldMasks.allSetFieldsOf(updatedExtensionFeedItem.build()));
488-
489-
// Clears all start and end dates to prevent the extension feed item from serving.
490-
// Alternatively, remove the extension feed item completely. Note that doing so may
491-
// affect this extension's reporting history.
492-
// See RemoveEntireSitelinkCampaignExtensionSetting.java for an example.
493-
// Note also that we must explicitly add the fields to the Update Mask;
494-
// FieldMasks.allSetFieldsOf() won't pick up cleared fields.
495-
operation.getUpdateMaskBuilder().addPaths("start_date_time");
496-
operation.getUpdateMaskBuilder().addPaths("end_date_time");
497-
operation.getUpdateMaskBuilder().addPaths("promotion_feed_item.promotion_start_date");
498-
operation.getUpdateMaskBuilder().addPaths("promotion_feed_item.promotion_end_date");
499-
500-
try (ExtensionFeedItemServiceClient client =
501-
googleAdsClient.getLatestVersion().createExtensionFeedItemServiceClient()) {
502-
// Issues the request to disable the extension feed item and report success.
503-
MutateExtensionFeedItemsResponse response =
504-
client.mutateExtensionFeedItems(
505-
String.valueOf(customerId), ImmutableList.of(operation.build()));
506-
System.out.println(
507-
"Cleared serving dates for extension feed item "
508-
+ response.getResults(0).getResourceName());
509-
}
510-
}
511-
// [END migrate_promotion_feed_to_asset_3]
512467
}

0 commit comments

Comments
 (0)