Servicio de reglas de pago

Una regla de pago define los términos por los que una red paga a uno de sus editores administrados. Una red puede tener más de un conjunto de condiciones de pago con un editor. Por ejemplo, el tráfico que se origina en determinadas áreas geográficas puede tener diferentes términos de acuerdo de reparto de ingresos.

Nota:

La segmentación de anunciantes o líneas de pedido a través del servicio de colocación anulará cualquier segmentación de esos objetos a través del protocolo opcional profile_idde este servicio.

API de REST

Nota:

publisher_code se puede usar en lugar de publisher_id, y payment_rule_code se puede usar en lugar de publisher_rule_id para todas las llamadas siguientes.

Método HTTP Endpoint Description
POST https://api.appnexus.com/payment-rule?publisher_id=PUBLISHER_ID
(payment-rule JSON)
Agregar una nueva regla de pago.
PUT https://api.appnexus.com/payment-rule?id=PAYMENT_RULE_ID&publisher_id=PUBLISHER_ID
(payment-rule JSON)
Modificar una regla de pago existente.
GET https://api.appnexus.com/payment-rule?publisher_id=PUBLISHER_ID Ver todas las reglas de pago de un editor.
GET https://api.appnexus.com/payment-rule?id=PAYMENT_RULE_ID Ver una regla de pago específica para un editor.
GET https://api.appnexus.com/payment-rule?id=1,2,3 Ver varias reglas de pago por identificador mediante una lista separada por comas.
DELETE https://api.appnexus.com/payment-rule?id=PAYMENT_RULE_ID Eliminar una regla de pago.

Campos JSON

Campo Tipo Descripción
id Entero El id. de esta regla de pago.
Requerido en: PUT, en la cadena de consulta
code string Un código personalizado opcional que puedes usar para hacer referencia a esta regla de pago.

Valor predeterminado: Null
name string Nombre utilizado para describir esta regla de pago.

Valor predeterminado: None
Requerido en: POST
state enumeración El estado de esta regla de pago. Valores posibles: "active" o "inactive".

Valor predeterminado: "active"
description string Una descripción opcional.
start_date marca de tiempo Fecha de inicio de esta regla.

Valor predeterminado: Immediately
end_date marca de tiempo Fecha de finalización de esta regla.

Valor predeterminado: Indefinitely
pricing_type enumeración Posibles valores:
- "revshare" - Al editor se le paga un porcentaje de los ingresos publicitarios.
- "cpm" - Al editor se le paga una tarifa plana por anuncio servido.
- "dynamic" - Los términos de pago se definen por un revshare mínimo y máximo y un eCPM objetivo.

Valor predeterminado: "revshare"
Requerido en: POST
cost_cpm double Si pricing_type es "cpm", esta es la tarifa de CPM que se le paga al editor.

Requerido en: POST, si pricing_type es "cpm"
revshare double Si pricing_type es "revshare", este es el porcentaje pagado al editor. Si el tipo de precio es "dynamic", este es el porcentaje mínimo de revshare pagado al editor, con el máximo definido por max_revshare. El porcentaje debe expresarse como un número entre 0 y 1 (inclusive), donde 1 es 100%.

Requerido en: POST, si pricing_type es "revshare" o "dynamic"
profile_id Entero Se utiliza un opcional profile_id para determinar cuándo aplicar una regla de pago. Un perfil es un conjunto genérico de reglas para segmentar el inventario, y ciertas reglas de pago solo pueden aplicarse a determinados segmentos del inventario. Consulte el Servicio de perfiles para obtener más detalles.
priority Entero Opcionalmente, puede proporcionar una prioridad que defina el nivel en el que se debe aplicar esta regla en relación con otras reglas de pago.

Valor predeterminado: 5
timezone string La zona horaria usada para calcular los datos de precios. Para obtener una lista de zonas horarias, consulte Zonas horarias de API.

Valor predeterminado: 'EST5EDT'
last_modified marca de tiempo Hora de la última modificación de esta regla de pago.
demand_filter_action enumeración Decida si desea incluir o excluir los anunciantes o las líneas de pedido que aparecen en las filtered_advertisersmatrices o filtered_line_items matrices.
Posibles valores:
- "include"
- "exclude"
- "default".
Para obtener más información, consulte Demand Filtering más abajo.
filtered_advertisers matriz de objetos Una lista de anunciantes a los que quiere aplicar la acción especificada por demand_filter_action . Consulte Anunciantes filtrados a continuación.
filtered_line_items matriz de objetos Lista de líneas de pedido a las que quiere aplicar la acción especificada por demand_filter_action TO. Consulte las líneas de pedido filtradas a continuación.
filtered_campaigns matriz de objetos Obsoleto. Lista de campañas a las que quieres aplicar la acción especificada por demand_filter_action TO.
buyer_type enumeración A qué tipos de comprador aplicar esta regla de pago.
Posibles valores:
- "direct": su propio inventario administrado
- "external": Inventario administrado por terceros
- "both"

