Inheritance: Criterion
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="adGroupId">Id of the ad group to which criteria are
        /// added.</param>
        public void Run(AdWordsUser user, long adGroupId)
        {
            // Get the AdGroupCriterionService.
              AdGroupCriterionService adGroupCriterionService =
              (AdGroupCriterionService) user.GetService(AdWordsService.v201309.AdGroupCriterionService);

              // Create biddable ad group criterion for gender
              Gender genderTarget = new Gender();
              // Criterion Id for male. The IDs can be found here
              // https://developers.google.com/adwords/api/docs/appendix/genders
              genderTarget.id = 10;

              BiddableAdGroupCriterion genderBiddableAdGroupCriterion = new BiddableAdGroupCriterion();
              genderBiddableAdGroupCriterion.adGroupId = adGroupId;
              genderBiddableAdGroupCriterion.criterion = genderTarget;

              // Create negative ad group criterion for age range
              AgeRange ageRangeNegative = new AgeRange();
              // Criterion Id for age 18 to 24. The IDs can be found here
              // https://developers.google.com/adwords/api/docs/appendix/ages

              ageRangeNegative.id = 503001;
              NegativeAdGroupCriterion ageRangeNegativeAdGroupCriterion = new NegativeAdGroupCriterion();
              ageRangeNegativeAdGroupCriterion.adGroupId = adGroupId;
              ageRangeNegativeAdGroupCriterion.criterion = ageRangeNegative;

              // Create operations.
              AdGroupCriterionOperation genderBiddableAdGroupCriterionOperation =
              new AdGroupCriterionOperation();
              genderBiddableAdGroupCriterionOperation.operand = genderBiddableAdGroupCriterion;
              genderBiddableAdGroupCriterionOperation.@operator = Operator.ADD;

              AdGroupCriterionOperation ageRangeNegativeAdGroupCriterionOperation =
              new AdGroupCriterionOperation();
              ageRangeNegativeAdGroupCriterionOperation.operand = ageRangeNegativeAdGroupCriterion;
              ageRangeNegativeAdGroupCriterionOperation.@operator = Operator.ADD;

              AdGroupCriterionOperation[] operations = new AdGroupCriterionOperation[] {
              genderBiddableAdGroupCriterionOperation, ageRangeNegativeAdGroupCriterionOperation};

              try {
            // Add ad group criteria.
            AdGroupCriterionReturnValue result = adGroupCriterionService.mutate(operations);

            // Display ad group criteria.
            if (result != null && result.value != null) {
              foreach (AdGroupCriterion adGroupCriterionResult in result.value) {
            Console.WriteLine("Ad group criterion with ad group id \"{0}\", criterion id " +
                "\"{1}\", and type \"{2}\" was added.", adGroupCriterionResult.adGroupId,
                adGroupCriterionResult.criterion.id,
                adGroupCriterionResult.criterion.CriterionType);
              }
            } else {
              Console.WriteLine("No ad group criteria were added.");
            }
              } catch (Exception ex) {
            throw new System.ApplicationException("Failed to create ad group criteria.", ex);
              }
        }