private static AbsoluteDateRange BuildAbsoluteDateRange(String startDate, String endDate)
        {
            DateTime start_dt = DateTime.ParseExact(startDate, dateFormat,
                                                    new CultureInfo("en-US"));
            DateTime end_dt = DateTime.ParseExact(endDate, dateFormat,
                                                  new CultureInfo("en-US"));

            if (end_dt < start_dt)
            {
                throw new ArgumentException("Error: The end date can't be before the start date.");
            }

            Date start = new Date()
            {
                Year  = start_dt.Year,
                Month = start_dt.Month,
                Day   = start_dt.Day
            };

            Date end = new Date()
            {
                Year  = end_dt.Year,
                Month = end_dt.Month,
                Day   = end_dt.Day
            };

            AbsoluteDateRange dateRange = new AbsoluteDateRange()
            {
                StartDate = start,
                EndDate   = end
            };

            return(dateRange);
        }
Example #2
0
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="service">An authenticated AdExchangeBuyerIIService</param>
        public override void Run(BaseClientService service)
        {
            AdExchangeBuyerIIService adXService = (AdExchangeBuyerIIService)service;
            string bidderResourceId             = "INSERT_BIDDER_RESOURCE_ID_HERE";
            string ownerName = String.Format("bidders/{0}", bidderResourceId);

            ListFilterSetsResponse response = adXService.Bidders.FilterSets.List(ownerName)
                                              .Execute();

            Console.WriteLine("========================================\n");
            Console.WriteLine("Listing of filter sets associated with owner name \"{0}\"",
                              ownerName);
            Console.WriteLine("========================================\n");

            if (response.FilterSets.Count == 0)
            {
                Console.WriteLine("No filter sets found.");
            }
            else
            {
                foreach (FilterSet filterSet in response.FilterSets)
                {
                    Console.WriteLine("* Name: {0}", filterSet.Name);
                    AbsoluteDateRange absDateRange = filterSet.AbsoluteDateRange;
                    if (absDateRange != null)
                    {
                        Console.WriteLine("\tAbsoluteDateRange:");
                        Date startDate = absDateRange.StartDate;
                        Console.WriteLine("\t\tStartDate:");
                        Console.WriteLine("\t\t\tYear: {0}", startDate.Year);
                        Console.WriteLine("\t\t\tMonth: {0}", startDate.Month);
                        Console.WriteLine("\t\t\tDay: {0}", startDate.Day);
                        Date endDate = absDateRange.EndDate;
                        Console.WriteLine("\t\tEndDate:");
                        Console.WriteLine("\t\t\tYear: {0}", endDate.Year);
                        Console.WriteLine("\t\t\tMonth: {0}", endDate.Month);
                        Console.WriteLine("\t\t\tDay: {0}", endDate.Day);
                    }
                    RelativeDateRange relDateRange = filterSet.RelativeDateRange;
                    if (relDateRange != null)
                    {
                        Console.WriteLine("\tRelativeDateRange:");
                        Console.WriteLine("\t\tOffsetDays: {0}", relDateRange.OffsetDays);
                        Console.WriteLine("\t\tDurationDays: {0}", relDateRange.DurationDays);
                    }
                    RealtimeTimeRange rtTimeRange = filterSet.RealtimeTimeRange;
                    if (rtTimeRange != null)
                    {
                        Console.WriteLine("\tRealtimeTimeRange:");
                        Console.WriteLine("\t\tStartTimestamp: {0}", rtTimeRange.StartTimestamp);
                    }
                    String timeSeriesGranularity = filterSet.TimeSeriesGranularity;
                    if (timeSeriesGranularity != null)
                    {
                        Console.WriteLine("\tTimeSeriesGranularity: {0}", timeSeriesGranularity);
                    }
                    IList <String> formats = filterSet.Formats;
                    if (formats != null)
                    {
                        Console.WriteLine("\tFormats:");
                        foreach (string format in formats)
                        {
                            Console.WriteLine("\t\t{0}", format);
                        }
                    }
                    String environment = filterSet.Environment;
                    if (environment != null)
                    {
                        Console.WriteLine("\tEnvironment: {0}", environment);
                    }
                    IList <string> platforms = filterSet.Platforms;
                    if (platforms != null)
                    {
                        Console.WriteLine("\tPlatforms:");
                        foreach (string platform in platforms)
                        {
                            Console.WriteLine("\t\t{0}", platform);
                        }
                    }
                    IList <int?> sellerNetworkIds = filterSet.SellerNetworkIds;
                    if (sellerNetworkIds != null)
                    {
                        Console.WriteLine("\tSellerNetworkIds:");
                        foreach (int?sellerNetworkId in sellerNetworkIds)
                        {
                            Console.WriteLine("\t\t{0}", sellerNetworkId);
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="service">An authenticated AdExchangeBuyerIIService</param>
        public override void Run(BaseClientService service)
        {
            AdExchangeBuyerIIService adXService = (AdExchangeBuyerIIService)service;

            string bidderResourceId  = "INSERT_BIDDER_RESOURCE_ID_HERE";
            string accountResourceId = "INSERT_ACCOUNT_RESOURCE_ID_HERE";
            string resourceId        = "INSERT_DESIRED_FILTER_SET_RESOURCE_ID_HERE";
            // Optional strings representing the start and end date for the AbsoluteDateRange to be
            // used in the new filter set. The date should be specified in the given format--e.g.
            // 20170101. If left unmodified, the dates for the first and last day of the past week
            // will be used.
            string startDateString = "YYYYMMDD";
            string endDateString   = "YYYYMMDD";
            // By default, this example will create transient (temporary) filter sets. To create
            // filter sets that can be used indefinitely, set this to false.
            bool isTransient = true;

            string ownerName = string.Format("bidders/{0}/accounts/{1}", bidderResourceId,
                                             accountResourceId);

            if (startDateString.Equals("YYYYMMDD"))
            {
                if (endDateString.Equals("YYYYMMDD"))
                {
                    DateTime defaultEndDate = DateTime.Now;
                    endDateString = defaultEndDate.ToString(dateFormat);
                    DateTime defaultStartDate = defaultEndDate.AddDays(-7);
                    startDateString = defaultStartDate.ToString(dateFormat);
                }
                else
                {
                    throw new ArgumentException("Both the startDate and endDate must be set.");
                }
            }

            AbsoluteDateRange dateRange = BuildAbsoluteDateRange(startDateString, endDateString);

            FilterSet filterSet = new FilterSet
            {
                Name = string.Format("{0}/filterSets/{1}", ownerName, resourceId),
                AbsoluteDateRange = dateRange,
                CreativeId        = "INSERT_CREATIVE_ID_HERE",
                DealId            = long.Parse("INSERT_DEAL_ID_HERE"),
                // Valid values: DAILY, HOURLY
                TimeSeriesGranularity = "INSERT_TIME_SERIES_GRANULARITY_HERE",
                // Valid values: DISPLAY, VIDEO
                Format = "INSERT_FORMAT_HERE",
                // Valid values: APP, WEB
                Environment = "INSERT_ENVIRONMENT_HERE",
                // Valid values: DESKTOP, MOBILE, TABLET
                Platforms = new List <string>()
                {
                    "INSERT_PLATFORMS_HERE"
                },
                SellerNetworkIds = new List <int?>()
                {
                    int.Parse("INSERT_SELLER_NETWORK_IDS_HERE")
                }
            };

            BiddersResource.AccountsResource.FilterSetsResource.CreateRequest request =
                adXService.Bidders.Accounts.FilterSets.Create(filterSet, ownerName);
            request.IsTransient = isTransient;
            FilterSet response = request.Execute();

            Console.WriteLine("Created new account-level filter set for owner \"{0}\":",
                              ownerName);
            Console.WriteLine("Name: {0}", response.Name);
            Console.WriteLine("\tAbsoluteDateRange:");
            Date startDate = response.AbsoluteDateRange.StartDate;

            Console.WriteLine("\t\tStartDate:");
            Console.WriteLine("\t\t\tYear: {0}", startDate.Year);
            Console.WriteLine("\t\t\tMonth: {0}", startDate.Month);
            Console.WriteLine("\t\t\tDay: {0}", startDate.Day);
            Date endDate = response.AbsoluteDateRange.EndDate;

            Console.WriteLine("\t\tEndDate:");
            Console.WriteLine("\t\t\tYear: {0}", endDate.Year);
            Console.WriteLine("\t\t\tMonth: {0}", endDate.Month);
            Console.WriteLine("\t\t\tDay: {0}", endDate.Day);

            string creativeId = response.CreativeId;

            if (creativeId != null)
            {
                Console.WriteLine("\tCreativeId: {0}", creativeId);
            }
            long?dealId = response.DealId;

            if (dealId != null)
            {
                Console.WriteLine("\tDealId: {0}", dealId);
            }
            String timeSeriesGranularity = response.TimeSeriesGranularity;

            if (timeSeriesGranularity != null)
            {
                Console.WriteLine("\tTimeSeriesGranularity: {0}", timeSeriesGranularity);
            }
            String format = response.Format;

            if (format != null)
            {
                Console.WriteLine("\tFormat: {0}", format);
            }
            String environment = response.Environment;

            if (environment != null)
            {
                Console.WriteLine("\tEnvironment: {0}", environment);
            }
            IList <string> platforms = response.Platforms;

            if (platforms != null)
            {
                Console.WriteLine("\tPlatforms:");
                foreach (string platform in platforms)
                {
                    Console.WriteLine("\t\t{0}", platform);
                }
            }
            IList <int?> sellerNetworkIds = response.SellerNetworkIds;

            if (sellerNetworkIds != null)
            {
                Console.WriteLine("\tSellerNetworkIds:");
                foreach (int?sellerNetworkId in sellerNetworkIds)
                {
                    Console.WriteLine("\t\t{0}", sellerNetworkId);
                }
            }
        }