Valor predeterminado: "both"
max_revshare double Si pricing_type es "dynamic"así, este es el porcentaje máximo de revshare pagado al editor.

Requerido en: POST, si pricing_type es "dynamic".
apply_cost_on_default booleano Si se paga o no al editor, incluso si la subasta no se realiza correctamente.

Filtrado por demanda

El filtrado de demanda puede ser una capacidad de segmentación útil, pero es importante comprender cómo funciona antes de usarlo en reglas de pago o ubicaciones.

Consideraciones clave

  1. Solo se aplica a la demanda administrada: el filtrado de demanda en las reglas de pago o colocaciones solo se aplica a la demanda administrada. Si se habilita un emplazamiento para la reventa, las campañas de orígenes de demanda de terceros no se verán afectadas por el filtrado de demanda.
  2. Se aplica una regla de pago por impresión: cada impresión usa una única regla de pago, que se selecciona al comienzo de la subasta. Una vez seleccionada, la regla de pago determina qué demanda es elegible para participar. Debido a este comportamiento, no puede usar el filtrado de demanda de reglas de pago para ajustar los pagos del publicador en función de la fuente de demanda que gane la subasta. En concreto:
  • Inclusión de una línea de pedido: cuando una regla de pago incluye una línea de pedido específica, esa línea de pedido se excluye de la subasta cuando se aplica la regla de pago. Solo pueden servir otras líneas de pedido gestionadas y la demanda de RTB. Por ejemplo, si filtered_line_items = 1234 y demand_filter_action = include, la línea de pedido 1234 no será apta para pujar cuando se seleccione esta regla de pago.
  • Excluyendo una línea de pedido: cuando una regla de pago excluye una línea de pedido específica, solo esa línea de pedido es apta para pujar a partir de la demanda gestionada. Se excluyen todas las demás líneas de pedido gestionadas, mientras que la demanda de RTB sigue siendo elegible. Por ejemplo, si filtered_line_items = 1234 y demand_filter_action = exclude, solo el elemento 1234 de línea puede pujar a partir de la demanda gestionada cuando se selecciona esta regla de pago. Si esa línea de pedido alcanza su límite de frecuencia, tiene un ritmo de ritmo o no es elegible de alguna otra manera, ninguna demanda administrada será elegible para servir mientras la regla de pago permanezca seleccionada.
  1. El filtrado de nivel de ubicación tiene prioridad: el filtrado de demanda configurado en el nivel de ubicación anula el filtrado de demanda configurado en el nivel de regla de pago. Si se establecen inclusiones o exclusiones de demanda en una ubicación, se ignora todo el filtrado de demanda a nivel de regla de pago. Para obtener más información, consulte Filtrado de demanda de ubicación.

Anunciantes filtrados

Campo Tipo Descripción
id Entero El identificador del anunciante.
name string El nombre del anunciante.

Líneas de pedido filtradas

Campo Tipo Descripción
id Entero El identificador del elemento de línea.
name string El nombre de la línea de pedido.

Ejemplos

Crear una regla de pago

$ cat payment_rule.json

{
    "payment-rule":{
        "name": "France - 1/24 - $.40 CPM",
        "code": "france_payment_rule",
        "pricing_type": "cpm",
        "cost_cpm": "0.4",
        "state": "active",
        "start_date": "2010-01-01 00:00:00",
        "end_date": "2010-03-31 11:59:59",
        "priority": 8,
        "profile_id": 12345
    }
}

$ curl -c cookies -b cookies -X POST -d @payment_rule.json 'https://api.appnexus.com/payment-rule?publisher_id=65103'

{
  "response": {
    "status": "OK",
    "count": 1,
    "id": 66323,
    "start_element": 0,
    "num_elements": 100,
    "payment-rule": {
      "id": 66323,
      "code": "france_payment_rule",
      "name": "France - 1/24 - $.40 CPM",
      "description": "",
      "pricing_type": "cpm",
      "cost_cpm": 0.4,
      "revshare": null,
      "state": "active",
      "start_date": "2010-01-01 00:00:00",
      "end_date": "2010-03-31 11:59:59",
      "profile_id": 12345,
      "timezone": "EST5EDT",
      "priority": 8,
      "last_modified": "2011-02-18 21:19:52"
    }
  }
}

Leer una sola regla de pago

$ curl -b cookies 'https://api.appnexus.com/payment-rule?id=92873'

{
    "payment-rule": {
    "apply_cost_on_default": true,
    "target_ecpm": 0.8,
    "max_revshare": 0.8,
    "buyer_type": "both",
    "last_modified": "2012-08-02 19:04:00",
    "priority": 10,
    "timezone": "EST5EDT",
    "profile_id": null,
    "end_date": null,
    "start_date": "2013-01-01 00:00:00",
    "state": "active",
    "revshare": 0.67,
    "cost_cpm": 40,
    "pricing_type": "dynamic",
    "description": "A payment rule for targeting USA users",
    "name": "USA",
    "code": "usa_payment_rule",
    "id": 98273
    }
}

