09 May 2021 » MSA
Last year, Adobe released a framework (not exactly a new product), called Project Firefly. I barely noticed it when it was announced. However, one of my customers requested me a very specific feature, for which Firefly was the perfect tool. Although it has been ages since I last did any serious development, it was a good opportunity to learn this new tool. This is an introduction to this tool and, in future posts, I will get into more details.
Have you ever thought “I wish this functionality was added to that tool”? Maybe you have even suggested it in the forums or asked your Adobe representative about it. I have definitely been in these conversations. As usual, the problem is that, if a feature is asked by only one person or does not align with the product’s roadmap, it will never be implemented. This is especially the case for the SaaS tools: Analytics, Target, Audience Manager and Campaign Standard. If your tool of choice is Campaign Classic or Experience Manager, you will probably get around the limitation by adding some code or a hack.
Well, if you have been in this situation, Project Firefly is the solution. In summary, it is a framework that allows you to build your application or feature, on top of the existing Adobe Creative Cloud and Adobe Experience Cloud (AEC) tools. I will give you some examples later.
It took me a while to understand what Project Firefly offered. I guess I was expecting something more complex or different. If I try to summarise the offering, it would be as follows:
- Web application. You can now build your single-page application in React and let Adobe host it. It will then be part of the list of tools that you can use from the AEC interface. The idea is that this web application offers the UI to your users and interacts with one or more APIs to achieve its functionality.
- Microservices. Also called headless applications. Using Apache OpenWhisk, you build any backend services that you need. Additionally, it offers storage capabilities, either in the form of files or key/value pair databases.
These two pieces are independent, although you can combine them. For example, in the application I have built for my customer, I have only used the serverless part, as I did not need any UI.
Just in case it is not clear, these technologies are meant to be used mainly by your internal users. There are some limitations in the number of calls you can make to Adobe servers, so it will probably not be suitable for your customers.
The previous explanation is technically (more or less) accurate. However, I am sure that many will not immediately picture what you can really do with this technology. At least, if I had never heard of it, I would be in this situation. The following examples should give you a good idea of the potential of Firefly.
Web analysts and optimisation managers know very well how to play with their main Adobe tool. The next level managers usually do too. However, senior managers or C-level executives will never learn that. They will barely know how to log in, but do not expect them to create a report in Adobe Analytics. The typical solution is to create a dashboard in Analytics Workspaces for them. In the end, though, we know that they will ask you to generate the PDF and send it to them.
One alternative would be to create a dashboard for your executives, with your company’s branding, which they can view on their mobile phone. You would just need to give them the URL. This dashboard would show exactly the information they want, in the format they want, without any extra frills and thrills that come with Analytics Workspace. It could include information from Analytics, Target and Campaign, for example.
Tracking code generators
One of the main issues web analysts face is that the campaign tracking codes (
s.campaign) are oftentimes wrong. A document explaining how to generate them exists somewhere, but agencies do not want to use them and content managers forget them. This has direct consequences in the attribution and forces the analysts to make some manual adjustments.
To simplify the creation of these codes, I have seen some clients using an Excel spreadsheet with some scripts and formulas. My idea is one step beyond this Excel document. Instead, I would create an application that would generate the tracking codes and the end-user would just need to copy and paste the URL. I would even add 2 additional features:
- Offer an API for other systems to request new codes programmatically. This could be used by AEM components, for example.
- Generate the classification and upload it to Adobe Analytics.
Proof of concepts
Do you have a new feature you would like to test on your website, which requires a microservice? Will it take too long and be expensing to build, especially considering that it may not be appreciated by the end-users? If this is your case, maybe Firefly could help.
This is exactly the case that I referred to at the beginning of the post when I talked about a new feature I was working on for a customer. If we had to go through the standard process, it would take ages to build and it may never be prioritised.
To move forward with this proposal, I suggested we use Firefly to host the microservice needed, add some code through Launch and combine it with Adobe Target to run an A/B test of the feature. I know I mentioned above that Firefly is mainly for internal users, but the traffic this feature will generate is quite low, below the maximum allowed.
If you want to get more ideas, I suggest you review this video:
The documentation could have been better organised. These are the links I have used to learn this new capability:
- Project Firefly Developer Guide. This should be your starting point.
- Adobe I/O Runtime Developer Guide. Firefly is based on Adobe IO Runtime. You may also need to review this second link to complement the information from the first one.
- Youtube playlist. When it comes to documentation, I prefer written documentation over videos, but if you are the opposite, here you have the official Youtube playlist for Adobe Firefly.
If I find more links in the future, I will update this list.