Add and manage Adaptive Acceleration

Adaptive Acceleration improves HTML page load performance by prepositioning content. It gathers information from navigation and resource timing data via ​Akamai​ real user monitoring tools. It uses this information to identify key assets to reduce the load and render time for your web pages.

This workflow walks you through how to add Adaptive Acceleration to your Ion property. It also shows how to view and reset the property report data it uses.

Before you begin

Get your credentials

This workflow uses multiple APIs. If you've never used them, you need to use ​Akamai​'s Identity and Access Management tool to create authentication credentials for each API:

  • Property Manager API (PAPI). Verify you have the API service named Property Manager in the Identity and Access Management tool, and its access level is set to READ-WRITE.

  • Adaptive Acceleration API. You need the Adaptive Acceleration service, too and its access level needs to be set to READ-WRITE.

Support the appropriate body size

Supported client tools such as edgegrid-curl and edgegrid-python have a default maximum message body size of 2048 bytes. To use PAPI, this needs to be 128K. How you increase this value varies, based on the interface you're using to call this API. For example, you could set max-body:131072 in the .egcurl file, or pass max_body:131072 as part of the EdgeGridAuth() call if you're using Python.

What's a Recipe?

A recipe is a step-by-step example of the use of an individual ​Akamai​ API operation, complete with syntax examples for various supported interfaces. Some of the phases of this workflow include a button that lets you access a recipe for a specific API operation.

1 - Create your Ion property

You'll use PAPI to create a new Ion property. Review the sections that follow to get going with the process.

Ion and productIds

When you're setting up a new Ion property with PAPI, you'll need to get the productId value for the version of Ion you're using. PAPI uses the codename values that ​Akamai​ established for the various versions during development:

  • Ion Premier. "SPM"
  • Ion Standard. "FRESCA"

For example, if you run the list products operation in PAPI, the response data for each version of Ion would look like this:

{
    "accountId": "abc_A-1-BCDEF",
    "contractId": "ctr_1-GHIJK",
    "products": {
        "items": [
            {
                "productName": "SPM",
                "productId": "prd_SPM"
            }
        ]
    }
}
{
    "accountId": "abc_A-1-BCDEF",
    "contractId": "ctr_1-GHIJK",
    "products": {
        "items": [
            {
                "productName": "Fresca",
                "productId": "prd_FRESCA"
            }
        ]
    }
}

Set up HTTPS delivery

HTTPS is the standard for protecting traffic on the web. You'll apply it to protect the connection between a client requesting your content and the ​Akamai​ edge network. There are a couple of ways you can do this:

The custom certificate method

Follow this workflow to create a property using a custom certificate to secure the connection:

  1. Complete phases 1 - 9 in the workflow.

  2. Store these values:

    • propertyVersion. This should be 1 because you're creating a new Ion property with this workflow.
    • propertyId. The unique identifier that ​Akamai​ assigns to your new property.
  3. Return here and continue to the next phase.

The default certificate method

Follow this workflow to use ​Akamai​'s automated method to secure the connection.

  1. Complete phases 1 - 8 in the workflow.

  2. Store these values:

    • propertyVersion. This should be 1 because you're creating a new Ion property with this workflow.
    • propertyId. The unique identifier that ​Akamai​ assigns to your new property.
  3. Return here and continue to the next phase.

2 - Review the rule tree

Access your Ion property's rule tree for review. Use the propertyVersion and propertyId values you stored for your Ion property.

Get a property tree
Open Recipe

The following three behaviors apply specifically to Adaptive Acceleration. Review what's set for them.

Behavior Example Settings
http2
{
    "name": "http2",
    "options": {
        "enabled": ""
    }
},

This behavior just needs to remain in the rule tree. Notice its "enabled": "" member. Set this way, the default value of enabled is used.

mPulse
{
    "name": "mPulse RUM",
    "children": [],
    "behaviors": [
        {
            "name": "mPulse",
            "options": {
                "apiKey": "",
                "bufferSize": "",
                "configOverride": "",
                "enabled": true,
                "loaderVersion": "V12",
                "requirePci": false,
                "titleOptional": ""
            }
        }
    ],
    "criteria": [],
    "criteriaMustSatisfy": "all",
    "comments": "Collect..."
},

The default settings for mPulse simply enable it for use as the real user monitoring (RUM) source beacon for your Ion property. This is what ​Akamai​ recommends as your source beacon because it supports all Adaptive Acceleration features.

adaptiveAcceleration

{
    "name": "Adaptive acceleration",
    "children": [],
    "behaviors": [
        {
            "name": "adaptiveAcceleration",
            "options": {
                "enableBrotliCompression": false,
                "enablePreconnect": true,
                "enablePush": true,
                "enableRo": false,
                "preloadEnable": true,
                "source": "mPulse",
                "titleHttp2ServerPush": "",
                "titlePreconnect": "",
                "titlePreload": "",
                "titleRo": "",
                "compression": "",
                "titleBrotli": "",
                "enableForNoncacheable": false
            }
        }
    ],
    "criteria": [],
    "criteriaMustSatisfy": "all",
    "comments": "Automatically..."
}

The automatic push ("enablePush"), automatic preconnect ("enablePreconnect"), and automatic font preload ("preloadEnable") features are automatically enabled, and mPulse is preset as the real user monitoring "beacon source" ("source": "mPulse",). These are the minimum recommended settings for Adaptive Acceleration.

3 - Store the response output

If you want to edit your rule tree, you'll use this as the body parameter.

4 - Edit your rule tree (optional)

You can change the default settings or add optional settings for the three Adaptive Acceleration-related behaviors. Use the response output you stored from the get the rule tree operation to serve as the body parameters for the operation:

👍

We offer plugins to help with a rule tree

Rule trees are maintained in a special form of JSON. We offer two tools you can use to help navigate and edit your rule tree. Check out the VS code or Eclipse IDE plugins.

  • adaptiveAcceleration. You can optionally add compression for your assets. Leave all other settings at their default.

  • mPulse. There are several other options you can apply for this behavior. Just ensure that "enabled": true, is set.

  • http2. This behavior needs to remain in the rule tree. It offers no additional settings.

Patch a rule tree
Open Recipe

5 - Finish your property

With Adaptive Acceleration set up the way you want, you're ready to finish onboarding your property and start delivering your content:

  • The custom certificate method. Return to this workflow and complete steps 12 - 17.

  • The secure by default method. Return to this workflow and complete steps 13 - 17.

6 - Wait for data to be gathered and used

With your property live and mPulse enabled as your beacon data source, give it some time to gather data. Data for the Automatic Push, Automatic Preconnect, and Automatic Font Preload settings is gathered and stored in a "property report." This report is used to determine "high usage" assets for your site or app, for use with Adaptive Acceleration.

7 - View the Adaptive Acceleration property report

As Automatic Push, Automatic Preconnect, and Automatic Font Preload data is gathered in your property report, you can use an operation in the Adaptive Acceleration API to review it.

Report on a property
Open Recipe

8 - Reset the Adaptive Acceleration property report

If you've changed your site or you don't want to wait for earlier data to drop out of the analysis, you can manually reset the data gathering mechanism. The Adaptive Acceleration API offers an operation for this.

Reset a Property Report
Open Recipe