> For the complete documentation index, see [llms.txt](https://docs.podigee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.podigee.com/documentation/grow-and-monetize/monetization/configure-report-delivery.md).

# Configure report delivery

Send a governed report to an approved API, warehouse, SFTP, or object-storage destination.

Podigee Audio Video Ad Server can deliver a saved report to an approved external destination. After the first mention, this article uses Podigee Ad Server for the product name. Report delivery uses the same report definition, metric versions, filters, and privacy rules as the report in Podigee. It does not create a second meaning for a metric.

The delivery binding is separate from the report. You can test, activate, suspend, revoke, or replace the destination without changing the report definition.

## Before you start

* You have permission to configure report delivery in the workspace.
* You have a saved report with at least one approved metric and a valid reporting scope.
* You have a service principal for the destination.
* You have the destination endpoint, dataset, bucket, or SFTP route.
* You have a stored secret reference and a destination owner.
* You know the required output format, cadence, freshness, quota, and schema profile.

Do not paste a secret into the form. Do not use an unapproved destination for sensitive or commercial data.

## Choose the report

1. Open **Monetization > Evidence & Money**.
2. Open the report that you want to deliver.
3. Confirm the reporting period, time zone, scope, filters, metrics, and output format.
4. Confirm that the report version is the one that the receiving system expects.
5. Choose **Deliver report**.

![The current One Podigee report form opens from a Campaign with Campaign delivery selected and the Campaign scope already set.](https://2032417310-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbqUKO6lljHGzkEAzliPI%2Fuploads%2Fgit-blob-a5f134f5e9c76966a2d3bbe1d02863ba0b9b3b3a%2Fdoc-monetization-072-create-scoped-report.png?alt=media)

*A scoped report keeps the question tied to the Campaign that needs attention.*

## Create a delivery binding

1. Choose **Configure report delivery**.
2. Select the service principal that may use the destination.
3. Select one destination class: **API**, **Warehouse**, **SFTP**, or **Object storage**.
4. Enter the endpoint, dataset, bucket, or route reference.
5. Select the cadence and reporting freshness.
6. Set the hourly quota.
7. Select the schema profile.
8. Select the stored secret reference.
9. Confirm the destination owner and data scope.
10. Save the binding for testing.

The binding points to one immutable report version. A later report change creates a new report version. It does not silently change the meaning of an active delivery.

## Test the destination

1. Open the binding in **Monetization > Operations**.
2. Choose **Test**.
3. Review the test request and the selected report version.
4. Confirm the destination accepts the output format and schema.
5. Confirm the destination returns a receipt or a clear failure.
6. Review the row count, artifact digest, and test receipt.
7. Save the test result.

The test runs asynchronously. Podigee first records the test operation, then finishes it as ready or test failed. A successful form submission is not a successful destination delivery.

![The current One Podigee Evidence and Money view shows this month's qualified delivery, fill rate, qualified revenue, no-fill decisions, a daily chart, and the media and money breakdown.](https://2032417310-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbqUKO6lljHGzkEAzliPI%2Fuploads%2Fgit-blob-ab157f76d1c3f5f7be3a2d369de4c2995b42dd3b%2Fdoc-monetization-072-reports-overview.png?alt=media)

*Use the report view to confirm the values before you send them to another system.*

## Activate report delivery

1. Confirm the destination, service principal, secret reference, cadence, freshness, quota, and schema profile.
2. Confirm that the test receipt is current.
3. Confirm that the report version and data scope are correct.
4. Submit the binding for the required review policy.
5. Choose **Activate**.
6. Monitor the first scheduled run in **Monetization > Operations**.

Activation enables the binding for its selected report version and destination. It does not grant access to other reports or change the report definition.

## Monitor runs and retry safely

Each report run records the report version, reporting interval, output format, artifact digest, row count, completion state, and failure reason when applicable.

Each delivery attempt records the binding version, report run, attempt number, request digest, external receipt when available, response digest, HTTP status, and next attempt time.

Review these states in **Monetization > Operations**:

* **Pending:** the run or delivery is waiting to start.
* **Delivered:** the destination accepted the report.
* **Retryable failure:** a temporary error can be retried.
* **Terminal failure:** delivery stopped because the error is permanent or the retry policy ended.

Retry the same binding version with the same request key and digest when the failure is retryable. This returns the original receipt when the destination already accepted the request. Do not create a second binding to hide an uncertain result.

## Suspend, revoke, or replace a binding

Suspend a binding when the destination is temporarily unavailable or the owner needs to stop new delivery.

1. Open the binding in **Monetization > Operations**.
2. Choose **Suspend**.
3. Confirm the exact binding version and reason.
4. Review pending and failed runs.

Revoke a binding when the destination must no longer receive data. Revoke the binding only after you confirm retention and incident requirements.

To replace a destination or schema:

1. Create a new binding version.
2. Run the test again.
3. Confirm the new receipt and scope.
4. Activate the new version.
5. Supersede the old version.

The old binding and its delivery evidence remain available for audit and troubleshooting.

## If delivery fails

* **The test does not start:** check the service principal, report access, and destination authority.
* **The schema is rejected:** select the schema profile required by the destination and test a new binding version.
* **The output is empty:** check the reporting period, filters, scope, and metric permissions.
* **The destination times out:** review freshness, quota, and destination latency. Keep the binding in testing or suspend it while you repair the route.
* **The receipt is missing:** inspect the request digest and delivery state before retrying. Do not assume that a missing receipt means no delivery occurred.
* **The destination is no longer authorized:** suspend the binding and rotate the secret through the approved access process.

Use the API Reference for the exact delivery payload, schema profile, and receipt fields. Use **Monetization > Evidence & Money** for the report values and **Monetization > Operations** for test, run, and delivery evidence.

## Expected result

The selected report version is delivered to the approved destination with the expected scope, format, cadence, freshness, and schema. Test, delivery, retry, suspension, and replacement records remain traceable to the same report and binding versions. A destination failure does not change the report definition or create a second financial meaning.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.podigee.com/documentation/grow-and-monetize/monetization/configure-report-delivery.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
