Expand my Community achievements bar.

Join us January 15th for an AMA with Champion Achaia Walton, who will be talking about her article on Event-Based Reporting and Measuring Content Groups!

Assurance for Mobile Validation

Avatar

Employee

8/15/24

Assurance (formerly Project Griffon) is a tool within Adobe Experience Platform designed for implementation validation. It is extremely helpful to check extension versions, inspect data values, store testing logs, and troubleshoot implementation issues. While Assurance can help to validate your Web SDK implementation, it is particularly useful for mobile app implementations as it replaces tools like Charles that can be difficult to use for specific use cases such as validating an Analytics implementation. This blog will guide you through getting started with Assurance and key tools to help you with your mobile app validation.

Installing & Registering Assurance 

To get started with Assurance, install and register the extension in your app. First, add the AEP Assurance extension in your Tags property. This step should be relatively easy as there is nothing to configure within the extension - just search the catalog for AEP Assurance, install the extension, and publish your library!  

Next, add the Assurance library to your project. You can find the libraries for Android and iOS in the developer documentation. Keep in mind that you will also need to have Mobile Core installed to use Assurance. After importing the libraries, register the Assurance extension with Mobile Core to enable the functionality. You can find the API for Android and iOS here. 

Finally, configure your app to connect to an Assurance session. On Android, you can use the startSession API or set up a deep link. To configure a deep link, add an intent filter for incoming links in your app. On iOS, use the sessionStart API to start your session when opening the app from Assurance.

Starting a Session 

With the Assurance library imported and registered, you're ready to start a session and begin validation. To begin, be sure to build your app and allow tracking, location, and push notifications as needed.  

Now, find the base URL for your project. For Android, this will be the URL configured in the intent filter, formatted as <host>://<scheme>. On iOS, you will use the URL Schemes defined in your project formatted as <url scheme>://. You can find your URL Schemes in Xcode in your project Info > URL Types > URL Schemes. 

Once you have your base URL handy, navigate to Assurance and select Create Session > Start. Create a session name, add the base URL, and select Next 

Connect to Session.gif

Use the QR code or the link provided to connect to your session. Both methods will open your app, where you can enter the PIN number to connect to your session. Once connected, you should see the Assurance logo on the top of your app screen, and you should see a connected client in the Assurance UI. If you were not able to successfully connect to your Assurance session, check out this troubleshooting guide. 

Assurance Pin.gif

To disconnect from the session, click the Assurance icon in your app, then "Disconnect". If you do not disconnect, your Assurance session will already be connected next time you open the app. 

Helpful Tools Within Assurance 

Now that you're connected to Assurance, it's time to validate your implementation! In this post, we'll cover some commonly used tools, but you may find other tools and features that fit your needs depending on your use case. While some Assurance menu options are viewable by default, you can find more by configuring your menu and choosing relevant options.  

Screenshot 2024-06-25 at 12.37.00 PM.png

Let's dive into some of those tools! 

Extension Versions 

Extension Versions is a simple way to quickly reference each of the AEP extensions and versions installed in your app compared to the latest available versions. Use this tool to make sure your desired extensions are installed and up to date. 

Screenshot 2024-07-19 at 4.47.07 PM.png

Configuration Viewer 

Configuration Viewer allows you to see the configurations set in your Tags property. For example, you can view the property environment, consent settings, datastream ID, and Edge domain name. This gives you a quick way to validate your data collection settings. 

Events 

The Events view will show you all the data sent to AEP from your app in real-time. Use the "Type" column to find requests made for specific services and click on any event to view the details. For example, you can view an "AEP Request Event" and inspect the payload to validate the XDM data being passed to Edge. Here are other common vendors in the Events view:

  • AEP Response Event Handle: The response from AEP and status details after the AEP Request Event. 
  • AEP Error Response: Flags errors or warnings during request processing in AEP.  
  • hitReceived: A hit has been received by AEP.  
  • analytics.mapping: The hit has been mapped as Adobe Analytics data.  
  • hitProcessed: The hit was successfully processed.  
  • State events: State events, such as Identity State, provide the current state of extension values, such as user identities.  

Screenshot 2024-06-25 at 2.32.24 PM.png

Additionally, you can inspect the raw payload of the events, giving you unparsed data, and the validation results, which will show any errors with sending the event. The Events view is useful for validating events in sequential order and the values being passed. Within Events, you can also filter and flag specific events, and export events to JSON for further validation. 

Shared States 

Use Shared States to check the current value of attributes shared across extensions. For example, you can validate the state of the Consent extension for the collection value to determine if the user has opted in or out of tracking or validate the Identity extension for identityMap values. This tool is valuable for ensuring consistency across extensions and that the states are populated correctly.  

Screenshot 2024-06-27 at 11.13.08 AM.png

Event Transactions

Event Transactions provides a flow view of your mobile app data, including client-side events, those events received by Edge Network, and the upstream services and results of those events. With this view you can monitor the sequence and timing of events to validate the data flow.  

Each solution has individual cards representing its specific data, allowing for more granular validation for each service. To validate your implementation, select an event in the flow to inspect the details including payload and metadata. This will show the raw and processed data, helping you to verify that the data values are present, correct, and match your schema. Use this view to identify and resolve errors or discrepancies to ensure your mobile data is flowing as expected.

Screenshot 2024-06-25 at 4.06.00 PM.png

Places Service Events 

The Events under Places Service will allow you to test your Location Services by validating location coordinates and nearby points of interest. Use this view to ensure that your points of interests are configured with custom metadata and that you can receive exit and entry events for those places.  

While this isn't an exhaustive list of tools within Assurance, it should kick off your mobile validation. Use this guide as a starting point for installing and connecting to Assurance so that you can test and validate your mobile extensions. Share your tips and tricks for using Assurance in the comments below!  

Resources 

Adobe Experience Platform Assurance 

Assurance API Reference 

Github: AEP SDK Assurance Android 

Github: AEP SDK Assurance iOS 

Set up Assurance 

8 Comments

Avatar

Level 1

8/15/24

Great article, Thank you for posting this. @amandadeasy One quick tip that I found helpful is the event transactions view is great for debugging A4T data. If you are using Optimize SDK, the server side A4T logging will have dedicated request and response events to debug the hits in sequence. 

Avatar

Level 1

10/11/24

is there a way to switch from iPhone to Android even if you only have an iPhone?

Avatar

Employee

10/14/24

Hi @ryanschoenefeld , you can connect to an Assurance session through the Android Studio emulator if you have access to the build. 

Avatar

Level 3

11/5/24

Deeplink URL i have for the app is not working. Like i am putting in the URL in deeplink tester and it is not getting connected to the Project assurance

Avatar

Employee

11/5/24

Hi @jaishal, this Assurance troubleshooting guide has some common issues you may run into including when the app does not open the link. Give this a try for a verifying the deeplink. 

Avatar

Administrator

11/17/24

@amandadeasy Your technical blog was exceptional—clear, well-structured, and packed with valuable insights. It’s evident how much expertise and effort went into crafting it. Great work!