Leer todas las reglas de pago de un editor

$ curl -c cookies -b cookies 'https://api.appnexus.com/payment-rule?publisher_id=65103'

{
  "response": {
    "status": "OK",
    "count": 4,
    "start_element": null,
    "num_elements": null,
    "payment-rules": [
      {
        "id": 95479,
        "code": null,
        "name": "Base Payment Rule",
        "description": "",
        "pricing_type": "revshare",
        "cost_cpm": null,
        "revshare": 0.6,
        "state": "active",
        "start_date": null,
        "end_date": null,
        "profile_id": null,
        "timezone": "EST5EDT",
        "priority": 1,
        "last_modified": "2012-04-09 11:40:54",
        "buyer_type": "both",
        "max_revshare": null,
        "target_ecpm": null,
        "apply_cost_on_default": false,
        "demand_filter_action": "default",
        "lifetime_budget": null,
        "lifetime_budget_imps": null,
        "daily_budget": null,
        "daily_budget_imps": null,
        "filtered_advertisers": null,
        "filtered_line_items": null
      },
      {
        "id": 95480,
        "code": null,
        "name": "AbenBog Unique Impressions",
        "description": "",
        "pricing_type": "revshare",
        "cost_cpm": null,
        "revshare": 0.7,
        "state": "active",
        "start_date": "2012-04-09 00:00:00",
        "end_date": null,
        "profile_id": 142958,
        "timezone": "EST5EDT",
        "priority": 5,
        "last_modified": "2012-04-09 11:46:32",
        "buyer_type": "both",
        "max_revshare": null,
        "target_ecpm": null,
        "apply_cost_on_default": false,
        "demand_filter_action": "exclude",
        "lifetime_budget": null,
        "lifetime_budget_imps": null,
        "daily_budget": null,
        "daily_budget_imps": null,
        "filtered_advertisers": null,
        "filtered_line_items": null
      },
      {
        "id": 98434,
        "code": null,
        "name": "Rich's cool payment rule",
        "description": "",
        "pricing_type": "revshare",
        "cost_cpm": null,
        "revshare": 0.7,
        "state": "active",
        "start_date": null,
        "end_date": null,
        "profile_id": null,
        "timezone": "EST5EDT",
        "priority": 5,
        "last_modified": "2012-08-03 17:37:17",
        "buyer_type": "both",
        "max_revshare": null,
        "target_ecpm": null,
        "apply_cost_on_default": true,
        "demand_filter_action": "default",
        "lifetime_budget": null,
        "lifetime_budget_imps": null,
        "daily_budget": null,
        "daily_budget_imps": null,
        "filtered_advertisers": null,
        "filtered_line_items": null
      },
      {
        "id": 98435,
        "code": "this_is_a_test",
        "name": "Rich's other cool payment rule",
        "description": "",
        "pricing_type": "revshare",
        "cost_cpm": null,
        "revshare": 0.7,
        "state": "active",
        "start_date": null,
        "end_date": null,
        "profile_id": null,
        "timezone": "EST5EDT",
        "priority": 5,
        "last_modified": "2012-08-03 17:57:27",
        "buyer_type": "both",
        "max_revshare": null,
        "target_ecpm": null,
        "apply_cost_on_default": true,
        "demand_filter_action": "default",
        "lifetime_budget": null,
        "lifetime_budget_imps": null,
        "daily_budget": null,
        "daily_budget_imps": null,
        "filtered_advertisers": null,
        "filtered_line_items": null
      }
    ]
  }
}

Actualizar una regla de pago

$ cat payment_rule.json

{
    "payment-rule": {
    "apply_cost_on_default": true,
    "target_ecpm": 0.8,
    "max_revshare": 0.8,
    "priority": 10,
    "timezone": "EST5EDT",
    "revshare": 0.67,
    "cost_cpm": 40,
    "pricing_type": "dynamic",
    "description": "A payment rule for targeting USA users"
    }
}

$ curl -b cookies -X PUT -d @payment_rule.json
'https://api.appnexus.com/payment-rule?publisher_id=65103&id=98273'

{
    "payment-rule": {
    "apply_cost_on_default": true,
    "target_ecpm": 0.8,
    "max_revshare": 0.8,
    "buyer_type": "both",
    "last_modified": "2012-08-02 19:04:00",
    "priority": 10,
    "timezone": "EST5EDT",
    "profile_id": null,
    "end_date": null,
    "start_date": "2013-01-01 00:00:00",
    "state": "active",
    "revshare": 0.67,
    "cost_cpm": 40,
    "pricing_type": "dynamic",
    "description": "A payment rule for targeting USA users",
    "name": "USA",
    "code": "usa_payment_rule",
    "id": 98273
    }
}

Eliminar una regla de pago

$ curl -b cookies -X DELETE "https://api.appnexus.com/payment-rule?id=98384"

{
  "response": {
    "status": "OK"
  }
}