Skip to main content

Marketing Consent Webhooks

Aghanim's marketing consent webhooks notify your game about changes to a player's marketing consent, allowing you to keep your marketing lists in sync.

Webhook events

Use these webhook events to manage your marketing lists.

EventWhen it firesWhat you should do
player.marketing_consent.updatedA player's marketing consent state changesUpdate your marketing lists accordingly

Requirements

To use marketing consent webhooks from Aghanim, you should have the webhook server configured as follows:

  • HTTPS endpoint, accepting POST webhook requests.
  • Listen for events, generated and signed by Aghanim.
  • Handle the idempotency_key included in the webhook payload to prevent processing duplicate webhooks.
  • Respond with 2xx status codes if the event was processed successfully, and 4xx or 5xx for errors.

Configuration

  1. Develop a function for marketing consent webhook processing.
  2. Make your endpoint available.
  3. Register your endpoint within Aghanim account → GameWebhooksNew Webhook by choosing the marketing consent event types you want to handle.

Alternatively, you can register your endpoint within Aghanim using the Create Webhook API method.

Request schema

Below is an example of an player.marketing_consent.updated webhook request:

POST /your/webhook/uri HTTP/1.1
Content-Type: application/json
Host: your-webhook-endpoint.com
User-Agent: Aghanim/0.1.0
X-Aghanim-Signature: 2e45ed4dede5e09506717490655d2f78e96d4261040ef48cc623a780bda38812
X-Aghanim-Signature-Timestamp: 1725548450

{
"event_type": "player.marketing_consent.updated",
"event_data": {
"player_id": "2D2R-OP3C",
"email": {
"address": "player@example.com",
"granted_at": 1704067200,
"revoked_at": null
}
},
"event_time": 1725548450,
"event_id": "whevt_eCacGbJVbvToOgzjXUgOCitkQE",
"idempotency_key": null,
"request_id": "d1593e9c-c291-4004-8846-6679c2e5810b",
"sandbox": false,
"trigger": "hub.purchase",
"transaction_id": "whtx_eCacGbJVbvT",
"context": null,
"game_id": "gm_exTAyxPsVwh"
}

The Event schema

KeyTypeDescription
event_idstringUnique Event ID generated by Aghanim.
game_idstringYour game ID in the Aghanim system.
event_typestringThe type of the event, player.marketing_consent.updated in this case.
event_timenumberEvent date in Unix epoch time.
event_dataEventDataContains the event-specific data, with possible keys for inherited objects.
idempotency_keystring|nullEnsures webhook actions are executed only once, even if retried. Can be null depending on event type.
request_idstring|nullIf the event was triggered by an API request, the request ID is included.
sandboxbooleanIndicates whether the event was sent from the sandbox game environment.
triggerstring|nullThe trigger that caused the event to be sent.
transaction_idstringThe transaction ID generated by Aghanim. This ID may be the same for multiple events emitted within the same transaction.
contextobject|nullContextual information about the event.

The EventData schema

KeyTypeDescription
player_idstringThe unique Player ID chosen for player authentication.
emailEmailChannel|nullEmail channel consent. Present when email consent changed.

The EmailChannel schema

KeyTypeDescription
addressstringThe player's email address.
granted_atnumberUnix timestamp when consent was granted.
revoked_atnumber|nullUnix timestamp when consent was revoked. null if consent has not been revoked.

The Trigger values

ValueDescription
hub.purchaseWhen a player opts in to marketing during checkout.
s2s.player.marketing_consent.grantWhen consent is granted via the Grant Email Marketing Consent S2S API.
s2s.player.marketing_consent.revokeWhen consent is revoked via the Revoke Email Marketing Consent S2S API.
dashboard.player.marketing_consent.revokeWhen consent is revoked through the Aghanim Dashboard.
testWhen using the "Send test event" in the Dashboard.

Need help?
Contact our integration team at integration@aghanim.com