/// <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.v201402.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);
      }
    }