PhotoOp Partner Integration Guide

Embed PhotoOp's Visual AI experience on your website with a simple iframe. No SDK or API keys required.

Quick Start

Add the PhotoOp ad unit to your site in under a minute. Copy the embed code below, paste it into your HTML, and you're live.

<iframe
  src="https://photoop.com/embed/"
  width="400"
  height="500"
  style="border: none;"
  loading="lazy"
  title="PhotoOp Visual AI"
></iframe>
No authentication required. The ad unit is publicly embeddable — no API keys, tokens, or sign-up needed.

Embed Code

Basic Embed (Default Branding)

Displays the generic PhotoOp CTA module with default headline, subtitle, and use-case scroller.

<iframe
  src="https://photoop.com/embed/"
  width="400"
  height="500"
  style="border: none;"
  loading="lazy"
  title="PhotoOp Visual AI"
></iframe>

Embed with App Key

Pass an app key in the URL path to load a custom-branded experience for a specific PhotoOp application.

<iframe
  src="https://photoop.com/embed/YOUR_APP_KEY/"
  width="400"
  height="500"
  style="border: none;"
  loading="lazy"
  title="PhotoOp Visual AI"
></iframe>

Recommended Attributes

AttributeValuePurpose
srchttps://photoop.com/embed/ or https://photoop.com/embed/{app-key}/Ad unit URL (with optional app key)
width400Recommended width in pixels
height500Recommended height in pixels
styleborder: none;Removes default iframe border
loadinglazyDefers loading until visible (performance)
titlePhotoOp Visual AIAccessibility label

App Keys

App keys allow you to load a customized version of the ad unit tailored to a specific PhotoOp application. Each app key maps to a configuration that can override branding, headlines, and styling.

How App Keys Work

Obtaining an App Key

App keys are created and managed through the PhotoOp admin dashboard. Contact your PhotoOp representative to get an app key configured for your integration.

Tip: You can test the embed without an app key. The default experience works for all partners and shows the generic PhotoOp Visual AI branding.

Customization Options

When an app key is provided, the ad unit can be customized through the app configuration. These settings are managed through the PhotoOp admin dashboard.

Branding Overrides

SettingDescriptionExample
HeadlineMain title text in the CTA module"Try Visual AI for Home Decor"
SubheadlineSubtitle text below the headline"Snap a photo, get instant ideas"
Background ColorModule background color#f0f8ff
Headline Font SizeCustom headline text size1.75rem
Subheadline Font SizeCustom subtitle text size1rem

Priority Order

Branding is applied in this order (later entries override earlier ones):

  1. Default branding (built into the ad unit)
  2. directMode.branding settings from the app config
  3. landingOverrides settings from the app config (highest priority)
Note: Customization is configured server-side via the admin dashboard. Partners do not need to modify the embed code to apply branding — just use your assigned app key.

Dimensions

The PhotoOp ad unit uses a CTA module layout, not standard IAB ad sizes. The recommended dimensions are:

DimensionRecommendedMinimumNotes
Width400px300pxModule is responsive up to 400px max-width
Height500px400pxEnough for title, camera button, and scroller
Not standard IAB sizes. This is a custom CTA module, not a traditional display ad. The module centers itself within the iframe and has a max-width of 400px. You may use a wider iframe — the module will center within it.

Responsive Embedding

For responsive layouts, you can set the iframe width to 100% and constrain it with a container:

<div style="max-width: 400px; margin: 0 auto;">
  <iframe
    src="https://photoop.com/embed/"
    width="100%"
    height="500"
    style="border: none;"
    loading="lazy"
    title="PhotoOp Visual AI"
  ></iframe>
</div>

Partner Site Requirements

HTTPS Required

Your site must be served over HTTPS. Modern browsers block mixed content — an HTTP page cannot embed an HTTPS iframe (the ad unit is served from https://photoop.com).

Content Security Policy (CSP)

If your site uses a Content Security Policy, ensure it allows framing from photoop.com:

Content-Security-Policy: frame-src https://photoop.com;

If you don't have a CSP header, no action is needed — iframes are allowed by default.

Frame-Ancestors Policy

No domain allowlisting needed on our side. The PhotoOp ad unit's frame-ancestors policy is set to *, meaning any domain can embed it. You do not need to register your domain with us.

Referrer Policy

The ad unit uses document.referrer to identify the embedding partner site for analytics. If your site sets a restrictive Referrer-Policy (e.g., no-referrer), partner attribution in our analytics will be limited. We recommend:

Referrer-Policy: strict-origin-when-cross-origin

How It Works

The ad unit is a self-contained HTML page that runs inside an iframe on your site. Here's the user flow:

  1. Display: The CTA module loads inside the iframe, showing a headline, camera button, and animated use-case scroller.
  2. Click: When the user clicks the camera button, a new browser tab opens with the full PhotoOp app at photoop.com/{app-key}.
  3. Camera: In the new tab, the user's camera activates and they can take a photo.
  4. Results: PhotoOp's Visual AI analyzes the photo and returns results.
New-tab launch only. The camera does not activate inside the iframe. Clicking the camera button always opens a new tab. This ensures the best camera experience and avoids cross-origin permission issues.

Analytics

The ad unit tracks two GA4 events automatically:

EventWhenParameters
page_viewIframe loadspartner_domain, app_key, ad_placement
ad_clickCamera button clickedpartner_domain, app_key, ad_placement, click_target

Analytics are managed internally by PhotoOp — no tracking setup is required on your end.

Troubleshooting

Iframe doesn't load / shows blank

Camera button click doesn't open new tab

Branding doesn't match expected customization

Safari-specific issues

Need help?

Contact partners@photoop.com for integration support.