Expand my Community achievements bar.

SOLVED

Asset Metadata Sharing From JSON

Avatar

Level 2

Hi. I am working through an idea of building a National Park Map that uses geolocation to show users information about nearby parks. Basically, the user would land on the homepage and be presented with any relevant news, video, or audio from the closest park.

I was thinking of creating new templates for each asset type (news, audio, video) which allows me to identify the metadata (title, url of the asset) and assign lat and long coordinates. The homepage would include a map component which ingests the metadata for each asset type and display the nearest park based on location (browser?)

Long story short, I am trying to figure out the best path to begin marching down. Would it be a good idea to explore Adobe Assets for creating the metadata? Might experience fragments do the trick?  If so, would I be able to create a JSON feed fro the new homepage map component?

Any help or ideas would be appreciated!!!

1 Accepted Solution

Avatar

Correct answer by
Employee

You can try the following approach

- Use contextHub gelocation store for identifying the location of the user

- Have images tagged with city tags or embed metadata pointing to city, state or province to identify the location of the assets

- Use reverse geolocation APIs by google maps to identify nearby parks

- Use contexthub targeting engine and create segments to display personalized content

View solution in original post

8 Replies

Avatar

Level 10

How are you implementing the Map? Are you using 3rd party data to obtain information about parks? For example - maknig a Rest Call to get park information?

Avatar

Level 2

I am looking into Google Places. I think I can define a radius there as well. Also, I plan to roll out a dozen parks for a pilot.

Avatar

Level 10

I see this from Google Places description:

The Places API is a service that returns information about places using HTTP requests.

This means that you can dynamically interact with the Service using Java HTTP Requests - like how we do for this AEM Google HTTP Example:

Creating an Adobe Experience Manager 6.4 HTL Component that displays data from a Restful Web Service

So you should look at using HTL and HTL Java backend that can get the data from Google Places. Experience Fragments will not let you write Java HTTP logic to retrieve data from Google Places.

THen render the output using HTL.

Avatar

Correct answer by
Employee

You can try the following approach

- Use contextHub gelocation store for identifying the location of the user

- Have images tagged with city tags or embed metadata pointing to city, state or province to identify the location of the assets

- Use reverse geolocation APIs by google maps to identify nearby parks

- Use contexthub targeting engine and create segments to display personalized content

Avatar

Level 2

I appreciate the solution and think it is an excellent approach.

My original intent was to get some ideas on how to capture the metadata for each asset type. My videos, audio and news all have several metadata points (title, desc, CTA, url, etc) I need to create and store somehow/somewhere. I use an external 3rd party to host my audio/video and cannot store them in the DAM.

I have not used Content Fragments, Experience Fragments or AEM Assets yet and my default option is to create a new asset template for each type. Is a new template the best approach?

Avatar

Employee

content fragments in my opinion are used to expose assets from AEM so they can consumed within aem or externally. As you assets you are outside AEM, either you expose an API on the system where your assets are stored and use it OR import the metadata properties using importer and  create node structures in AEM for those assets properties (which IMO would be a heavy task)

IMO if your asset system allows for exposing an API for the metadata of the assets, this might be the best way forward.

Avatar

Level 2

Thanks for your help. I will explore importing the metadata prior to going down the content fragment path.