Compartir a través de


Operación del servicio ApplyProductPartitionActions: Administración de campañas

Aplica una acción de agregar, actualizar o eliminar a cada una de las acciones BiddableAdGroupCriterion o NegativeAdGroupCriterion especificadas, que contienen una productpartition.

Sugerencia

Para obtener información general y más información sobre las campañas de compras de Microsoft, consulte las guías técnicas Anuncios de productos y Campañas de compras inteligentes .

Tenga en cuenta las siguientes reglas de validación.

  • Como mínimo, debe especificar al menos el nodo raíz para la estructura de árbol del grupo de particiones de producto. La raíz del grupo de particiones del producto BiddableAdGroupCriterion debe tener su operando de condición establecido en "All" y Attribute en null. Si va a pujar por todos los productos del catálogo por igual, establezca PartitionType en Unit. Si va a crear particiones de las pujas en función de condiciones de producto más específicas, establezca PartitionType en Subdivision, ParentCriterionId en null y id en un valor negativo. Usará el valor negativo como ParentCriterionId para los nodos secundarios.

  • El nodo raíz se considera nivel 0 y un árbol puede tener ramas de hasta 7 niveles de profundidad.

  • Puede especificar hasta 5000 objetos AdGroupCriterionAction por llamada. Todo el árbol creado a través de varias llamadas puede tener hasta 20 000 nodos.

  • Cada uno de los objetos AdGroupCriterionAction debe tener el mismo AdGroupId; de lo contrario, se producirá un error en la llamada.

  • Para actualizar las propiedades Condition o Attribute , debe eliminar el nodo de árbol de partición de producto existente y agregar un nuevo nodo de árbol de partición de producto que obtendrá un nuevo identificador. Del mismo modo, para actualizar desde un biddableAdGroupCriterion a un NegativeAdGroupCriterion o viceversa, debe eliminar el nodo de árbol de particiones de producto existente y agregar un nuevo nodo de árbol de partición de producto que obtendrá un nuevo identificador.

  • Si se produce un error en alguna acción, también se producirá un error en todas las acciones restantes que podrían haberse realizado correctamente.

  • Todas las acciones de una llamada deben dar lugar a una estructura de árbol completa. Si necesitas aplicar más de 5000 acciones por grupo de anuncios, debes realizar varias llamadas. Obtenga los identificadores de criterio del grupo de anuncios primario de la primera llamada y agregue más elementos secundarios según sea necesario en las llamadas posteriores.

  • Cada ruta de acceso desde el nodo raíz hasta el final de una rama debe terminar con un nodo hoja (ProductPartitionType=Unit). Cada unidad debe tener una puja, a menos que el nodo sea NegativeAdGroupCriterion.

  • Cada subdivisión debe tener al menos un nodo hoja que puja por el resto de las condiciones de la subdivisión, es decir, usar el mismo operando que sus unidades del mismo nivel y establecer su atributo en null.

  • Solo puede especificar un nodo secundario después de su elemento primario.

  • Si va a agregar particiones con varios niveles en los que aún no existe ninguno de los elementos primarios o secundarios, use un valor int negativo como referencia para identificar al elemento primario. Por ejemplo, establezca el id. del elemento primario y el elemento ParentCriterionId del elemento secundario en el mismo valor negativo. Los identificadores negativos solo son válidos durante la llamada. Los identificadores únicos del sistema para cada criterio de grupo de anuncios agregado correctamente se devuelven en el mensaje de respuesta.

  • Los elementos CriterionBid y DestinationUrl de los nodos de particiónBiddableAdGroupCriterion se omiten. Esos elementos solo son pertinentes para los nodos de partición de unidad (hoja).

  • El elemento Status de AdGroupCriterion siempre se omite para el criterio de partición del producto. Para agregar, actualizar o eliminar una partición de producto, establezca el elemento Action del elemento AdGroupCriterionAction correspondiente.

  • Para pausar cualquier partición de producto, debe pausar todo el grupo de anuncios llamando a UpdateAdGroups. Puede llamar a UpdateCampaigns para pausar toda la campaña.

  • El elemento EditorialStatus de AdGroupCriterion no tiene ningún significado significativo para el criterio de partición de producto. La validación editorial del catálogo de productos se completa en la tienda de Microsoft Merchant Center.

  • En el caso de una acción Eliminar , solo es necesario especificar el Id . y AdGroupId en AdGroupCriterion.

  • Si elimina una partición de producto primaria, también se eliminarán todos sus elementos secundarios y descendientes.

  • No puede especificar condiciones de producto duplicadas en una rama.

