Patriot Flag Metal Car Emblem - Advertorial [LD] — Automation

slug adv · Report · Dashboard

Config

When on, the hourly scheduler fires absys:auto adv and this page decides whether to run the next round based on the triggers below.

Trigger conditions

The loop runs when ANY enabled trigger below matches. Enable both for "whichever comes first" behavior.
1 = hourly, 24 = daily, 168 = weekly.
Higher = fewer rounds but more evidence per round.

Round shape

A variant with fewer impressions than this is treated as unexplored by the Planner.
OpenAI model this page uses for variant generation. Blank inherits the global default set in .env (gpt-5-mini).
The data-absys-cta value(s) that count as a click for CTR. Blank = any click counts (fine for a single-CTA page; wrong for quizzes where q1_yes etc. inflate CTR toward 100%).
Comma-separated for multi-CTA pages — e.g. advertorials with several buttons all pointing to checkout: inline_cta,closing_cta,image_cta,modal_cta. Any of the listed CTAs firing counts as one click per distinct visitor.
Typical values: final_cta for quiz, hero_cta for sale page, inline_cta,closing_cta,image_cta for advertorial.

Where to read from / write to

Add data-absys-cta="<name>" to every conversion element in this source page (checkout button, inline CTA link, etc.) before enabling automation. Every deploy re-copies the source to <target>/control.php, and LLM-generated challengers preserve whatever tags the control has — so tagging the source once flows through to control + all challengers automatically. Without tags, no clicks are recorded and CTR reports are meaningless.

Vocabulary by page type (use the same name on the same-role element across variants):
· Sale page — hero_cta, sticky_cta, pricing_cta, features_cta, testimonials_cta, footer_cta, modal_cta
· Advertorial — inline_cta, inline_link, closing_cta, header_cta, image_cta, modal_cta
· Quiz — q1_yes/q1_no … q3_yes/q3_no, final_cta, modal_cta
Example: <a href="/checkout" data-absys-cta="closing_cta">Get yours</a>
Absolute path on this server. absys writes index.php (rotator), absys-tracker.js, and <variant>.php files here. Must be writable by PHP. Staging happens internally under storage/absys/staging/adv — you don't need to configure it.
Enables the "Open live" link on the report page.
Cancel

Conversion postback

Copy this PHP snippet into your thank-you page (or wherever a conversion completes). It reads absys_vid / absys_pid / absys_vk cookies (set by the lander/rotator on each page load) and fires one conversion event per hit. Requires the TY page to be on the same domain as the lander — otherwise the cookies aren't readable. Silent failure — never blocks the TY page.
<?php
// absys conversion postback — paste at the TOP of your thank-you page.
// Reads three cookies set by the lander/rotator (absys_vid, absys_pid,
// absys_vk). All three must live on the same domain as this TY page.
// Silent failure, never blocks rendering.
(function () {
    // No visitor id = visitor never touched an absys lander (organic traffic,
    // direct hit, cookie cleared). Skip entirely — nothing to attribute.
    if (empty($_COOKIE['absys_vid'])) return;
    if (empty($_COOKIE['absys_pid'])) return;
    if (empty($_COOKIE['absys_vk']))  return;

    $body = json_encode([
        'event'       => 'conversion',
        'page_id'     => $_COOKIE['absys_pid'],
        'variant_key' => $_COOKIE['absys_vk'],
        'visitor_id'  => $_COOKIE['absys_vid'],
    ]);

    $ch = curl_init('https://absys.americanexceptionalism.store/api/track');
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_HTTPHEADER     => ['Content-Type: text/plain'],
        CURLOPT_POSTFIELDS     => $body,
        CURLOPT_TIMEOUT        => 3,
        CURLOPT_RETURNTRANSFER => true,
    ]);
    @curl_exec($ch);
    curl_close($ch);
})();
Tracker URL: https://absys.americanexceptionalism.store/api/track

Run now

Trigger conditions are ignored — this queues a run using the saved settings above. The worker picks it up within a minute; watch the run history table below for progress.

Run history

#StartedTriggerActionNotes / errorDuration
25 1 month ago forced_run generated_and_deployed wrote=1 rejected=0 active_after=2 start=c2 14400s
24 1 month ago forced_run generated_and_deployed wrote=1 rejected=0 active_after=2 start=c1 14400s