Introduction (Part 1)
Ever wanted to make your website personalized for each visitor without slowing it down? That's exactly what we'll achieve by setting up Adobe Target Node SDK in Akamai EdgeWorker. We'll be using something called ODD (On-Device Decisioning) - think of it as having a smart assistant that makes quick decisions about what content to show each visitor, right at their doorstep. In this Part 1 guide, we'll walk through the set-up process, with more technical details coming in Part 2.
How It Works: System Flow
- User Action: When someone types hostname/abc/home.html in their browser, they're asking to see a webpage. Think of this like walking into a store and asking for a specific product.
- Request Routing: This request first arrives at Akamai (a global network of servers). It's like having a branch of a local store that can handle your request instead of going to the main warehouse.
- Rule Matching: Akamai sees that this specific webpage (hostname/abc/home.html) has special instructions attached to it. These instructions tell Akamai to use EdgeWorker - think of it as a personal shopper who can customize your product.
- EdgeWorker Processing: The EdgeWorker then does three things in sequence: First, it gets the original webpage from your main server (like getting the basic product from the warehouse).Then, it personalizes the page using stored A/B testing information - imagine having your product customized based on your preferences, which are already known. Finally, it sends this personalized page back to you - like delivering your customized product.
Benefits
- Eliminates separate calls to the Target server after page load, reducing network overhead by avoiding multiple API calls
- Improves page performance - Delivers faster page loads by processing decisions at the edge
- Reduces flicker issues associated with post-load personalization - Ensures smooth user experience without visible content switches
Prerequisites
Ensure you have:
- Access to Akamai - Administrative access to Akamai Control Center for configuration management
- Access to EdgeWorker in Akamai - Specific permissions to deploy and manage EdgeWorker functions
- Admin rights to create/edit properties - Required for configuring delivery rules and behaviors
- An HTML page stored on the Akamai server - Test content for implementing personalization
Implementation Guide
- Set Up Akamai Environment.
a) Create EdgeWorker ID
1. Go to EdgeWorkers in Akamai - Navigate to the EdgeWorkers section in Akamai Control Center where you can manage your edge computing resources
2. Create a new EdgeWorker ID - Generate a unique identifier that will be used to reference your EdgeWorker implementation across the platform
3. Upload the code (TGZ file)
- Full code available in my GitHub repo (https://github.com/nishthagoeladobe/edgeworker-Target-SDK/tree/master) - Access the complete implementation including all necessary configurations and dependencies
- Replace organizationID, client, propertyID from your sandbox - Customize the code with your specific Adobe Target account details
- Run npm install to get all node modules - Install required dependencies for the NodeSDK implementation
- Run npm run build in terminal to create a dist folder - Bundle your code and dependencies into a deployable package
- Upload the odd.tgz file from the dist folder to EdgeWorker - Deploy your bundled code to Akamai's edge network
- Activate it - Enable the EdgeWorker for processing requests in your chosen network (staging or production)

b) Create Property:
1. Create an Ion Standard property - Set up a new configuration that defines how Akamai handles requests for your content
2. Define the property hostname (your domain name) - Specify which domain(s) this configuration will apply to
3. Attach a certificate to this hostname - Ensure secure HTTPS communication by associating an SSL/TLS certificate

c) Create Rules:
- Create Blank Rule Template - Start with a clean slate for defining your edge behavior
- Rule:
- Executes EdgeWorker code when URL matches /abc/home.html - Triggers your personalization logic for specific page requests, ensuring targeted application of A/B testing

3. Rule for rules.json:
- Fetches artifacts file from Adobe server - Retrieves necessary configuration and decision rules from Adobe Target
- Defines caching rule to optimize origin server requests - Implements efficient caching strategies to reduce load on origin servers
- Note: Size limitations for rules.json require specific workarounds, which will be detailed in part 2

4. Rule for home.html:
- Fetches home.html from origin server - Retrieves the base page content that will be personalized
- In real-world scenarios, this represents the call to the client's origin server
- Distinguished from Rule 1 by specific Request Header criteria, allowing precise control over request handling


2. Set Up IP Spoofing (for local testing):
1. Find your edge hostname - Locate the Akamai-generated hostname (e.g., ssl-delivery.adobe.com.edgekey-staging.net) that serves your content
2. Use the 'dig' command to get the IP address - Resolve the edge hostname to its corresponding IP address for local testing
dig [Edge Hostname]
example-
dig ssl-delivery.adobe.com.edgekey-staging.net
//Update your local hosts file - Map the resolved IP to your test hostname for accurate local environment simulation
sudo nano /etc/hosts
//Add this line:
[IP address] [ hostname]
Eg:
104.98.98.27 ewpoc.adobe.com
3. EdgeWorker Code Details
(This will be covered in Part 2 - Will include detailed implementation patterns and best practices)
4. Local Testing
After setting up IP spoofing, test by entering Hostname/abc/home.html in your local browser - Verify your implementation in a controlled environment before production deployment.

5. Additional Resources
For more information on EdgeWorkers, refer to the Akamai documentation https://techdocs.akamai.com/edgeworkers/docs/welcome-to-edgeworkers
In conclusion, you should now be able to run the code locally. This implementation provides a foundation for edge-based personalization using Adobe Target's ODD feature. For issues or questions, please comment below and engage with the community for support and best practices.
Are you looking to optimize your website's performance and drive conversions?
Look no further than Adobe - the industry leader in A/B testing. With more A/B tests under our belt than any other organization in the world, we have the expertise and knowledge to take your online presence to the next level. Adobe Target is unrivaled in the industry, and with Adobe Consulting, you can have access to this powerful tool and the expertise behind it. Don't miss out on the opportunity to unlock the full potential of your website. Contact us today and discover how Adobe can help your business thrive. If you would like to understand how Adobe can help your business reach out to Adobe Professional Services.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.