/// <summary> /// Gets the legacy sitelinks for campaign. /// </summary> /// <param name="campaignExtensionService">The campaign extension service.</param> /// <param name="campaignId">The campaign id.</param> /// <returns>The CampaignAdExtension that contains the legacy sitelinks, or /// null if there are no legacy sitelinks in this campaign.</returns> private static CampaignAdExtension getLegacySitelinksForCampaign( CampaignAdExtensionService campaignExtensionService, long campaignId) { // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"CampaignId", "AdExtensionId", "Status", "DisplayText", "DestinationUrl"}; // Filter the results for specified campaign id. Predicate campaignPredicate = new Predicate(); campaignPredicate.@operator = PredicateOperator.EQUALS; campaignPredicate.field = "CampaignId"; campaignPredicate.values = new string[] {campaignId.ToString()}; // Filter the results for active campaign ad extensions. You may add // additional filtering conditions here as required. Predicate statusPredicate = new Predicate(); statusPredicate.@operator = PredicateOperator.EQUALS; statusPredicate.field = "Status"; statusPredicate.values = new string[] {CampaignAdExtensionStatus.ACTIVE.ToString()}; // Filter for sitelinks ad extension type. Predicate typePredicate = new Predicate(); typePredicate.@operator = PredicateOperator.EQUALS; typePredicate.field = "AdExtensionType"; typePredicate.values = new string[] {"SITELINKS_EXTENSION"}; selector.predicates = new Predicate[] {campaignPredicate, statusPredicate, typePredicate}; CampaignAdExtensionPage page = campaignExtensionService.get(selector); if (page.entries != null && page.entries.Length > 0) { return page.entries[0]; } else { return null; } }
/// <summary> /// Delete legacy sitelinks from a campaign. /// </summary> /// <param name="campaignExtensionService">The campaign extension service. /// </param> /// <param name="extensionToDelete">The CampaignAdExtension that holds /// legacy sitelinks.</param> private static void deleteLegacySitelinks(CampaignAdExtensionService campaignExtensionService, CampaignAdExtension extensionToDelete) { CampaignAdExtensionOperation operation = new CampaignAdExtensionOperation(); operation.@operator = Operator.REMOVE; operation.operand = extensionToDelete; campaignExtensionService.mutate(new CampaignAdExtensionOperation[] {operation}); }