public static void getReportId()
        {
            ReportServiceClient client = new ReportServiceClient();

            AuthHeader authHeader = new AuthHeader();

            HeaderUtil.loadHeader(authHeader);

            ReportRequestType request = new ReportRequestType();

            //report type: 2 means campaign report
            request.reportType = 2;

            //statRange: 2 means statRange is campaign
            request.statRange = 2;

            DateTime startTime = DateTime.Now.AddYears(-1);

            request.startDate = startTime;
            DateTime endTime = DateTime.Now.AddDays(-1);

            request.endDate = endTime;

            request.statIds = new long[] { 3281, 984745, 984752 };

            request.performanceData = new string[] { "srch", "click", "cost", "ctr", "cpm", "acp" };

            //idOnly is not required, default value is false which means you can get literal info of material in returned result.
            //When literal info is not that useful for you, we appreciate you set true to this field, which could provide you with higher performance
            request.idOnly = false;

            //format is not required, default value is 0, means zip. you can specify 1 to csv
            request.format = 0;

            string    reportId  = null;
            ResHeader resHeader = client.getReportId(authHeader, request, out reportId);

            Console.WriteLine("ReportService.getReportId(): ");
            ObjectDumper.WriteResponse(resHeader, reportId);
        }