AdAlign API for AI Agents
Evaluate the congruence between paid media ads and their landing pages through a REST API. AdAlign uses proprietary AI vision analysis to score visual match, message match, above-the-fold continuity, and tone alignment, returning structured scores and ready-to-apply fixes.
The API is the scoring step of the AdAlign loop. In the app, connected Meta and Google Ads accounts are scored automatically, ranked by spend at risk per landing page, fixed with approved page variants and watched daily for landing-page drift. The API lets your agent run the same scoring on any ad and page.
What AdAlign Evaluates
Each evaluation produces an overall congruence score (1-10, in 0.5 steps) composed of four weighted dimensions. Weights depend on the platform and placement (Google Search leans on message match, Meta feed on visual match); the weights used for each evaluation are returned in appliedProfile.weights.
Visual Match
10–40%Compares visual elements between ads and landing pages — colors, imagery, layout, and branding consistency.
Message Match
17.5–35%Evaluates whether the landing page headline and copy echo the specific promise made in the ad.
Above the Fold Continuity
17.5–35%Measures whether visitors can quickly find the offer, details, and CTA the ad led them to expect.
Tone Alignment
10–35%Assesses whether the emotional tone and voice carry through from ad to landing page experience.
Supported Platforms
AdAlign can analyze ads from the following platforms:
Authentication
Authenticate with an API key sent as a Bearer token in the Authorization header.
Bearer Token
API keys start with adal_ and are created at Settings → API Keys. API access is included on the Scale plan and above; every plan starts with a demo.
Authorization: Bearer adal_xK3mR7vN2pQw9...
API Endpoints
Base URL: https://app.adalign.io
OpenAPI spec: https://app.adalign.io/api/openapi
Rate Limits
API calls draw from the same monthly evaluation pool as the app. Limits reset on the 1st of each month (UTC), and failed evaluations are not counted.
| Plan | Evaluations / month | API Keys |
|---|---|---|
| Scale€75k–€250k/mo ad spend | 1,500 | 20 |
| Portfolio€250k–€750k/mo ad spend | Per contract | 50 |
| EnterpriseOver €750k/mo ad spend | Per contract | 50 |
Quick Start
Run your first evaluation with a single API call:
curl -X POST https://app.adalign.io/api/analyze-ad \
-H "Authorization: Bearer adal_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"adData": {
"imageUrl": "https://example.com/ad.png",
"platform": "meta"
},
"landingPageData": {
"url": "https://example.com/landing"
}
}'Response Format
A successful analysis returns structured scoring data (abridged; see the full response reference):
{
"overallScore": 7,
"componentScores": {
"visualMatch": 6.5,
"messageMatch": 8,
"aboveTheFoldContinuity": 7,
"toneAlignment": 7,
"contextualMatch": 7.5
},
"detailedScores": {
"visualMatch": { "score": 6.5, "band": "MODERATE", "reasoning": "..." },
"messageMatch": { "score": 8, "band": "GOOD", "reasoning": "..." },
"aboveTheFoldContinuity": { "score": 7, "band": "GOOD", "reasoning": "..." },
"toneAlignment": { "score": 7, "band": "GOOD", "reasoning": "..." }
},
"elementComparisons": [
{
"element": "Primary Headline",
"category": "message",
"adValue": "Get 50% Off Today",
"landingPageValue": "Welcome to Our Store",
"status": "mismatch",
"severity": "HIGH",
"recommendation": "Match the headline to the ad offer"
}
],
"fixes": [
{
"id": "3f6c…",
"element": "Primary Headline",
"fixType": "headline",
"target": "landing_page",
"direction": "change_lp",
"priority": "HIGH",
"currentValue": "Welcome to Our Store",
"suggestedValue": "Get 50% Off Today",
"reasoning": "The ad's offer is missing above the fold",
"expectedImpact": "Visitors see the offer they clicked for",
"tradeoff": "..."
}
],
"appliedProfile": {
"id": "meta_feed",
"displayLabel": "Meta Feed",
"weights": { "visualMatch": 0.4, "messageMatch": 0.225, "aboveTheFoldContinuity": 0.225, "toneAlignment": 0.15 }
},
"mediaType": "image",
"viewport": "mobile",
"evaluationId": "uuid-here"
}