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

# Consent Enforcement

> Enforce Google® Consent Mode v2 consent across all Conversion API. Cannot be disabled.

<Check>
  OneView automatically enforces Google Consent Mode v2 consent across all Conversion API integrations. Cannot be disabled.
</Check>

## What is Consent Enforcement?

**Consent Enforcement** automatically respects user consent signals across all advertising platforms, ensuring that conversions are only sent when users have granted the required permissions. OneView enforces consent at the infrastructure level, eliminating the need for platform-specific consent configuration.

<Info>
  **Understanding consent enforcement:**

  Traditional implementations require you to configure consent handling for each platform separately, creating opportunities for errors and inconsistencies. OneView enforces consent automatically across all platforms using Google Consent Mode v2, ensuring consistent compliance without manual configuration.
</Info>

## How Consent Enforcement works

OneView automatically enforces consent across all Conversion API integrations:

| Consent Property     | What It Means                             | When Granted                              | When Denied                                |
| -------------------- | ----------------------------------------- | ----------------------------------------- | ------------------------------------------ |
| `analytics_storage`  | User allows first-party analytics         | ✅ OneView processes event data            | ❌ OneView discards event data              |
| `ad_storage`         | User allows advertising optimization      | ✅ OneView sends Conversion API            | ❌ OneView does not send Conversion API     |
| `ad_user_data`       | User allows transmission of personal data | ✅ OneView includes hashed PII             | ❌ OneView excludes PII                     |
| `ad_personalization` | User allows personalized advertising      | ✅ OneView flags personalization as `true` | ❌ OneView flags personalization as `false` |

<Check>
  When consent is not explicitly `GRANTED`, it is considered `DENIED` by default. This follows the **privacy by design and by default** principle required by GDPR.
</Check>

## Automatic PII hashing

OneView automatically hashes all PII and never stores plaintext sensitive data:

| PII Type         | Hashing | Storage                   |
| ---------------- | ------- | ------------------------- |
| **Email**        | SHA-256 | Never stored in plaintext |
| **Phone number** | SHA-256 | Never stored in plaintext |
| **Name**         | SHA-256 | Never stored in plaintext |
| **Address**      | SHA-256 | Never stored in plaintext |
| **IP address**   | SHA-256 | Never stored in plaintext |

<Warning>
  OneView does not inspect **custom fields** for PII. Please check the [implementation guides](/docs/guides/sending-events/overview) to ensure custom fields containing PII are properly handled.
</Warning>

<Check>
  All personally identifiable information is automatically hashed using <Tooltip tip="SHA-256 is a cryptographic hash function that converts input data into a fixed-size string, making it impossible to reverse back to the original data.">SHA-256</Tooltip> before reaching your home region.
</Check>

## Privacy by design

OneView takes a zero-tolerance approach to privacy:

| Feature                 | Traditional Approach       | OneView Approach               |
| ----------------------- | -------------------------- | ------------------------------ |
| **PII handling**        | Flexible (can be disabled) | Automatic (cannot be disabled) |
| **Consent enforcement** | Manual per platform        | Automatic across all platforms |
| **Data storage**        | Plaintext possible         | Always hashed                  |
| **Error risk**          | Human error possible       | Eliminated by automation       |

<Info>
  While having flexible PII handling options seems convenient, it creates **unnecessary risks** since sensitive data can be accidentally transmitted or stored in **plaintext**. OneView enforces automatic PII hashing that **cannot be disabled**—eliminating human error and ensuring consistent compliance.
</Info>

## Consent Management Platform

To use OneView, you need a **Consent Management Platform** (CMP) that supports **Google Consent Mode v2**:

| Requirement            | Details                               |
| ---------------------- | ------------------------------------- |
| **CMP support**        | Must support Google Consent Mode v2   |
| **Consent signals**    | Must send consent status with events  |
| **Certified partners** | All major CMPs support this framework |

<Check>
  All major CMPs support Google Consent Mode v2. [See certified partners](https://cmppartnerprogram.withgoogle.com/#partners).
</Check>

## PII handling options

With OneView, you can send PII in two ways:

| Option         | Description                        | When to Use                          |
| -------------- | ---------------------------------- | ------------------------------------ |
| **Pre-hashed** | Hash PII before sending to OneView | If you prefer to hash on your side   |
| **Plaintext**  | Send PII in plaintext              | OneView hashes instantly at the edge |

<Info>
  If you send PII in plaintext, OneView hashes it instantly at the edge, before data reaches your home region. All PII is automatically hashed using SHA-256 regardless of which option you choose.
</Info>

## Benefits

**Automatic compliance**

OneView enforces consent automatically across all platforms, eliminating the need for manual configuration and reducing the risk of compliance errors.

**Consistent enforcement**

All Conversion API integrations respect the same consent signals, ensuring consistent behavior across your entire marketing stack.

**Privacy by default**

When consent is not explicitly granted, it is considered denied by default, following GDPR privacy by design principles.

## Common questions

<AccordionGroup>
  <Accordion title="What PII does OneView automatically hash?">
    OneView automatically detects and hashes:

    * Email addresses
    * Phone numbers
    * Names
    * Addresses

    <Warning>
      OneView does not inspect **custom fields** for PII. Please check the [implementation guides](/docs/guides/sending-events/overview) to ensure custom fields containing PII are properly handled.
    </Warning>
  </Accordion>

  <Accordion title="Can I disable automatic PII hashing?">
    No. OneView enforces automatic PII hashing that **cannot be disabled**. This ensures consistent privacy compliance and eliminates the risk of accidentally transmitting or storing plaintext sensitive data.
  </Accordion>

  <Accordion title="How does consent enforcement work with Enhanced Conversions?">
    Enhanced Conversions require `ad_user_data` consent. OneView automatically:

    * Includes hashed PII when `ad_user_data` is granted
    * Excludes PII when `ad_user_data` is denied
    * Respects consent settings across all platforms

    No additional configuration needed.
  </Accordion>

  <Accordion title="What happens if I don't send consent signals?">
    If consent signals are not provided, OneView treats consent as **denied** by default. This means:

    * `analytics_storage`: Event data is discarded
    * `ad_storage`: Conversion API is not sent
    * `ad_user_data`: PII is excluded from conversions
    * `ad_personalization`: Personalization is disabled

    This follows the privacy by design and by default principle.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="ePrivacy" icon="shield-check" href="/docs/platform/compliance/consent">
    Learn how OneView automatically respects user consent across all platforms.
  </Card>

  <Card title="Enhanced Conversions" icon="rectangle-history-circle-plus" href="/docs/platform/features/delivery/enhanced-conversions">
    Understand how consent affects Enhanced Conversions and PII handling.
  </Card>
</CardGroup>
