/// <summary>
        /// Run the example.
        /// </summary>
        /// <param name="parsedArgs">Parsed arguments for the example.</param>
        protected override void Run(Dictionary <string, object> parsedArgs)
        {
            string accountId = (string)parsedArgs["account_id"];
            string parent    = $"bidders/{accountId}";

            NumericTargetingDimension geoTargeting = new NumericTargetingDimension();

            geoTargeting.IncludedIds = (IList <long?>)parsedArgs["included_geo_ids"];
            geoTargeting.ExcludedIds = (IList <long?>)parsedArgs["excluded_geo_ids"];

            NumericTargetingDimension userListTargeting = new NumericTargetingDimension();

            userListTargeting.IncludedIds = (IList <long?>)parsedArgs["included_user_list_ids"];
            userListTargeting.ExcludedIds = (IList <long?>)parsedArgs["excluded_user_list_ids"];

            NumericTargetingDimension verticalTargeting = new NumericTargetingDimension();

            verticalTargeting.IncludedIds = (IList <long?>)parsedArgs["included_vertical_ids"];
            verticalTargeting.ExcludedIds = (IList <long?>)parsedArgs["excluded_vertical_ids"];

            CreativeDimensions dimensions = new CreativeDimensions();

            dimensions.Height = (long?)parsedArgs["included_creative_dimension_height"];
            dimensions.Width  = (long?)parsedArgs["included_creative_dimension_width"];

            StringTargetingDimension webTargeting = new StringTargetingDimension();

            webTargeting.TargetingMode = (string)parsedArgs["web_targeting_mode"];
            webTargeting.Values        = (IList <string>)parsedArgs["web_targeting_urls"];

            StringTargetingDimension mobileAppTargeting = new StringTargetingDimension();

            mobileAppTargeting.TargetingMode = (string)parsedArgs["mobile_app_targeting_mode"];
            mobileAppTargeting.Values        = (IList <string>)parsedArgs["mobile_app_targeting_app_ids"];

            NumericTargetingDimension mobileAppCategoryTargeting = new NumericTargetingDimension();

            mobileAppCategoryTargeting.IncludedIds = (IList <long?>)parsedArgs[
                "included_mobile_app_targeting_category_ids"];
            mobileAppCategoryTargeting.ExcludedIds = (IList <long?>)parsedArgs[
                "excluded_mobile_app_targeting_category_ids"];

            AppTargeting appTargeting = new AppTargeting();

            appTargeting.MobileAppTargeting         = mobileAppTargeting;
            appTargeting.MobileAppCategoryTargeting = mobileAppCategoryTargeting;

            StringTargetingDimension publisherTargeting = new StringTargetingDimension();

            publisherTargeting.TargetingMode = (string)parsedArgs["publisher_targeting_mode"];
            publisherTargeting.Values        = (IList <string>)parsedArgs["publisher_ids"];

            PretargetingConfig newConfig = new PretargetingConfig();

            newConfig.DisplayName               = (string)parsedArgs["display_name"];
            newConfig.IncludedFormats           = (IList <string>)parsedArgs["included_formats"];
            newConfig.GeoTargeting              = geoTargeting;
            newConfig.UserListTargeting         = userListTargeting;
            newConfig.InterstitialTargeting     = (string)parsedArgs["interstitial_targeting"];
            newConfig.AllowedUserTargetingModes = (IList <string>)parsedArgs[
                "allowed_user_targeting_modes"];
            newConfig.ExcludedContentLabelIds = (IList <long?>)parsedArgs[
                "excluded_content_label_ids"];
            newConfig.IncludedUserIdTypes = (IList <string>)parsedArgs["included_user_id_types"];
            newConfig.IncludedLanguages   = (IList <string>)parsedArgs["included_language_codes"];
            newConfig.IncludedMobileOperatingSystemIds = (IList <long?>)parsedArgs[
                "included_mobile_os_ids"];
            newConfig.VerticalTargeting          = verticalTargeting;
            newConfig.IncludedPlatforms          = (IList <string>)parsedArgs["included_platforms"];
            newConfig.IncludedCreativeDimensions = new List <CreativeDimensions> {
                dimensions
            };
            newConfig.IncludedEnvironments     = (IList <string>)parsedArgs["included_environments"];
            newConfig.WebTargeting             = webTargeting;
            newConfig.AppTargeting             = appTargeting;
            newConfig.PublisherTargeting       = publisherTargeting;
            newConfig.MinimumViewabilityDecile = (int?)parsedArgs["minimum_viewability_decile"];

            BiddersResource.PretargetingConfigsResource.CreateRequest request =
                rtbService.Bidders.PretargetingConfigs.Create(newConfig, parent);
            PretargetingConfig response = null;

            Console.WriteLine("Creating pretargeting configuration for bidder: {0}", parent);

            try
            {
                response = request.Execute();
            }
            catch (System.Exception exception)
            {
                throw new ApplicationException(
                          $"Real-time Bidding API returned error response:\n{exception.Message}");
            }

            Utilities.PrintPretargetingConfiguration(response);
        }
