/// <summary>
        /// Run the code example.
        /// </summary>
        public void Run(DfpUser user)
        {
            using (AudienceSegmentService audienceSegmentService =
                       (AudienceSegmentService)user.GetService(DfpService.v201802.AudienceSegmentService))
            {
                // Set the ID of the audience segment to update.
                int audienceSegmentId = int.Parse(_T("INSERT_AUDIENCE_SEGMENT_ID_HERE"));

                // Create a statement to only select a specified first party audience
                // segment.
                StatementBuilder statementBuilder = new StatementBuilder()
                                                    .Where("id = :audienceSegmentId").OrderBy("id ASC").Limit(1)
                                                    .AddValue("audienceSegmentId", audienceSegmentId);

                try
                {
                    // Get the audience segment.
                    RuleBasedFirstPartyAudienceSegment audienceSegment =
                        (RuleBasedFirstPartyAudienceSegment)audienceSegmentService
                        .getAudienceSegmentsByStatement(statementBuilder.ToStatement())
                        .results[0];

                    // Update the member expiration days.
                    audienceSegment.membershipExpirationDays = 180;

                    // Update the audience segment on the server.
                    AudienceSegment[] audienceSegments =
                        audienceSegmentService.updateAudienceSegments(
                            new FirstPartyAudienceSegment[]
                    {
                        audienceSegment
                    });

                    foreach (AudienceSegment updatedAudienceSegment in audienceSegments)
                    {
                        Console.WriteLine(
                            "Audience segment with ID \"{0}\" and name \"{1}\" was updated.\n",
                            updatedAudienceSegment.id, updatedAudienceSegment.name);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Failed to update audience segment. Exception says \"{0}\"",
                                      e.Message);
                }
            }
        }
