/// <summary>
    /// Run the code example.
    /// </summary>
    /// <param name="service">An initialized Dfa Reporting service object
    /// </param>
    public override void Run(DfareportingService service) {
      long campaignId = long.Parse(_T("INSERT_CAMPAIGN_ID_HERE"));
      long creativeId = long.Parse(_T("INSERT_CREATIVE_ID_HERE"));
      long placementId = long.Parse(_T("INSERT_PLACEMENT_ID_HERE"));
      long profileId = long.Parse(_T("INSERT_PROFILE_ID_HERE"));

      String adName = _T("INSERT_AD_NAME_HERE");

      // Retrieve the campaign.
      Campaign campaign = service.Campaigns.Get(profileId, campaignId).Execute();

      // Create a click-through URL.
      ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
      clickThroughUrl.DefaultLandingPage = true;

      // Create a creative assignment.
      CreativeAssignment creativeAssignment = new CreativeAssignment();
      creativeAssignment.Active = true;
      creativeAssignment.CreativeId = creativeId;
      creativeAssignment.ClickThroughUrl = clickThroughUrl;

      // Create a placement assignment.
      PlacementAssignment placementAssignment = new PlacementAssignment();
      placementAssignment.Active = true;
      placementAssignment.PlacementId = placementId;

      // Create a creative rotation.
      CreativeRotation creativeRotation = new CreativeRotation();
      creativeRotation.CreativeAssignments = new List<CreativeAssignment>() {
          creativeAssignment
      };

      // Create a delivery schedule.
      DeliverySchedule deliverySchedule = new DeliverySchedule();
      deliverySchedule.ImpressionRatio = 1;
      deliverySchedule.Priority = "AD_PRIORITY_01";

      DateTime startDate = DateTime.Now;
      DateTime endDate = Convert.ToDateTime(campaign.EndDate);

      // Create a rotation group.
      Ad rotationGroup = new Ad();
      rotationGroup.Active = true;
      rotationGroup.CampaignId = campaignId;
      rotationGroup.CreativeRotation = creativeRotation;
      rotationGroup.DeliverySchedule = deliverySchedule;
      rotationGroup.StartTime = startDate;
      rotationGroup.EndTime = endDate;
      rotationGroup.Name = adName;
      rotationGroup.PlacementAssignments = new List<PlacementAssignment>() {
          placementAssignment
      };
      rotationGroup.Type = "AD_SERVING_STANDARD_AD";

      // Insert the rotation group.
      Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();

      // Display the new ad ID.
      Console.WriteLine("Ad with ID {0} was created.", result.Id);
    }
        /// <summary>
        /// Run the code example.
        /// </summary>
        /// <param name="user">The Dfa user object running the code example.
        /// </param>
        public override void Run(DfaUser user)
        {
            // Create AdRemoteService instance.
            AdRemoteService service = (AdRemoteService)user.GetService(
                DfaService.v1_20.AdRemoteService);

            long   campaignId  = long.Parse(_T("INSERT_CAMPAIGN_ID_HERE"));
            long   sizeId      = long.Parse(_T("INSERT_SIZE_ID_HERE"));
            long   creativeId  = long.Parse(_T("INSERT_CREATIVE_ID_HERE"));
            long   placementId = long.Parse(_T("INSERT_PLACEMENT_ID_HERE"));
            String adName      = _T("INSERT_AD_NAME_HERE");
            long   typeId      = long.Parse(_T("INSERT_AD_TYPEID_HERE"));

            // Create rotation group structure.
            RotationGroup rotationGroup = new RotationGroup();

            rotationGroup.id         = 0;
            rotationGroup.name       = adName;
            rotationGroup.active     = true;
            rotationGroup.archived   = false;
            rotationGroup.campaignId = campaignId;
            rotationGroup.sizeId     = sizeId;
            rotationGroup.typeId     = typeId;
            rotationGroup.priority   = 12;
            rotationGroup.ratio      = 1;

            // Set ad start and end dates.
            rotationGroup.startTime = DateTime.Today.AddDays(1);
            rotationGroup.endTime   = DateTime.Today.AddMonths(1);

            // Add creatives to the ad.
            CreativeAssignment creativeAssignment = new CreativeAssignment();

            creativeAssignment.active     = true;
            creativeAssignment.creativeId = creativeId;

            // Create click through url.
            ClickThroughUrl clickThroughUrl = new ClickThroughUrl();

            clickThroughUrl.defaultLandingPageUsed = true;
            clickThroughUrl.landingPageId          = 0;
            creativeAssignment.clickThroughUrl     = clickThroughUrl;

            // Create creative assigments.
            rotationGroup.creativeAssignments = new CreativeAssignment[] { creativeAssignment };
            rotationGroup.rotationType        = 1;

            // Assign ad to placement.
            PlacementAssignment placementAssignment = new PlacementAssignment();

            placementAssignment.active         = true;
            placementAssignment.placementId    = placementId;
            rotationGroup.placementAssignments = new PlacementAssignment[] { placementAssignment };

            try {
                // Create rotation group.
                AdSaveResult result = service.saveAd(rotationGroup);

                // Display new ad id.
                Console.WriteLine("Ad with id \"{0}\" was created.", result.id);
            } catch (Exception ex) {
                Console.WriteLine("Failed to create rotation group. Exception says \"{0}\"", ex.Message);
            }
        }
        /// <summary>
        /// Run the code example.
        /// </summary>
        /// <param name="service">An initialized Dfa Reporting service object
        /// </param>
        public override void Run(DfareportingService service)
        {
            long campaignId  = long.Parse(_T("INSERT_CAMPAIGN_ID_HERE"));
            long creativeId  = long.Parse(_T("INSERT_CREATIVE_ID_HERE"));
            long placementId = long.Parse(_T("INSERT_PLACEMENT_ID_HERE"));
            long profileId   = long.Parse(_T("INSERT_PROFILE_ID_HERE"));

            String adName = _T("INSERT_AD_NAME_HERE");

            // Retrieve the campaign.
            Campaign campaign = service.Campaigns.Get(profileId, campaignId).Execute();

            // Create a click-through URL.
            ClickThroughUrl clickThroughUrl = new ClickThroughUrl();

            clickThroughUrl.DefaultLandingPage = true;

            // Create a creative assignment.
            CreativeAssignment creativeAssignment = new CreativeAssignment();

            creativeAssignment.Active          = true;
            creativeAssignment.CreativeId      = creativeId;
            creativeAssignment.ClickThroughUrl = clickThroughUrl;

            // Create a placement assignment.
            PlacementAssignment placementAssignment = new PlacementAssignment();

            placementAssignment.Active      = true;
            placementAssignment.PlacementId = placementId;

            // Create a creative rotation.
            CreativeRotation creativeRotation = new CreativeRotation();

            creativeRotation.CreativeAssignments = new List <CreativeAssignment>()
            {
                creativeAssignment
            };

            // Create a delivery schedule.
            DeliverySchedule deliverySchedule = new DeliverySchedule();

            deliverySchedule.ImpressionRatio = 1;
            deliverySchedule.Priority        = "AD_PRIORITY_01";

            DateTime startDate = DateTime.Now;
            DateTime endDate   = Convert.ToDateTime(campaign.EndDate);

            // Create a rotation group.
            Ad rotationGroup = new Ad();

            rotationGroup.Active               = true;
            rotationGroup.CampaignId           = campaignId;
            rotationGroup.CreativeRotation     = creativeRotation;
            rotationGroup.DeliverySchedule     = deliverySchedule;
            rotationGroup.StartTime            = startDate;
            rotationGroup.EndTime              = endDate;
            rotationGroup.Name                 = adName;
            rotationGroup.PlacementAssignments = new List <PlacementAssignment>()
            {
                placementAssignment
            };
            rotationGroup.Type = "AD_SERVING_STANDARD_AD";

            // Insert the rotation group.
            Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();

            // Display the new ad ID.
            Console.WriteLine("Ad with ID {0} was created.", result.Id);
        }