> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mention-me.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integration FAQs

> Common questions about Mention Me tag integration, data protection, and troubleshooting

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title="How do you protect customer data?">
    We use SSL for all JavaScript requests to protect customer personal data.
  </Accordion>

  <Accordion title="Will the Mention Me tags slow down my site?">
    Our JavaScript is executed at the bottom of your page and waits for the rest of the document to finish loading before injecting any elements.
  </Accordion>

  <Accordion title="What happens if your service is unavailable?">
    The tags are designed to fail silently during exceptional conditions — nothing will interfere with your page if something goes wrong (for example, if our service is unavailable or if your campaign is paused).
  </Accordion>

  <Accordion title="Why do I get a 403 when loading the tags?">
    This normally happens when the integration has not been approved by Mention Me. We will approve the integration once the referral programme has been signed off.
  </Accordion>

  <Accordion title="How can I encrypt my data? Do I need an encryption key?">
    Our data is already passed via HTTPS. This means the data you're passing to us will already be encrypted and only visible to you, the user and us. Third parties will not be able to get hold of this information.

    If you wish to send users to a landing page and would like to include the users' email address in the link so that they're shown a personalised link (but do not wish to expose the email address in the link), you can follow our instructions on [how to use encrypted parameters to transmit personal data](/developer-docs/integration/encrypted-parameters).
  </Accordion>
</AccordionGroup>

## Common tag integration errors

Most integration problems come down to how the tag URL is built. Run through the checklist below before raising a ticket — each of these has caught out many integrators.

### Referrer tag

<AccordionGroup>
  <Accordion title="Parameter values are not URL-encoded">
    All parameter values must be [URL-encoded](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent). Common offenders are `@` in email addresses (must be `%40`), spaces in names (must be `%20`), and `+` or `/` in custom fields. An un-encoded `&` inside a value will look like the start of the next parameter and corrupt everything that follows it.
  </Accordion>

  <Accordion title="order_subtotal includes VAT or delivery">
    `order_subtotal` must be the order subtotal **excluding VAT/taxes and delivery**. Passing the gross total inflates reward calculations and distorts reporting. If you cannot strip VAT on your side, let your Client Success Manager know so we can handle it.
  </Accordion>

  <Accordion title="Placeholder values have been left in the tag">
    If the tag still contains literal `<INSERT_EMAIL>`, `<INSERT_ORDER_NUMBER>` or similar placeholders, your templating engine has not rendered the real values into the URL. Nothing will match a real customer.
  </Accordion>

  <Accordion title="tag-demo has been left in the live tag">
    The demo host is `tag-demo.mention-me.com` and is for pre-launch testing only. When you go live, the host must be `tag.mention-me.com`. Forgetting to swap it means live customers hit the demo environment and no real referrals are recorded.
  </Accordion>

  <Accordion title="firstname or surname is missing">
    `firstname` and `surname` are mandatory on the referrer tag. Without them we cannot personalise sharing (which dramatically reduces conversion) and in most configurations the tag will refuse to serve.
  </Accordion>

  <Accordion title="locale is missing or invalid">
    The `locale` parameter must be in the form `xx_YY` (ISO 639-1 language, underscore, ISO 3166-1 alpha-2 country), e.g. `en_GB`. An unknown locale will result in either the default campaign being served or nothing at all.
  </Accordion>

  <Accordion title="Partner code is missing or hard-coded incorrectly">
    The partner-code placeholder in the URL path must be replaced with the partner code issued to your account. If it is missing, mistyped, or copied from another environment, the request will return a 404.
  </Accordion>

  <Accordion title="Hardcoded customer or order data">
    The values passed on the tag must reflect the current customer and their current order. Copying the tag snippet verbatim (with someone else's email or order number) will attribute activity to the wrong customer.
  </Accordion>

  <Accordion title="order_currency is missing or not ISO 4217">
    `order_currency` must be a three-character [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code such as `GBP`, `EUR`, or `USD`. Values like `£` or `pounds` will be rejected.
  </Accordion>

  <Accordion title="order_number is reused across orders">
    `order_number` should be unique per order. Duplicate order numbers cause downstream deduplication and make the order look like a refund or replay of an earlier one.
  </Accordion>

  <Accordion title="Multiple tags fire but share the same wrapper">
    If you render more than one Mention Me tag on the same page, each needs its own wrapper `div`. Configure a distinct wrapper id from the Mention Me dashboard rather than reusing `mmWrapper` for all of them.
  </Accordion>

  <Accordion title="Tag fires before the DOM is ready in SPAs">
    In React, Angular, Vue, or other SPA frameworks, inject the tag after the page content has rendered, and clear `window.MentionMeFiredTags` if you need the tag to re-fire on client-side navigations. See the [SPA implementation notes](/knowledge/tags/spa-implementation) for more detail.
  </Accordion>
</AccordionGroup>

### Referee tag

<AccordionGroup>
  <Accordion title="Locale is missing on the referee tag">
    The referee tag must be passed a valid `locale` — without one, the "Been referred by a friend?" link will not appear. Check the value is being set for the country your customer is browsing from.
  </Accordion>

  <Accordion title="mmWrapper div is missing from the page">
    The referee tag populates a placeholder `<div id="mmWrapper"></div>` somewhere in the page `<body>`. If the div is missing, the link or embedded form has nowhere to render. You can also see `Mention Me Tag failed to insert into wrapper` in the console in this case — see the [error codes](/developer-docs/integration/reference/error-codes).
  </Accordion>
</AccordionGroup>
