smithery/twofoldtech-dakota

optimizely-web

Optimizely Web (snippet-based) patterns

Installation

$ npx skills add smithery/twofoldtech-dakota --skill optimizely-web

Also in this package

Other skills from smithery/twofoldtech-dakota.

npx skills add smithery/twofoldtech-dakota

Browse all from smithery/twofoldtech-dakota

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,589 B
  • docs SUMMARY.md 61 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Optimizely Web

Overview

This skill covers Optimizely Web (snippet-based) patterns for client-side experimentation.

Snippet Integration

Basic Setup

<!-- Add before closing </head> tag -->
<script src="https://cdn.optimizely.com/js/PROJECT_ID.js"></script>

Async Loading (Recommended)

<script async src="https://cdn.optimizely.com/js/PROJECT_ID.js"></script>

Anti-Flicker Handling

CSS-Based Anti-Flicker

<style>
  /* Hide content until Optimizely activates */
  .optimizely-pending {
    opacity: 0 !important;
  }
</style>
<script>
  document.documentElement.classList.add('optimizely-pending');

  window.optimizely = window.optimizely || [];
  window.optimizely.push({
    type: 'addListener',
    filter: { type: 'lifecycle', name: 'activated' },
    handler: function() {
      document.documentElement.classList.remove('optimizely-pending');
    }
  });

  // Fallback timeout
  setTimeout(function() {
    document.documentElement.classList.remove('optimizely-pending');
  }, 3000);
</script>

Custom JavaScript

Activate Experiment

window.optimizely = window.optimizely || [];
window.optimizely.push(['activate', 'experiment_id']);

Track Event

window.optimizely.push({
  type: 'event',
  eventName: 'purchase_completed',
  tags: {
    revenue: 9900,
    currency: 'USD'
  }
});

Get Variation

var state = window.optimizely.get('state');
var experimentId = 'EXPERIMENT_ID';
var variationId = state.getVariationMap()[experimentId];

Check Feature Flag

var state = window.optimizely.get('state');
var isEnabled = state.getDecisionString({
  campaignId: 'CAMPAIGN_ID',
  experimentId: 'EXPERIMENT_ID'
});

Page Targeting

URL Targeting Helpers

// Custom activation for SPA
window.optimizely.push({
  type: 'activate'
});

// After route change
function onRouteChange(newPath) {
  window.optimizely.push({
    type: 'page',
    pageName: newPath
  });
}

Custom Attributes

Set Visitor Attributes

window.optimizely.push({
  type: 'user',
  attributes: {
    membershipTier: 'premium',
    country: 'US',
    isLoggedIn: true
  }
});

Best Practices

  1. Use async loading to prevent blocking
  2. Implement anti-flicker for visual experiments
  3. Track meaningful events not page views
  4. Use activation listeners for SPAs
  5. Set visitor attributes early for targeting