/_aci/aci.js and sends events to the same-origin /collect endpoint.
Access: Must be enabled for your organization. Contact your Gradial team to get access.
Enable collection
Add or update thepersonalization block in .content/config/site.json:
/_aci/aci.js path.
Choose a consent integration
ACI supports these consent presets:consentCategories maps the categories used by your consent manager to ACI’s personalization purpose. A preset connects to a consent manager already running on the page; it does not install a banner or define your policy.
Use ACI’s consent banner
If a site does not use another consent manager, selectmanual and mount the supplied banner from your layout. In Astro, place this script near the end of the document body:
Send consent manually
WithconsentPreset: "manual", grant the personalization purpose after a visitor opts in:
Track a custom event
Use the browser API for application-driven events:custom.request-demo.
For markup-driven interactions, use data attributes:
data-aci-on="visible":
data-aci-on supports click and visible; click is the default. Attribute properties are sent as strings.
Built-in events
The collector records supported browser events such as page views, link clicks, variation views, and web-vital measurements. Use custom events for business actions that your audience criteria or goals need to identify explicitly.Consent and targeting behavior
Behavior-based audience membership requires the configured consent and a usable first-party identity. If either is unavailable, ACI returns the base audience experience. Anonymous experiments can be configured to assign and measure visitors without creating a personalization profile. Supported browser privacy signals, including Global Privacy Control and Do Not Track, suppress identity-dependent processing. ACI provides the technical controls; your organization remains responsible for selecting purposes, categories, retention, disclosure, and deletion behavior that match its policy and legal obligations.Export or erase an audience profile
ACI provides authenticated operations for a first-party profile identified by its ACI ID. Resolve and verify that ID through the privacy-request workflow agreed during onboarding; do not substitute an email address or another application identifier. Use the read operation to export the profile and confirm it belongs to the intended visitor:Verify the integration
1
Inspect the rendered page
Confirm there is exactly one
/_aci/aci.js script and that its consent preset and categories match site configuration.2
Exercise the real consent UI
Grant and withdraw through your configured consent manager or manual integration. Confirm the UI returns to the expected state on a new page load.
3
Trigger a known event
Use a test interaction with
data-aci-event or aci('track', ...) and confirm the page remains functional even if collection is unavailable.4
Verify on an edge-backed environment
After consent, use browser developer tools to confirm same-origin requests to
/collect. A local framework server does not prove this step.5
Test the fallback
Repeat the journey without consent and confirm identity-dependent audience content is not selected.
Troubleshooting
The collector returns 404
The collector returns 404
Confirm the site is using its personalization-enabled Gradial edge binding. The route is not supplied by an ordinary framework server.
The script is missing
The script is missing
Confirm
personalization.collect is true and that your ACI layout uses the current Astro or Next.js integration. Custom renderers must emit the tag once.Manual consent calls do nothing
Manual consent calls do nothing
Confirm
consentPreset is manual. A named consent provider remains authoritative when its preset is selected.Behavioral targeting still shows the base experience
Behavioral targeting still shows the base experience
Check consent first, then confirm the expected event reached
/collect, the segment and audience are enabled, and the updated membership is present on a later request.Next: Experiments and Reporting →