Elementos Request

El objeto ApplyProductPartitionActionsRequest define los elementos body y header de la solicitud de operación de servicio. Los elementos deben estar en el mismo orden que se muestra en la solicitud SOAP.

Nota:

A menos que se indique lo contrario a continuación, se requieren todos los elementos de solicitud.

Elementos del cuerpo de la solicitud

Elemento Descripción Tipo de datos
CriterionActions Lista de hasta 5000 objetos AdGroupCriterionAction que contienen cada uno un elemento Action y un biddableAdGroupCriterion o NegativeAdGroupCriterion.

Todas las acciones de criterio de grupo de anuncios deben ser para el mismo grupo de anuncios. Para obtener más información, incluidas las reglas de validación, consulte Creación de una campaña de Microsoft Shopping con el Servicio de administración de campañas.
Matriz AdGroupCriterionAction

Elementos de encabezado de solicitud

Elemento Descripción Tipo de datos
AuthenticationToken Token de acceso de OAuth que representa las credenciales de un usuario que tiene permisos para cuentas de Microsoft Advertising.

Para obtener más información, consulte Autenticación con OAuth.
string
CustomerAccountId Identificador de la cuenta de anuncio que posee o está asociada a las entidades de la solicitud. Este elemento de encabezado debe tener el mismo valor que el elemento de cuerpo AccountId cuando ambos son necesarios. Este elemento es necesario para la mayoría de las operaciones de servicio y, como procedimiento recomendado, siempre debe establecerlo.

Para obtener más información, consulte Obtención de su cuenta e identificadores de cliente.
string
Customerid Identificador de la cuenta de administrador (cliente) desde la que el usuario accede o funciona. Un usuario puede tener acceso a varias cuentas de administrador. Este elemento es necesario para la mayoría de las operaciones de servicio y, como procedimiento recomendado, siempre debe establecerlo.

Para obtener más información, consulte Obtención de su cuenta e identificadores de cliente.
string
DeveloperToken Token de desarrollador que se usa para acceder a Bing Ads API.

Para obtener más información, consulte Obtención de un token de desarrollador.
string
Password Este elemento está reservado para uso interno y se quitará de una versión futura de la API. Debe usar el elemento AuthenticationToken para establecer las credenciales de usuario. string
UserName Este elemento está reservado para uso interno y se quitará de una versión futura de la API. Debe usar el elemento AuthenticationToken para establecer las credenciales de usuario. string

Elementos de respuesta

El objeto ApplyProductPartitionActionsResponse define los elementos body y header de la respuesta de la operación de servicio. Los elementos se devuelven en el mismo orden que se muestra en soap de respuesta.

Elementos del cuerpo de la respuesta

Elemento Descripción Tipo de datos
AdGroupCriterionIds Lista de identificadores que identifican el criterio al que se aplicó la acción. La lista de identificadores corresponde directamente a la lista de criterios de la solicitud.

Si se produce un error en alguna acción de criterio, se producirá un error en todas las acciones de criterio restantes y todos los elementos de esta lista serán null.
matriz larga
PartialErrors Matriz de objetos BatchError que contienen detalles de los elementos de solicitud que no se han realizado correctamente.

La lista de errores no se corresponde directamente con la lista de elementos de la solicitud. La lista puede estar vacía si no hay errores o puede incluir uno o varios objetos de error correspondientes a cada elemento de lista incorrecto en la solicitud.

Para el criterio que produjo un error debido a un error del usuario, se devolverá un código de error accionable.

Si se produce un error en alguna acción de criterio, se producirá un error en todas las acciones de criterio restantes y ninguno de los elementos de esta lista será null. Para un criterio que podría haberse realizado correctamente de otro modo, se devolverá un error genérico que explica que se produjo un error en una entidad relacionada.
Matriz BatchError

Elementos de encabezado de respuesta

Elemento Descripción Tipo de datos
Seguimiento del Id. Identificador de la entrada de registro que contiene los detalles de la llamada API. string

Solicitud de SOAP

Esta plantilla se generó mediante una herramienta para mostrar el orden del cuerpo y los elementos de encabezado de la solicitud SOAP. Para ver los tipos admitidos que puede usar con esta operación de servicio, consulte la referencia de elementos de cuerpo de solicitud anterior.