Example #2
0
        /// <summary>
        /// Run the code example.
        /// </summary>
        /// <param name="user">The DFP user object running the code example.</param>
        public override void Run(DfpUser user)
        {
            // Get the AudienceSegmentService.
            AudienceSegmentService audienceSegmentService =
                (AudienceSegmentService)user.GetService(DfpService.v201311.AudienceSegmentService);

            string audienceSegmentId = _T("INSERT_AUDIENCE_SEGMENT_ID_HERE");

            // Create a statement to only select a specified first party audience
            // segment.
            string statementText = "where id = :audienceSegmentId order by id ASC " +
                                   "LIMIT 1";
            Statement statement = new StatementBuilder(statementText)
                                  .AddValue("audienceSegmentId", audienceSegmentId)
                                  .ToStatement();

            try {
                // Get the audience segment.
                RuleBasedFirstPartyAudienceSegment audienceSegment =
                    (RuleBasedFirstPartyAudienceSegment)audienceSegmentService
                    .getAudienceSegmentsByStatement(statement).results[0];

                // Update the member expiration days.
                audienceSegment.membershipExpirationDays = 180;

                // Update the audience segment on the server.
                AudienceSegment[] audienceSegments = audienceSegmentService.updateAudienceSegments(
                    new FirstPartyAudienceSegment[] { audienceSegment });

                foreach (AudienceSegment updatedAudienceSegment in audienceSegments)
                {
                    Console.WriteLine(
                        "Audience segment with ID \"{0}\" and name \"{1}\" was updated.\n",
                        updatedAudienceSegment.id, updatedAudienceSegment.name);
                }
            } catch (Exception ex) {
                Console.WriteLine("Failed to update audience segment. Exception says \"{0}\"",
                                  ex.Message);
            }
        }
        /// <summary>
        /// Run the code example.
        /// </summary>
        public void Run(AdManagerUser user)
        {
            using (AudienceSegmentService audienceSegmentService =
                       user.GetService <AudienceSegmentService>())
            {
                // Get the NetworkService.
                NetworkService networkService =
                    user.GetService <NetworkService>();

                long customTargetingKeyId   = long.Parse(_T("INSERT_CUSTOM_TARGETING_KEY_ID_HERE"));
                long customTargetingValueId =
                    long.Parse(_T("INSERT_CUSTOM_TARGETING_VALUE_ID_HERE"));

                try
                {
                    // Get the root ad unit ID used to target the whole site.
                    String rootAdUnitId = networkService.getCurrentNetwork().effectiveRootAdUnitId;

                    // Create inventory targeting.
                    InventoryTargeting inventoryTargeting = new InventoryTargeting();

                    // Create ad unit targeting for the root ad unit (i.e. the whole network).
                    AdUnitTargeting adUnitTargeting = new AdUnitTargeting();
                    adUnitTargeting.adUnitId           = rootAdUnitId;
                    adUnitTargeting.includeDescendants = true;

                    inventoryTargeting.targetedAdUnits = new AdUnitTargeting[]
                    {
                        adUnitTargeting
                    };

                    // Create the custom criteria to be used in the segment rule.
                    // CUSTOM_TARGETING_KEY_ID == CUSTOM_TARGETING_VALUE_ID
                    CustomCriteria customCriteria = new CustomCriteria();
                    customCriteria.keyId     = customTargetingKeyId;
                    customCriteria.@operator = CustomCriteriaComparisonOperator.IS;
                    customCriteria.valueIds  = new long[]
                    {
                        customTargetingValueId
                    };

                    // Create the custom criteria expression.
                    CustomCriteriaSet topCustomCriteriaSet = new CustomCriteriaSet();
                    topCustomCriteriaSet.logicalOperator = CustomCriteriaSetLogicalOperator.AND;
                    topCustomCriteriaSet.children        = new CustomCriteriaNode[]
                    {
                        customCriteria
                    };

                    // Create the audience segment rule.
                    FirstPartyAudienceSegmentRule rule = new FirstPartyAudienceSegmentRule();
                    rule.inventoryRule      = inventoryTargeting;
                    rule.customCriteriaRule = topCustomCriteriaSet;

                    // Create an audience segment.
                    RuleBasedFirstPartyAudienceSegment audienceSegment =
                        new RuleBasedFirstPartyAudienceSegment();
                    audienceSegment.name =
                        "Sports enthusiasts audience segment #" + this.GetTimeStamp();
                    audienceSegment.description =
                        "Sports enthusiasts between the ages of 20 and 30.";
                    audienceSegment.pageViews   = 6;
                    audienceSegment.recencyDays = 6;
                    audienceSegment.membershipExpirationDays = 88;
                    audienceSegment.rule = rule;

                    // Create the audience segment on the server.
                    AudienceSegment[] audienceSegments =
                        audienceSegmentService.createAudienceSegments(
                            new FirstPartyAudienceSegment[]
                    {
                        audienceSegment
                    });

                    foreach (AudienceSegment createdAudienceSegment in audienceSegments)
                    {
                        Console.WriteLine(
                            "An audience segment with ID \"{0}\", name \"{1}\", and " +
                            "type \"{2}\" was created.", createdAudienceSegment.id,
                            createdAudienceSegment.name, createdAudienceSegment.type);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Failed to get audience segment. Exception says \"{0}\"",
                                      e.Message);
                }
            }
        }
    /// <summary>
    /// Run the code example.
    /// </summary>
    /// <param name="user">The DFP user object running the code example.</param>
    public override void Run(DfpUser user) {
      // Get the AudienceSegmentService.
      AudienceSegmentService audienceSegmentService = (AudienceSegmentService) user.GetService(
          DfpService.v201508.AudienceSegmentService);

      // Get the NetworkService.
      NetworkService networkService = (NetworkService) user.GetService(
          DfpService.v201508.NetworkService);

      long customTargetingKeyId = long.Parse(_T("INSERT_CUSTOM_TARGETING_KEY_ID_HERE"));
      long customTargetingValueId = long.Parse(_T("INSERT_CUSTOM_TARGETING_VALUE_ID_HERE"));

      try {
        // Get the root ad unit ID used to target the whole site.
        String rootAdUnitId = networkService.getCurrentNetwork().effectiveRootAdUnitId;

        // Create inventory targeting.
        InventoryTargeting inventoryTargeting = new InventoryTargeting();

        // Create ad unit targeting for the root ad unit (i.e. the whole network).
        AdUnitTargeting adUnitTargeting = new AdUnitTargeting();
        adUnitTargeting.adUnitId = rootAdUnitId;
        adUnitTargeting.includeDescendants = true;

        inventoryTargeting.targetedAdUnits = new AdUnitTargeting[] {adUnitTargeting};

        // Create the custom criteria to be used in the segment rule.
        // CUSTOM_TARGETING_KEY_ID == CUSTOM_TARGETING_VALUE_ID
        CustomCriteria customCriteria = new CustomCriteria();
        customCriteria.keyId = customTargetingKeyId;
        customCriteria.@operator = CustomCriteriaComparisonOperator.IS;
        customCriteria.valueIds = new long[] {customTargetingValueId};

        // Create the custom criteria expression.
        CustomCriteriaSet topCustomCriteriaSet = new CustomCriteriaSet();
        topCustomCriteriaSet.logicalOperator = CustomCriteriaSetLogicalOperator.AND;
        topCustomCriteriaSet.children = new CustomCriteriaNode[] {customCriteria};

        // Create the audience segment rule.
        FirstPartyAudienceSegmentRule rule = new FirstPartyAudienceSegmentRule();
        rule.inventoryRule = inventoryTargeting;
        rule.customCriteriaRule = topCustomCriteriaSet;

        // Create an audience segment.
        RuleBasedFirstPartyAudienceSegment audienceSegment =
            new RuleBasedFirstPartyAudienceSegment();
        audienceSegment.name = "Sports enthusiasts audience segment #" + this.GetTimeStamp();
        audienceSegment.description = "Sports enthusiasts between the ages of 20 and 30.";
        audienceSegment.pageViews = 6;
        audienceSegment.recencyDays = 6;
        audienceSegment.membershipExpirationDays = 88;
        audienceSegment.rule = rule;

        // Create the audience segment on the server.
        AudienceSegment[] audienceSegments = audienceSegmentService.createAudienceSegments(
            new FirstPartyAudienceSegment[] {audienceSegment});

        foreach (AudienceSegment createdAudienceSegment in audienceSegments) {
          Console.WriteLine("An audience segment with ID \"{0}\", name \"{1}\", and type \"{2}\" " +
              "was created.", createdAudienceSegment.id, createdAudienceSegment.name,
              createdAudienceSegment.type);
        }
      } catch (Exception e) {
        Console.WriteLine("Failed to get audience segment. Exception says \"{0}\"", e.Message);
      }
    }