# Auto Insurance Marketplace

This document describes how to integrate the Auto Insurance Widget into your web application. The widget allows users to get auto insurance ads seamlessly.

## Standard Embed Implementation

Engine's embed code can be placed in any order within your page, but for optimal user experience we recommend placing the `script` tag within the same div where the content is being rendered.

**Basic Embed Syntax**

{% hint style="info" icon="triangle-exclamation" %}
**PLEASE NOTE**: Your Engine representative will provide you with your specific code snippet. Do not try to reproduce from the sample snippet outlined below.
{% endhint %}

```html
<script
  async
src="https://www.moneylion.com/network/{channel}/{zone}/web-component/{component-name}/index.js"
  data-embed-type="auto-mount"
></script>
```

This is a representative example of what our embed code looks like, and contains placeholders as defined below. Placeholders and will be replaced with precise values in the embed code provided to you.

**Embed Components**

* **Channel:** placeholder that will be replaced with precise values in the embed code provided to you.
* **Zone:** placeholder that will be replaced with precise values in the embed code provided to you.
* **Component Name:** corresponds to the specific product or Engine experience type that's being rendered.
* **data-embed-type:** enables Engine's auto-mount functionality; without this attribute, the component will not render.
  * **Acceptable Value:** "auto-mount"

**Customization & Auto Sizing**

The web component loads iFrame and will automatically fill the container. Embeds are rendered wherever you include our HTML tag on your page and will responsively scale to fill the space available to it.

## Auto Insurance Specific Syntax

### Component Name

* **auto-insurance-listing:** marketplace widget that drops a geo-aware, scrollable list of auto insurance offers into your page (e.g., blog or product flow) with Engine handling carrier connectivity, geo/state eligibility, and monetization behind the scenes.

### HTML Attributes

**data-prefetch:** Enable prefetching and pre-filling of offers

* **Acceptable Values**: true, false

**data-query:** Defines fields to prefill in the embed experience

* **Acceptable Values:** Text Field

## Auto Insurance Embed Demo

<figure><img src="https://3849802388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MeMvVDbjd8vJWZ9Hwf0%2Fuploads%2FQhvmOsxAcWmRmvQO6DCT%2Fimage.png?alt=media&#x26;token=dde13ffd-15ed-470d-a495-9a114fc5dbd3" alt=""><figcaption></figcaption></figure>

## **Client Tags & Pre-populating Customer Data**

Engine's Auto Insurance Marketplace embed supports appending client tags for channel partner reporting. This marketplace works slightly differently than other Engine embeds when it comes to pre-population of customer data. In order to accomplish this, you must use a query tag in the embed code.

From an implementation perspective for each use case:

* Pre-populating Customer Data for certain non-PII fields
  * Decreases friction in the user experience and increases application submission rates
    * `data-query`
* Channel Partner Reporting
  * `data-tags`

### How to Implement Tags & Customer Data Prefill

To **add client tags** in an embed, use the following syntax in the `data-tags` attribute within the embed script:

```
tag.key_1=value_1&tag.key_2=value_2
```

To **pre-populate fields** in an embed, use the following syntax in the `data-query` attribute within the embed script:

```
app.key_1=value_1&app.key_2=value_2
```

#### <mark style="color:$primary;">Sample Implementation</mark>

```html
"<script 
      async src=\"https://www.moneylion.dev/network/{channel}/{zone}/web-component/auto-insurnace-listing/index.js\" 
      data-tags=\"tag.clientId=c1&tag.source=email\"
      data-query=\"app.providedCreditRating=fair&app.zipcode=90210\"
      data-embed-type=\"auto-mount\" 
></script>"
```

<mark style="color:$primary;">In the above example, "clientId" and "source" are available as tags for reporting purposes and "providedCreditRating" and "zipcode" will be prepopulated in the embed user interface.</mark>

### Supported Client Tag Keys

These are the keys that are currently fully supported across all Engine embeds. Please note that the keys below are case-sensitive:

* agentId
* campaignId
* clientId
* deviceid
* medium
* sourceId
* subid
* subid1
* subid2
* subid3
* target
* trafficsource
* userid

If a different key is needed, please reach out to your Partner Manager - we *may* be able to accommodate, but adding nonstandard keys will increase the time it takes Engine to report Client Tag values back to you and is therefore not recommended.

### Supported Tag Keys for Prefill <a href="#integration-with-html" id="integration-with-html"></a>

Engine's Auto Insurance embed accepts the following `data-query` parameters and values for customer data pre-population purposes:

<table><thead><tr><th width="338.0361328125">Params</th><th>Value</th></tr></thead><tbody><tr><td><code>app.providedCreditRating</code></td><td><ul><li>excellent</li><li>good</li><li>fair</li><li>poor</li><li>limited</li><li>unknown</li></ul></td></tr><tr><td><code>app.zipcode</code></td><td>Any 5 digit number (e.g 10010)</td></tr><tr><td><code>app.ageRange</code></td><td><ul><li>AGE_RANGE_18_20</li><li>AGE_RANGE_21_24</li><li>AGE_RANGE_25_34</li><li>AGE_RANGE_35_44</li><li>AGE_RANGE_45_54</li><li>AGE_RANGE_55_64</li><li>AGE_RANGE_65_PLUS</li></ul></td></tr><tr><td><strong>Only insert these values if they are applicable, and set the query to <code>true</code></strong></td><td></td></tr><tr><td><code>app.is_military</code></td><td>true</td></tr><tr><td><code>app.has_multiple_vehicles</code></td><td>true</td></tr><tr><td><code>app.is_home_owner</code></td><td>true</td></tr><tr><td><code>app.is_currently_insured</code></td><td>true</td></tr></tbody></table>

## Embed Best Practices & Troubleshooting <a href="#integration-with-html" id="integration-with-html"></a>

**Component Not Showing**

1. Check the required attribute:
   1. Make sure data-embed-type="auto-mount" is present
2. Check browser console:
   1. Open developer tools and look for error messages

**Loading Too Slowly**

1. Make sure async attribute is present on the \<script> tag
   1. This prevents block page load