<s:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header xmlns="https://bingads.microsoft.com/CampaignManagement/v13">
    <Action mustUnderstand="1">ApplyProductPartitionActions</Action>
    <AuthenticationToken i:nil="false">ValueHere</AuthenticationToken>
    <CustomerAccountId i:nil="false">ValueHere</CustomerAccountId>
    <CustomerId i:nil="false">ValueHere</CustomerId>
    <DeveloperToken i:nil="false">ValueHere</DeveloperToken>
  </s:Header>
  <s:Body>
    <ApplyProductPartitionActionsRequest xmlns="https://bingads.microsoft.com/CampaignManagement/v13">
      <CriterionActions i:nil="false">
        <AdGroupCriterionAction>
          <Action>ValueHere</Action>
          <AdGroupCriterion i:nil="false" i:type="-- derived type specified here with the appropriate prefix --">
            <AdGroupId>ValueHere</AdGroupId>
            <Criterion i:nil="false" i:type="-- derived type specified here with the appropriate prefix --">
              <Type i:nil="false">ValueHere</Type>
              <!--These fields are applicable if the derived type attribute is set to ProductPartition-->
              <Condition i:nil="false">
                <Attribute i:nil="false">ValueHere</Attribute>
                <Operand i:nil="false">ValueHere</Operand>
                <Operator i:nil="false">ValueHere</Operator>
              </Condition>
              <ParentCriterionId i:nil="false">ValueHere</ParentCriterionId>
              <PartitionType>ValueHere</PartitionType>
              <!--These fields are applicable if the derived type attribute is set to HotelGroup-->
              <Listing i:nil="false">
                <Attribute i:nil="false">ValueHere</Attribute>
                <Operand i:nil="false">ValueHere</Operand>
              </Listing>
              <ListingType>ValueHere</ListingType>
              <ParentCriterionId i:nil="false">ValueHere</ParentCriterionId>
              <!--These fields are applicable if the derived type attribute is set to HotelAdvanceBookingWindowCriterion-->
              <MaxDays i:nil="false">ValueHere</MaxDays>
              <MinDays i:nil="false">ValueHere</MinDays>
              <!--These fields are applicable if the derived type attribute is set to HotelCheckInDateCriterion-->
              <EndDate i:nil="false">ValueHere</EndDate>
              <StartDate i:nil="false">ValueHere</StartDate>
              <!--This field is applicable if the derived type attribute is set to HotelCheckInDayCriterion-->
              <CheckInDay i:nil="false">ValueHere</CheckInDay>
              <!--This field is applicable if the derived type attribute is set to HotelDateSelectionTypeCriterion-->
              <HotelDateSelectionType i:nil="false">ValueHere</HotelDateSelectionType>
              <!--These fields are applicable if the derived type attribute is set to HotelLengthOfStayCriterion-->
              <MaxNights i:nil="false">ValueHere</MaxNights>
              <MinNights i:nil="false">ValueHere</MinNights>
              <!--This field is applicable if the derived type attribute is set to ProductScope-->
              <Conditions i:nil="false">
                <ProductCondition>
                  <Attribute i:nil="false">ValueHere</Attribute>
                  <Operand i:nil="false">ValueHere</Operand>
                  <Operator i:nil="false">ValueHere</Operator>
                </ProductCondition>
              </Conditions>
              <!--This field is applicable if the derived type attribute is set to Webpage-->
              <Parameter i:nil="false">
                <Conditions i:nil="false">
                  <WebpageCondition>
                    <Argument i:nil="false">ValueHere</Argument>
                    <Operand>ValueHere</Operand>
                    <Operator i:nil="false">ValueHere</Operator>
                  </WebpageCondition>
                </Conditions>
                <CriterionName i:nil="false">ValueHere</CriterionName>
              </Parameter>
              <!--This field is applicable if the derived type attribute is set to AgeCriterion-->
              <AgeRange i:nil="false">ValueHere</AgeRange>
              <!--These fields are applicable if the derived type attribute is set to DeviceCriterion-->
              <DeviceName i:nil="false">ValueHere</DeviceName>
              <OSName i:nil="false">ValueHere</OSName>
              <!--These fields are applicable if the derived type attribute is set to DayTimeCriterion-->
              <Day i:nil="false">ValueHere</Day>
              <FromHour i:nil="false">ValueHere</FromHour>
              <FromMinute i:nil="false">ValueHere</FromMinute>
              <ToHour i:nil="false">ValueHere</ToHour>
              <ToMinute i:nil="false">ValueHere</ToMinute>
              <!--This field is applicable if the derived type attribute is set to GenderCriterion-->
              <GenderType i:nil="false">ValueHere</GenderType>
              <!--These fields are applicable if the derived type attribute is set to RadiusCriterion-->
              <LatitudeDegrees i:nil="false">ValueHere</LatitudeDegrees>
              <LongitudeDegrees i:nil="false">ValueHere</LongitudeDegrees>
              <Name i:nil="false">ValueHere</Name>
              <Radius i:nil="false">ValueHere</Radius>
              <RadiusUnit i:nil="false">ValueHere</RadiusUnit>
              <!--These fields are applicable if the derived type attribute is set to LocationCriterion-->
              <DisplayName i:nil="false">ValueHere</DisplayName>
              <EnclosedLocationIds i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                <a1:long>ValueHere</a1:long>
              </EnclosedLocationIds>
              <LocationId i:nil="false">ValueHere</LocationId>
              <LocationType i:nil="false">ValueHere</LocationType>
              <!--This field is applicable if the derived type attribute is set to LocationIntentCriterion-->
              <IntentOption i:nil="false">ValueHere</IntentOption>
              <!--These fields are applicable if the derived type attribute is set to AudienceCriterion-->
              <AudienceId i:nil="false">ValueHere</AudienceId>
              <AudienceType i:nil="false">ValueHere</AudienceType>
              <!--These fields are applicable if the derived type attribute is set to ProfileCriterion-->
              <ProfileId>ValueHere</ProfileId>
              <ProfileType>ValueHere</ProfileType>
              <!--This field is applicable if the derived type attribute is set to StoreCriterion-->
              <StoreId i:nil="false">ValueHere</StoreId>
              <!--This field is applicable if the derived type attribute is set to DealCriterion-->
              <DealId>ValueHere</DealId>
              <!--This field is applicable if the derived type attribute is set to GenreCriterion-->
              <GenreId>ValueHere</GenreId>
              <!--These fields are applicable if the derived type attribute is set to PlacementCriterion-->
              <PlacementId>ValueHere</PlacementId>
              <PlacementName i:nil="false">ValueHere</PlacementName>
            </Criterion>
            <Id i:nil="false">ValueHere</Id>
            <Status i:nil="false">ValueHere</Status>
            <Type i:nil="false">ValueHere</Type>
            <!--These fields are applicable if the derived type attribute is set to BiddableAdGroupCriterion-->
            <CriterionBid i:nil="false" i:type="-- derived type specified here with the appropriate prefix --">
              <Type i:nil="false">ValueHere</Type>
              <!--This field is applicable if the derived type attribute is set to RateBid-->
              <RateAmount i:nil="false">
                <Amount i:nil="false">ValueHere</Amount>
              </RateAmount>
              <!--This field is applicable if the derived type attribute is set to FixedBid-->
              <Amount>ValueHere</Amount>
              <!--This field is applicable if the derived type attribute is set to BidMultiplier-->
              <Multiplier>ValueHere</Multiplier>
            </CriterionBid>
            <DestinationUrl i:nil="false">ValueHere</DestinationUrl>
            <EditorialStatus i:nil="false">ValueHere</EditorialStatus>
            <FinalAppUrls i:nil="false">
              <AppUrl>
                <OsType i:nil="false">ValueHere</OsType>
                <Url i:nil="false">ValueHere</Url>
              </AppUrl>
            </FinalAppUrls>
            <FinalMobileUrls i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <a1:string>ValueHere</a1:string>
            </FinalMobileUrls>
            <FinalUrlSuffix i:nil="false">ValueHere</FinalUrlSuffix>
            <FinalUrls i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <a1:string>ValueHere</a1:string>
            </FinalUrls>
            <TrackingUrlTemplate i:nil="false">ValueHere</TrackingUrlTemplate>
            <UrlCustomParameters i:nil="false">
              <Parameters i:nil="false">
                <CustomParameter>
                  <Key i:nil="false">ValueHere</Key>
                  <Value i:nil="false">ValueHere</Value>
                </CustomParameter>
              </Parameters>
            </UrlCustomParameters>
            <CriterionCashback i:nil="false" i:type="-- derived type specified here with the appropriate prefix --">
              <Type i:nil="false">ValueHere</Type>
              <!--This field is applicable if the derived type attribute is set to CashbackAdjustment-->
              <CashbackPercent i:nil="false">ValueHere</CashbackPercent>
            </CriterionCashback>
            <!--No additional fields are applicable if the derived type attribute is set to NegativeAdGroupCriterion-->
          </AdGroupCriterion>
        </AdGroupCriterionAction>
      </CriterionActions>
    </ApplyProductPartitionActionsRequest>
  </s:Body>
