/// <summary> /// Run the code example. /// </summary> /// <param name="user">The DFP user object running the code example.</param> public override void Run(DfpUser user) { ReportService reportService = (ReportService) user.GetService( DfpService.v201408.ReportService); // Get the NetworkService. NetworkService networkService = (NetworkService) user.GetService( DfpService.v201408.NetworkService); // Get the root ad unit ID to filter on. String rootAdUnitId = networkService.getCurrentNetwork().effectiveRootAdUnitId; // Create statement to filter on an ancestor ad unit with the root ad unit ID to include all // ad units in the network. StatementBuilder statementBuilder = new StatementBuilder() .Where("PARENT_AD_UNIT_ID = :parentAdUnitId") .AddValue("parentAdUnitId", long.Parse(rootAdUnitId)); // Create report query. ReportQuery reportQuery = new ReportQuery(); reportQuery.dimensions = new Dimension[] {Dimension.AD_UNIT_ID, Dimension.AD_UNIT_NAME}; reportQuery.columns = new Column[] {Column.AD_SERVER_IMPRESSIONS, Column.AD_SERVER_CLICKS, Column.DYNAMIC_ALLOCATION_INVENTORY_LEVEL_IMPRESSIONS, Column.DYNAMIC_ALLOCATION_INVENTORY_LEVEL_CLICKS, Column.TOTAL_INVENTORY_LEVEL_IMPRESSIONS, Column.TOTAL_INVENTORY_LEVEL_CPM_AND_CPC_REVENUE}; // Set the filter statement. reportQuery.statement = statementBuilder.ToStatement(); reportQuery.adUnitView = ReportQueryAdUnitView.HIERARCHICAL; reportQuery.dateRangeType = DateRangeType.LAST_WEEK; // Create report job. ReportJob reportJob = new ReportJob(); reportJob.reportQuery = reportQuery; try { // Run report. reportJob = reportService.runReportJob(reportJob); // Wait for report to complete. while (reportJob.reportJobStatus == ReportJobStatus.IN_PROGRESS) { Console.WriteLine("Report job with id = '{0}' is still running.", reportJob.id); Thread.Sleep(30000); // Get report job. reportJob = reportService.getReportJob(reportJob.id); } if (reportJob.reportJobStatus == ReportJobStatus.COMPLETED) { Console.WriteLine("Report job with id = '{0}' completed successfully.", reportJob.id); } else if (reportJob.reportJobStatus == ReportJobStatus.FAILED) { Console.WriteLine("Report job with id = '{0}' failed to complete successfully.", reportJob.id); } } catch (Exception ex) { Console.WriteLine("Failed to run inventory report. Exception says \"{0}\"", ex.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) { ReportService reportService = (ReportService) user.GetService( DfpService.v201408.ReportService); // Create report job. ReportJob reportJob = new ReportJob(); // Create report query. ReportQuery reportQuery = new ReportQuery(); reportQuery.dateRangeType = DateRangeType.REACH_LIFETIME; reportQuery.dimensions = new Dimension[] {Dimension.LINE_ITEM_ID, Dimension.LINE_ITEM_NAME}; reportQuery.columns = new Column[] {Column.REACH_FREQUENCY, Column.REACH_AVERAGE_REVENUE, Column.REACH}; reportJob.reportQuery = reportQuery; try { // Run report. reportJob = reportService.runReportJob(reportJob); // Wait for report to complete. while (reportJob.reportJobStatus == ReportJobStatus.IN_PROGRESS) { Console.WriteLine("Report job with id = '{0}' is still running.", reportJob.id); Thread.Sleep(30000); // Get report job. reportJob = reportService.getReportJob(reportJob.id); } if (reportJob.reportJobStatus == ReportJobStatus.COMPLETED) { Console.WriteLine("Report job with id = '{0}' completed successfully.", reportJob.id); } else if (reportJob.reportJobStatus == ReportJobStatus.FAILED) { Console.WriteLine("Report job with id = '{0}' failed to complete successfully.", reportJob.id); } } catch (Exception ex) { Console.WriteLine("Failed to run delivery report. Exception says \"{0}\"", ex.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 LineItemService. LineItemService lineItemService = (LineItemService) user.GetService(DfpService.v201408.LineItemService); // Get the ReportService. ReportService reportService = (ReportService) user.GetService(DfpService.v201408.ReportService); try { // Set the ID of the order to get line items from. long orderId = long.Parse(_T("INSERT_ORDER_ID_HERE")); // Sets default for page. LineItemPage page = new LineItemPage(); // Create a statement to only select line items from a given order. StatementBuilder statementBuilder = new StatementBuilder() .Where("orderId = :orderId") .Limit(StatementBuilder.SUGGESTED_PAGE_LIMIT) .AddValue("orderId", orderId); // Collect all line item custom field IDs for an order. List<long> customFieldIds = new List<long>(); do { // Get line items by statement. page = lineItemService.getLineItemsByStatement(statementBuilder.ToStatement()); // Get custom field IDs from the line items of an order. if (page.results != null) { foreach (LineItem lineItem in page.results) { if (lineItem.customFieldValues != null) { foreach (BaseCustomFieldValue customFieldValue in lineItem.customFieldValues) { if (!customFieldIds.Contains(customFieldValue.customFieldId)) { customFieldIds.Add(customFieldValue.customFieldId); } } } } } statementBuilder.IncreaseOffsetBy(StatementBuilder.SUGGESTED_PAGE_LIMIT); } while (statementBuilder.GetOffset() < page.totalResultSetSize); // Create statement to filter for an order. statementBuilder.RemoveLimitAndOffset(); // Create report job. ReportJob reportJob = new ReportJob(); // Create report query. ReportQuery reportQuery = new ReportQuery(); reportQuery.dateRangeType = DateRangeType.LAST_MONTH; reportQuery.dimensions = new Dimension[] {Dimension.LINE_ITEM_ID, Dimension.LINE_ITEM_NAME}; reportQuery.statement = statementBuilder.ToStatement(); reportQuery.customFieldIds = customFieldIds.ToArray(); reportQuery.columns = new Column[] {Column.AD_SERVER_IMPRESSIONS}; reportJob.reportQuery = reportQuery; // Run report job. reportJob = reportService.runReportJob(reportJob); do { Console.WriteLine("Report with ID '{0}' is still running.", reportJob.id); Thread.Sleep(30000); // Get report job. reportJob = reportService.getReportJob(reportJob.id); } while (reportJob.reportJobStatus == ReportJobStatus.IN_PROGRESS); if (reportJob.reportJobStatus == ReportJobStatus.FAILED) { Console.WriteLine("Report job with ID '{0}' failed to finish successfully.", reportJob.id); } else { Console.WriteLine("Report job with ID '{0}' completed successfully.", reportJob.id); } } catch (Exception ex) { Console.WriteLine("Failed to run cusom fields report. Exception says \"{0}\"", ex.Message); } }