/// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="campaignId">Id of the camapign to which sitelinks are
        /// added.</param>
        public void Run(AdWordsUser user, long campaignId)
        {
            // Get the CampaignAdExtensionService.
              CampaignAdExtensionService campaignExtensionService =
              (CampaignAdExtensionService)user.GetService(AdWordsService.v201306.
              CampaignAdExtensionService);

              // Create the sitelinks.
              SitelinksExtension siteLinkExtension = new SitelinksExtension();

              Sitelink siteLink1 = new Sitelink();
              siteLink1.displayText = "Music";
              siteLink1.destinationUrl = "http://www.example.com/music";

              Sitelink siteLink2 = new Sitelink();
              siteLink2.displayText = "DVDs";
              siteLink2.destinationUrl = "http://www.example.com/dvds";

              Sitelink siteLink3 = new Sitelink();
              siteLink3.displayText = "New albums";
              siteLink3.destinationUrl = "http://www.example.com/albums/new";

              siteLinkExtension.sitelinks = new Sitelink[] {siteLink1, siteLink2, siteLink3};

              CampaignAdExtension campaignAdExtension = new CampaignAdExtension();
              campaignAdExtension.adExtension = siteLinkExtension;
              campaignAdExtension.campaignId = campaignId;

              // Create the operation.
              CampaignAdExtensionOperation operation = new CampaignAdExtensionOperation();
              operation.@operator = Operator.ADD;
              operation.operand = campaignAdExtension;

              try {
            // Create the sitelinks.
            CampaignAdExtensionReturnValue retVal =
            campaignExtensionService.mutate(new CampaignAdExtensionOperation[] {operation});

            // Display the results.
            if (retVal != null && retVal.value != null && retVal.value.Length > 0) {
              CampaignAdExtension campaignExtension = retVal.value[0];
              Console.WriteLine("Created a campaign ad extension with id = \"{0}\" and " +
              "status = \"{1}\"", campaignExtension.adExtension.id, campaignExtension.status);
              foreach (Sitelink siteLink in
              (campaignExtension.adExtension as SitelinksExtension).sitelinks) {
            Console.WriteLine("-- Site link text is \"{0}\" and destination url is {1}",
                siteLink.displayText, siteLink.destinationUrl);
              }
            } else {
              Console.WriteLine("No sitelinks were created.");
            }
              } catch (Exception ex) {
            throw new System.ApplicationException("Failed to add site links.", ex);
              }
        }
        /// <summary>
        /// Creates the legacy sitelinks.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="campaignId">The campaign id.</param>
        /// <returns>The list of legacy sitelinks.</returns>
        public Sitelink[] CreateLegacySitelinks(AdWordsUser user, long campaignId)
        {
            // Get the CampaignAdExtensionService.
              CampaignAdExtensionService campaignExtensionService =
              (CampaignAdExtensionService) user.GetService(AdWordsService.v201306.
              CampaignAdExtensionService);

              // Create the sitelinks.
              SitelinksExtension siteLinkExtension = new SitelinksExtension();

              Sitelink siteLink1 = new Sitelink();
              siteLink1.displayText = "Music";
              siteLink1.destinationUrl = "http://www.example.com/music";

              Sitelink siteLink2 = new Sitelink();
              siteLink2.displayText = "DVDs";
              siteLink2.destinationUrl = "http://www.example.com/dvds";

              Sitelink siteLink3 = new Sitelink();
              siteLink3.displayText = "New albums";
              siteLink3.destinationUrl = "http://www.example.com/albums/new";

              siteLinkExtension.sitelinks = new Sitelink[] {siteLink1, siteLink2, siteLink3};

              CampaignAdExtension campaignAdExtension = new CampaignAdExtension();
              campaignAdExtension.adExtension = siteLinkExtension;
              campaignAdExtension.campaignId = campaignId;

              // Create the operation.
              CampaignAdExtensionOperation operation = new CampaignAdExtensionOperation();
              operation.@operator = Operator.ADD;
              operation.operand = campaignAdExtension;

              // Create the sitelinks.
              CampaignAdExtensionReturnValue retVal =
              campaignExtensionService.mutate(new CampaignAdExtensionOperation[] {operation});

              return (retVal.value[0].adExtension as SitelinksExtension).sitelinks;
        }