</s:Envelope>

SOAP de respuesta

Esta plantilla se generó mediante una herramienta para mostrar el orden de los elementos body y header para la respuesta SOAP.

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header xmlns="https://bingads.microsoft.com/CampaignManagement/v13">
    <TrackingId d3p1:nil="false" xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance">ValueHere</TrackingId>
  </s:Header>
  <s:Body>
    <ApplyProductPartitionActionsResponse xmlns="https://bingads.microsoft.com/CampaignManagement/v13">
      <AdGroupCriterionIds d4p1:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">
        <a1:long>ValueHere</a1:long>
      </AdGroupCriterionIds>
      <PartialErrors d4p1:nil="false" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">
        <BatchError d4p1:type="-- derived type specified here with the appropriate prefix --">
          <Code>ValueHere</Code>
          <Details d4p1:nil="false">ValueHere</Details>
          <ErrorCode d4p1:nil="false">ValueHere</ErrorCode>
          <FieldPath d4p1:nil="false">ValueHere</FieldPath>
          <ForwardCompatibilityMap xmlns:e70="http://schemas.datacontract.org/2004/07/System.Collections.Generic" d4p1:nil="false">
            <e70:KeyValuePairOfstringstring>
              <e70:key d4p1:nil="false">ValueHere</e70:key>
              <e70:value d4p1:nil="false">ValueHere</e70:value>
            </e70:KeyValuePairOfstringstring>
          </ForwardCompatibilityMap>
          <Index>ValueHere</Index>
          <Message d4p1:nil="false">ValueHere</Message>
          <Type d4p1:nil="false">ValueHere</Type>
          <!--These fields are applicable if the derived type attribute is set to EditorialError-->
          <Appealable d4p1:nil="false">ValueHere</Appealable>
          <DisapprovedText d4p1:nil="false">ValueHere</DisapprovedText>
          <Location d4p1:nil="false">ValueHere</Location>
          <PublisherCountry d4p1:nil="false">ValueHere</PublisherCountry>
          <ReasonCode>ValueHere</ReasonCode>
        </BatchError>
      </PartialErrors>
    </ApplyProductPartitionActionsResponse>
  </s:Body>