Example #2
0
        /// <summary>
        /// Print a human-readable representation of a single pretargeting configuration.
        /// </summary>
        public static void PrintPretargetingConfiguration(PretargetingConfig configuration)
        {
            Console.WriteLine("* Pretargeting configuration name: {0}", configuration.Name);
            Console.WriteLine("\t- Display name: {0}", configuration.DisplayName);
            Console.WriteLine("\t- Billing ID: {0}", configuration.BillingId);
            Console.WriteLine("\t- State: {0}", configuration.State);

            long?maximumQps = configuration.MaximumQps;

            if (maximumQps != null)
            {
                Console.WriteLine("\t- Maximum QPS: {0}", maximumQps);
            }

            string interstitialTargeting = configuration.InterstitialTargeting;

            if (interstitialTargeting != null)
            {
                Console.WriteLine("\t- Interstitial targeting: {0}", interstitialTargeting);
            }

            int?minimumViewabilityDecile = configuration.MinimumViewabilityDecile;

            if (minimumViewabilityDecile != null)
            {
                Console.WriteLine("\t- Minimum viewability decile: {0}", minimumViewabilityDecile);
            }

            IList <string> includedFormats = configuration.IncludedFormats;

            if (includedFormats != null)
            {
                Console.WriteLine("\t- Included formats:\n\t\t" +
                                  String.Join("\n\t\t", includedFormats));
            }

            NumericTargetingDimension geoTargeting = configuration.GeoTargeting;

            if (geoTargeting != null)
            {
                IList <long?> includedIds = geoTargeting.IncludedIds;
                if (includedIds != null)
                {
                    Console.WriteLine("\t- Included geo IDs:\n\t\t" +
                                      String.Join("\n\t\t", includedIds));
                }

                IList <long?> excludedIds = geoTargeting.ExcludedIds;
                if (excludedIds != null)
                {
                    Console.WriteLine("\t- Excluded geo IDs:\n\t\t" +
                                      String.Join("\n\t\t", excludedIds));
                }
            }

            IList <long?> invalidGeoIDs = configuration.InvalidGeoIds;

            if (invalidGeoIDs != null)
            {
                Console.WriteLine("\t- Invalid Geo IDs:\n\t\t" +
                                  String.Join("\n\t\t", invalidGeoIDs));
            }

            NumericTargetingDimension userListTargeting = configuration.UserListTargeting;

            if (userListTargeting != null)
            {
                IList <long?> includedIds = userListTargeting.IncludedIds;
                if (includedIds != null)
                {
                    Console.WriteLine("\t- Included user list IDs:\n\t\t" +
                                      String.Join("\n\t\t", includedIds));
                }

                IList <long?> excludedIds = userListTargeting.ExcludedIds;
                if (excludedIds != null)
                {
                    Console.WriteLine("\t- Excluded user list IDs:\n\t\t" +
                                      String.Join("\n\t\t", excludedIds));
                }
            }

            IList <string> allowedUserTargetingModes = configuration.AllowedUserTargetingModes;

            if (allowedUserTargetingModes != null)
            {
                Console.WriteLine("\t- Allowed user targeting modes:\n\t\t" +
                                  String.Join("\n\t\t", allowedUserTargetingModes));
            }

            IList <long?> excludedContentLabelIds = configuration.ExcludedContentLabelIds;

            if (excludedContentLabelIds != null)
            {
                Console.WriteLine("\t- Excluded content label IDs:\n\t\t" +
                                  String.Join("\n\t\t", excludedContentLabelIds));
            }

            IList <string> includedUserIdTypes = configuration.IncludedUserIdTypes;

            if (includedUserIdTypes != null)
            {
                Console.WriteLine("\t- Included user ID types:\n\t\t" +
                                  String.Join("\n\t\t", includedUserIdTypes));
            }

            IList <string> includedLanguages = configuration.IncludedLanguages;

            if (includedLanguages != null)
            {
                Console.WriteLine("\t- Included laguages:\n\t\t" +
                                  String.Join("\n\t\t", includedLanguages));
            }

            IList <long?> includedMobileOsIds = configuration.IncludedMobileOperatingSystemIds;

            if (includedMobileOsIds != null)
            {
                Console.WriteLine("\t- Included mobile operating system IDs:\n\t\t" +
                                  String.Join("\n\t\t", includedMobileOsIds));
            }

            NumericTargetingDimension verticalTargeting = configuration.VerticalTargeting;

            if (verticalTargeting != null)
            {
                IList <long?> includedIds = verticalTargeting.IncludedIds;
                if (includedIds != null)
                {
                    Console.WriteLine("\t- Included vertical IDs:\n\t\t" +
                                      String.Join("\n\t\t", includedIds));
                }

                IList <long?> excludedIds = verticalTargeting.ExcludedIds;
                if (excludedIds != null)
                {
                    Console.WriteLine("\t- Excluded vertical IDs:\n\t\t" +
                                      String.Join("\n\t\t", excludedIds));
                }
            }

            IList <string> includedPlatforms = configuration.IncludedPlatforms;

            if (includedPlatforms != null)
            {
                Console.WriteLine("\t- Included platforms:\n\t\t" +
                                  String.Join("\n\t\t", includedPlatforms));
            }

            IList <CreativeDimensions> creativeDimensions =
                configuration.IncludedCreativeDimensions;

            if (creativeDimensions != null && creativeDimensions.Count > 0)
            {
                Console.WriteLine("\t- Included creative dimensions:");
                foreach (CreativeDimensions creativeDimension in creativeDimensions)
                {
                    Console.WriteLine("\t\tHeight: {0}; Width: {1}",
                                      creativeDimension.Height, creativeDimension.Width);
                }
            }

            IList <string> includedEnvironments = configuration.IncludedEnvironments;

            if (includedEnvironments != null)
            {
                Console.WriteLine("\t- Included environments:\n\t\t" +
                                  String.Join("\n\t\t", includedEnvironments));
            }

            StringTargetingDimension webTargeting = configuration.WebTargeting;

            if (webTargeting != null)
            {
                Console.WriteLine("\t- Web targeting:");
                Console.WriteLine("\t\t- Targeting mode: {0}", webTargeting.TargetingMode);
                Console.WriteLine("\t\t- Site URLs:\n\t\t\t" +
                                  String.Join("\n\t\t\t", webTargeting.Values));
            }

            AppTargeting appTargeting = configuration.AppTargeting;

            if (appTargeting != null)
            {
                Console.WriteLine("\t- App targeting:");

                StringTargetingDimension mobileAppTargeting = appTargeting.MobileAppTargeting;
                if (mobileAppTargeting != null)
                {
                    Console.WriteLine("\t\t- Mobile app targeting:");
                    Console.WriteLine("\t\t\t- Targeting mode: {0}",
                                      mobileAppTargeting.TargetingMode);
                    Console.WriteLine("\t\t\t- Mobile app IDs:\n\t\t\t\t" +
                                      String.Join("\n\t\t\t\t", mobileAppTargeting.Values));
                }

                NumericTargetingDimension mobileAppCategoryTargeting =
                    appTargeting.MobileAppCategoryTargeting;
                if (mobileAppCategoryTargeting != null)
                {
                    Console.WriteLine("\t\t- Mobile app category targeting:");
                    IList <long?> includedIds = mobileAppCategoryTargeting.IncludedIds;
                    if (includedIds != null)
                    {
                        Console.WriteLine("\t\t\t- Included mobile app category targeting IDs:" +
                                          "\n\t\t\t\t" + String.Join("\n\t\t\t\t", includedIds));
                    }

                    IList <long?> excludedIds = mobileAppCategoryTargeting.ExcludedIds;
                    if (excludedIds != null)
                    {
                        Console.WriteLine("\t\t\t- Excluded mobile app category targeting IDs:" +
                                          "\n\t\t\t\t" + String.Join("\n\t\t\t\t", excludedIds));
                    }
                }
            }

            StringTargetingDimension publisherTargeting = configuration.PublisherTargeting;

            if (publisherTargeting != null)
            {
                Console.WriteLine("\t- Publisher targeting:");
                Console.WriteLine("\t\t- Targeting mode: {0}", publisherTargeting.TargetingMode);
                Console.WriteLine("\t\t- Publisher IDs:\n\t\t\t" +
                                  String.Join("\n\t\t\t", publisherTargeting.Values));
            }
        }