How to get the Target Audience GUID Programmatically in SharePoint 2013.

Sathish Nadarajan
 
Solution Architect
April 21, 2015
 
Rate this article
 
Views
14771

In some scenarios, we require the GUID of the Target Audience Groups. To retrieve the GUIDs, the below method can be used.

 public string GetTargetContentGUID(string currentSiteURL, string targetAudiences)
         {
             string targetContent = string.Empty;
             try
             {
                 string[] targetAudienceArray = targetAudiences.Split(',');
                 foreach (string tempTargetAudience in targetAudienceArray)
                 {
                     try
                     {
                         Guid g = new Guid(tempTargetAudience);
                         targetContent = targetContent + ";" + tempTargetAudience;
                     }
                     catch (System.FormatException ex)
                     {
                         if (ex.Message == "Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).")
                         {
                             //
 
                             using (SPSite site = new SPSite(currentSiteURL))
                             {
                                 SPWeb web = site.RootWeb;
 
 
                                 Microsoft.Office.Server.ServerContext context = Microsoft.Office.Server.ServerContext.GetContext(site);
                                 AudienceManager audManager = new AudienceManager(context);
                                 AudienceCollection audiences = audManager.Audiences;
 
                                 for (int i = 0; i < audiences.Count; i++)
                                 {
                                     if (audiences[i].AudienceName == tempTargetAudience)
                                     {
                                         targetContent = targetContent + ";" + Convert.ToString(audiences[i].AudienceID);
                                     }
                                 }
 
                             }
 
                         }
                     }
 
                 }
 
 
             }
             catch (Exception ex)
             {
                 Logger.LogException("Error has occured On the Method”);
                 return string.Empty;
             }
             return targetContent.TrimStart(';');
         }
 

Here one thing we need to be more cautious is, sometimes, the Target Audience Column will store the GUID directly and sometimes, it will be stored as String. That’s the reason, I kept a Try Catch Block.

Please refer the below link about this inconsistency.

https://social.technet.microsoft.com/forums/sharepoint/en-US/d05145f4-7faf-4205-9e80-507915c04bf5/targeting-audience-displaying-guid

Happy Coding,

Sathish Nadarajan.

Author Info

Sathish Nadarajan
 
Solution Architect
 
Rate this article
 
Sathish is a Microsoft MVP for SharePoint (Office Servers and Services) having 15+ years of experience in Microsoft Technologies. He holds a Masters Degree in Computer Aided Design and Business ...read more
 

Leave a comment