</s:Envelope>

Sintaxis de código

La sintaxis de ejemplo se puede usar con los SDK de Bing Ads. Consulte Ejemplos de código de API de Bing Ads para obtener más ejemplos.

public async Task<ApplyProductPartitionActionsResponse> ApplyProductPartitionActionsAsync(
	IList<AdGroupCriterionAction> criterionActions)
{
	var request = new ApplyProductPartitionActionsRequest
	{
		CriterionActions = criterionActions
	};

	return (await CampaignManagementService.CallAsync((s, r) => s.ApplyProductPartitionActionsAsync(r), request));
}
static ApplyProductPartitionActionsResponse applyProductPartitionActions(
	ArrayOfAdGroupCriterionAction criterionActions) throws RemoteException, Exception
{
	ApplyProductPartitionActionsRequest request = new ApplyProductPartitionActionsRequest();

	request.setCriterionActions(criterionActions);

	return CampaignManagementService.getService().applyProductPartitionActions(request);
}
static function ApplyProductPartitionActions(
	$criterionActions)
{

	$GLOBALS['Proxy'] = $GLOBALS['CampaignManagementProxy'];

	$request = new ApplyProductPartitionActionsRequest();

	$request->CriterionActions = $criterionActions;

	return $GLOBALS['CampaignManagementProxy']->GetService()->ApplyProductPartitionActions($request);
}
response=campaignmanagement_service.ApplyProductPartitionActions(
	CriterionActions=CriterionActions)

Requisitos

Servicio: CampaignManagementService.svc v13
Nombres: https://bingads.microsoft.com/CampaignManagement/v13