/// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="campaignId">The campaign ID.</param>
        public void Run(AdWordsUser user, long campaignId)
        {
            // Get the VideoCampaignCriterionService.
              VideoCampaignCriterionService service =
              (VideoCampaignCriterionService) user.GetService(
              AdWordsService.v201309.VideoCampaignCriterionService);

              try {
            VideoCampaignCriterion criterion = new VideoCampaignCriterion();
            criterion.campaignId = campaignId;

            // for a list of languages, see
            // https://devsite.googleplex.com/adwords/api/docs/appendix/languagecodes
            LanguageVideoCriterion englishCriterion = new LanguageVideoCriterion();
            englishCriterion.id = 1001L;
            criterion.criterion = englishCriterion;

            VideoCampaignCriterionOperation operation = new VideoCampaignCriterionOperation();
            operation.operand = criterion;
            operation.@operator = Operator.ADD;

            VideoCampaignCriterionReturnValue retval = service.mutate(
            new VideoCampaignCriterionOperation[] { operation });

            if (retval != null && retval.value != null && retval.value.Length > 0) {
              VideoCampaignCriterion newCriterion = retval.value[0];
              Console.WriteLine("Video campaign criterion with id = {0} and type = {1} was added " +
              "to campaign id {2}", newCriterion.criterion.id,
              newCriterion.criterion.BaseCriterionType, newCriterion.campaignId);
            } else {
              Console.WriteLine("No video campaign criteria were added.");
            }
              } catch (Exception ex) {
            throw new System.ApplicationException("Failed to add video campaign criteria.", ex);
              }
        }