Expand my Community achievements bar.

Join us in celebrating the outstanding achievement of our AEP Community Member of the Year!
SOLVED

Best practice on XDM schema for web and mobile app

Avatar

Level 2

Hi there

 

Currently we have implemented Web SDK on our websites; we customized slightly on the ExperienceEvent data schema but pretty much leverage most of it for our integration. 

As we are now progressing to apply Mobile SDK on our mobile apps. Assuming we have very similar features between our website and mobile app, I wonder is there any best practices regarding the XDM schema for the mobile app? In particular:

 

  • Shall we use the exact same schema and data set for both the website and mobile app? 
  • If yes / no, what's the pros and cons of doing so? 

Appreciate your insights in advance!

 

Thanks,

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Level 4

Hi @RaymondCh4 ,

It can depend on lot of things considering how you plan to use the data in current and future state of your AEP implementation. While you can use the same schema and dataset for both web and mobile their could be other things to consider which may suggest to separate these two data sources,

  • For dataset specific controls like events TTL or deciding which platform to ingest into a CJA connection you'll have more flexibility with separate datasets
  • If you are using (or planning to use) this data in profiles you will have more control in terms of merge policies for attributes with conflicting values
  • Even if you have the same features in both platforms there are some attributes which are platform specific, like lifecycle data from apps. Keeping both platforms separate will give you more cleaner records with only respective fields
  • Another thing to consider could be the ease of understanding and auditing/troubleshooting with different datasets

In the end how you plan you data models is going to depend upon how you plan to ingest and consume the data and that varies based on use cases that you want to serve.

Cheers!

View solution in original post

5 Replies

Avatar

Correct answer by
Level 4

Hi @RaymondCh4 ,

It can depend on lot of things considering how you plan to use the data in current and future state of your AEP implementation. While you can use the same schema and dataset for both web and mobile their could be other things to consider which may suggest to separate these two data sources,

  • For dataset specific controls like events TTL or deciding which platform to ingest into a CJA connection you'll have more flexibility with separate datasets
  • If you are using (or planning to use) this data in profiles you will have more control in terms of merge policies for attributes with conflicting values
  • Even if you have the same features in both platforms there are some attributes which are platform specific, like lifecycle data from apps. Keeping both platforms separate will give you more cleaner records with only respective fields
  • Another thing to consider could be the ease of understanding and auditing/troubleshooting with different datasets

In the end how you plan you data models is going to depend upon how you plan to ingest and consume the data and that varies based on use cases that you want to serve.

Cheers!

Avatar

Level 2

Thank you for the comprehensive response!! Really appreciate it!

Avatar

Adobe Champion

Beyond the great points made by @Harveer_SinghGi1, I think it's mostly a matter of preference. Personally, if the requirements for both are generally the same, I think it'd be easier to maintain a single schema, though perhaps different datastreams and/or datasets. 

Avatar

Level 9

@RaymondCh4 @RaymondCh4  agree with @Jennifer_Kunz  in terms of XDM standardization ,stability and scalability ,even profiling  single schema would be good , where as dataset can be different.

I agree with @Harveer_SinghGi1  as well, 

it all depends on your business case, team size/skills  etc how you would prefer to laid the foundation here 

Avatar

Community Advisor

I'm going to take the opposite view from the others. I would propose having separate schemas (and datastreams) for your app, instead of using the same schema that is being used for the web.

You said that you had customised the ExperienceEvent field group. I'm not sure to what extent you had customised it, but that probably means your schema now contains a _orgID field group, with specific fields for the website.

Now, rarely would a mobile app exactly match the UI, UX and functionality of the website. As a result, I have a feeling that those customised fields will not be applicable to your app. So if you were to re-use this schema for your app, then that most likely means you will need to add new customised fields for app-specific tracking. Mixing the web and app fields in the same schema can get messy in the long-term.

If your schema had the ExperienceEvent field group only, then I would agree to re-use the schema, because that schema would ever contain fields that are needed for Adobe products. But once you start customising the schema, then I would go with separate schemas.