FRAMES | NO FRAMES
TargetMap Method

Thematically shades selected Tapestry segments in a single color. This map helps you determine where your target segments are located.

Availability: Business Analyst Server.

TaskResultOutput TargetMap ( 
    TargetMapParameters  Parameters, 
    esriReportFormat     ReportFormat, 
    RenderingParameters  RenderingParameters, 
    TaskOutputType[]     OutputTypes, 
    esriFolderItem       OutputAnalysisItem, 
    esriFolderItem       OutputReportItem 
); 

Parameter Description
Parameters Configuration options analysis. Type TargetMapParameters.
ReportFormat This parameter should be null. This parameter is deprecated.
RenderingParameters Configuration options for rendering output when GetMapImage option is specified in the OutputTypes parameter. Type RenderingParameters.
OutputTypes Array of task output options. Options for this method include rendering output image (GetMapImage), creating a feature layer for subsequent analysis (GetFeatureClass), and creating a report (GetReport). Type TaskOutputType[].
OutputAnalysisItem (Optional parameter — can be null).
Configuration options for storing the output feature layer in the repository. This will enable viewing and working with the output result in subsequent tasks. Type esriFolderItem.
OutputReportItem (Optional parameter — can be null).
Configuration options for storing the output report in the repository. This will enable viewing and working with the output result in subsequent tasks. Type esriFolderItem.

Returns

Variable of type TaskResultOutput

Remarks

You can create a target map based on a selection of target segments. This type of map is commonly referred to as hot spot analysis. The Target Map illustrates geography locations that are assigned these target segments. This map helps you find areas of your target segments. You can use this map to direct your marketing efforts or locate a new site selection in areas where there are high concentrations of your target segments.

The following is a practical example of how you can use this method to help locate a new store and direct marketing efforts to the best locations. Assume that you have a store location in the San Diego, California area. You have a set of customer records for this store location. This particular store has been very successful, and you would like to locate a new store in San Diego in an area where the same types of customers are located. Once the new store is constructed, you want to better direct your marketing efforts for the new store and reach as many of your target customers as possible.

You would start by creating a target segmentation profile of the existing San Diego customers using the ProfileByTableGeocoding method. Then, you would create a base segmentation profile of San Diego County using the ProfileByAreaSummation method. Once the profiles are created, you can create a Customer Tapestry Profile Report using these two profiles. The results of the report indicate that your existing store has three core segments, for example:

Each of these segments has an index and a percent composition that is relatively high. You can conclude that you are dominating in these segments because these segments have a high index and make up a large portion of your customers.

If you are going to locate a new store in the San Diego area, you will want to find a location that has a high concentration of these core target segments. For example, you would create a map that illustrates the areas that are assigned to one of these three target segments within San Diego. Unlike the Target Penetration Map, the Target Map simply illustrates areas that are uniquely assigned to one of the three target segments. By default, areas that are shaded red are included in the core selected target segments. The image below illustrates how this may look.

You can use this map to guide your real estate department in selecting a new store location. You can also use this map to direct your marketing efforts in these same ZIP Codes. For example, you may want to place advertisements on billboards in these areas. In both cases, the areas shaded red, are the best locations.

Usage Tips

Examples

The example below generates a feature layer and report describing areas of interest within an analysis extent. The areas have a dominant market Tapestry segment code equal to a specified value. Target map output analysis layer and report are saved to the repository.

NOTE: See GetSegments lookup operation to query available Tapestry segments.

C#
// Instantiate the BAServerHelper class to access analysis methods
BAServerHelper baServerHelper = new BAServerHelper();
baServerHelper.ActiveDatasetID = "USA_ESRI"; // Optional parameter
baServerHelper.IsFullErrorMessage = true;    // Default is false
 
// You can specify below a domain of your local Business Analyst Server.
//baServerHelper.BAServerDomain = "esri.com";
 
// If a domain name is specified, a local server name in output URLs is replaced with the
// fully-addressable server name so people and machines outside the domain of your local
// Business Analyst Server instance can access these URLs.
 
RenderingParameters imageOptions;
TaskOutputType[] outputOptions;
esriFolderItem outputLayer;
esriFolderItem outputReport;
 
// ========= STEP 1: Create a record set by store addresses
 
RecordSetByAddress[] storeAddresses = new RecordSetByAddress[1];
 
storeAddresses[0] = new RecordSetByAddress();
storeAddresses[0].Name = "study_site";
storeAddresses[0].Description = "Manhattan Study Site";
storeAddresses[0].StoreID = "1";
storeAddresses[0].Address = "255 W. 44th St.";
storeAddresses[0].City = "New York";
storeAddresses[0].State = "NY";
storeAddresses[0].ZIP = "10036";
 
TaskResultOutput recordSetByAddressResult =
    baServerHelper.CreateRecordSetByAddresses(storeAddresses, esriFolderType.esriFolderStoreLayers);
 
TableData tableData = new TableData();
tableData.RecordSet = recordSetByAddressResult.RecordSet;
GeocodeData geocodeData = new GeocodeData();
geocodeData.Table = tableData;
 
// ========= STEP 2: Geocode the record set with the store
 
CustomerStoreSetupByGeocodeTableParameters geocodeParameters = new CustomerStoreSetupByGeocodeTableParameters();
 
// Set specific analysis parameters
geocodeParameters.GeocodeCustomers = false;
geocodeParameters.GeocodeData = geocodeData;
geocodeParameters.NameField = "NAME";
geocodeParameters.StoreIDField = "STORE_ID";
 
// Set other parameters
imageOptions = null;
outputOptions = new TaskOutputType[] { TaskOutputType.GetFeatureClass };
outputLayer = null;
 
TaskResultOutput storeGeocodeResult =
    baServerHelper.CustomerStoreSetupByGeocodeTable(geocodeParameters, imageOptions, outputOptions, outputLayer);
 
PointLayer storeLayer = new PointLayer();
storeLayer.RecordSet = storeGeocodeResult.RecordSet;
 
// ========= STEP 3: Create an analysis extent by 5-mile ring around the store
 
SimpleRingsParameters simpleRingsParameters = new SimpleRingsParameters();
 
// Set specific analysis parameters
simpleRingsParameters.DistanceUnits = esriUnits.esriMiles;
simpleRingsParameters.Radii = new double[] { 5 };
simpleRingsParameters.SingleStoreID = "1";
simpleRingsParameters.StoreIDField = "STORE_ID";
simpleRingsParameters.Stores = storeLayer;
 
// Set other parameters
imageOptions = null;
outputOptions = new TaskOutputType[] { TaskOutputType.GetFeatureClass };
outputLayer = null;
outputReport = null;
 
TaskResultOutput simpleRingsResult =
    baServerHelper.SimpleRings(simpleRingsParameters, imageOptions, outputOptions, outputLayer, outputReport);
 
PolygonN polygon = (PolygonN)simpleRingsResult.RecordSet.Records[0].Values[1];
ExtentData extentData = new ExtentData();
extentData.Extent = polygon.Extent;
 
// ========= STEP 4: Execute the analysis
 
TargetMapParameters parameters = new TargetMapParameters();
 
// Set specific analysis parameters
parameters.AnalysisExtent = extentData;
parameters.SegmentationBase = "Total Households";
parameters.SegmentationLevel = "US.ZIP5";
 
// The following tapestry segments are selected: 1 ("TOP RUNG") and 3 ("CONNOISSEURS")
parameters.SelectedSegments = new string[] { "1", "3" };
 
// Set report options
ReportOptions reportOptions = new ReportOptions();
reportOptions.ReportFormat = "PDF";
reportOptions.ReportHeader = new KeyValue[1];
reportOptions.ReportHeader[0] = new KeyValue();
reportOptions.ReportHeader[0].Key = "subtitle";
reportOptions.ReportHeader[0].Value = "Target Map Report for 5-mile ring";
parameters.StandardReportOptions = reportOptions;
 
// Set other parameters
outputOptions = new TaskOutputType[] { TaskOutputType.GetFeatureClass, TaskOutputType.GetReport };
 
// In general, a non-null esriFolderItem is specified to save a newly-created
// item to the server-side repository or to reference an existing item in it.
outputLayer = new esriFolderItem();
outputLayer.folderType = esriFolderType.esriFolderAnalyses;
outputLayer.itemName = "analysisLayer_TargetMap";
outputLayer.projectName = "Default Project";
outputLayer.workspaceName = "Default Workspace";
 
// In general, a non-null esriFolderItem is specified to save a newly-created
// item to the server-side repository or to reference an existing item in it.
outputReport = new esriFolderItem();
outputReport.folderType = esriFolderType.esriFolderReports;
outputReport.itemName = "report_TargetMap";
outputReport.projectName = "Default Project";
outputReport.workspaceName = "Default Workspace";
 
TaskResultOutput result = baServerHelper.TargetMap(parameters, imageOptions, outputOptions, outputLayer, outputReport);
 
string reportURL = result.Reports[0].ReportURL;

See Also