Skip to content
This repository has been archived by the owner on Apr 25, 2024. It is now read-only.

more than one location criteria? #581

Closed
aleinv18 opened this issue May 2, 2019 — with docs.microsoft.com · 4 comments
Closed

more than one location criteria? #581

aleinv18 opened this issue May 2, 2019 — with docs.microsoft.com · 4 comments

Comments

Copy link

aleinv18 commented May 2, 2019

How can set more than one location in an only request call?


Document Details

Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

@eric-urban
Copy link
Collaborator

@aleinv18 you can add up to 100 LocationCriterion per AddCampaignCriterions or AddAdGroupCriterions request. The maximum number of combined location and negative location criterions that you can specify per campaign or ad group is 10,000. Let's take AddCampaignCriterions as an example. You would create up to 100 BiddableCampaignCriterion objects, and each would contain a LocationCriterion. If you want to exclude any locations then use NegativeCampaignCriterion (instead of BiddableCampaignCriterion) that contains a LocationCriterion.

Please let me know if you have any follow up questions.

Copy link
Author

aleinv18 commented May 3, 2019

hi @eric-urban,
thank you for your reply.
Ok, but at code level where i have to insert the array of location?
I would send an unique SOAP request with all locations included

Thank you

@eric-urban
Copy link
Collaborator

@aleinv18 yes the result can be one SOAP request message. You can append BiddableCampaignCriterion objects to the array of campaign criteria. Here is a Python sample:

campaign_criterions=campaign_service.factory.create('ArrayOfCampaignCriterion')

us_campaign_location_criterion=set_elements_to_none(campaign_service.factory.create('BiddableCampaignCriterion'))
us_campaign_location_criterion.Type='BiddableCampaignCriterion'
us_campaign_location_criterion.CampaignId=campaign_ids['long'][0]
us_bid_multiplier=set_elements_to_none(campaign_service.factory.create('BidMultiplier'))
us_bid_multiplier.Type='BidMultiplier'
us_bid_multiplier.Multiplier=0
us_campaign_location_criterion.CriterionBid=us_bid_multiplier                
us_location_criterion=set_elements_to_none(campaign_service.factory.create('LocationCriterion'))
us_location_criterion.Type='LocationCriterion'
# United States
us_location_criterion.LocationId=190
us_campaign_location_criterion.Criterion=us_location_criterion
campaign_criterions.CampaignCriterion.append(us_campaign_location_criterion)

canada_campaign_location_criterion=set_elements_to_none(campaign_service.factory.create('BiddableCampaignCriterion'))
canada_campaign_location_criterion.Type='BiddableCampaignCriterion'
canada_campaign_location_criterion.CampaignId=campaign_ids['long'][0]
canada_bid_multiplier=set_elements_to_none(campaign_service.factory.create('BidMultiplier'))
canada_bid_multiplier.Type='BidMultiplier'
canada_bid_multiplier.Multiplier=0
canada_campaign_location_criterion.CriterionBid=canada_bid_multiplier                
canada_location_criterion=set_elements_to_none(campaign_service.factory.create('LocationCriterion'))
canada_location_criterion.Type='LocationCriterion'
# Canada
canada_location_criterion.LocationId=32
canada_campaign_location_criterion.Criterion=canada_location_criterion
campaign_criterions.CampaignCriterion.append(canada_campaign_location_criterion)

output_status_message("-----\nAddCampaignCriterions:")
add_campaign_criterions_response = campaign_service.AddCampaignCriterions(
    CampaignCriterions=campaign_criterions,
    CriterionType='Targets'
)

Here is the resulting SOAP request:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="https://bingads.microsoft.com/CampaignManagement/v13" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://bingads.microsoft.com/CampaignManagement/v13" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header>
      <tns:AuthenticationToken>YourAccessTokenGoesHere</tns:AuthenticationToken>
      <tns:CustomerAccountId>YourAccountIdGoesHere</tns:CustomerAccountId>
      <tns:CustomerId>YourCustomerIdGoesHere</tns:CustomerId>
      <tns:DeveloperToken>YourDeveloperTokenGoesHere</tns:DeveloperToken>
   </SOAP-ENV:Header>
   <ns1:Body>
      <ns0:AddCampaignCriterionsRequest>
         <ns0:CampaignCriterions>
            <ns0:CampaignCriterion xsi:type="ns0:BiddableCampaignCriterion">
               <ns0:CampaignId>YourCampaignIdGoesHere</ns0:CampaignId>
               <ns0:Criterion xsi:type="ns0:LocationCriterion">
                  <ns0:Type>LocationCriterion</ns0:Type>
                  <ns0:LocationId>190</ns0:LocationId>
               </ns0:Criterion>
               <ns0:Type>BiddableCampaignCriterion</ns0:Type>
               <ns0:CriterionBid xsi:type="ns0:BidMultiplier">
                  <ns0:Type>BidMultiplier</ns0:Type>
                  <ns0:Multiplier>0</ns0:Multiplier>
               </ns0:CriterionBid>
            </ns0:CampaignCriterion>
            <ns0:CampaignCriterion xsi:type="ns0:BiddableCampaignCriterion">
               <ns0:CampaignId>YourCampaignIdGoesHere</ns0:CampaignId>
               <ns0:Criterion xsi:type="ns0:LocationCriterion">
                  <ns0:Type>LocationCriterion</ns0:Type>
                  <ns0:LocationId>32</ns0:LocationId>
               </ns0:Criterion>
               <ns0:Type>BiddableCampaignCriterion</ns0:Type>
               <ns0:CriterionBid xsi:type="ns0:BidMultiplier">
                  <ns0:Type>BidMultiplier</ns0:Type>
                  <ns0:Multiplier>0</ns0:Multiplier>
               </ns0:CriterionBid>
            </ns0:CampaignCriterion>
         </ns0:CampaignCriterions>
         <ns0:CriterionType>Targets</ns0:CriterionType>
      </ns0:AddCampaignCriterionsRequest>
   </ns1:Body>
</SOAP-ENV:Envelope>

I hope this helps!

Copy link
Author

aleinv18 commented May 3, 2019

u are very kind. Thank you so much!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants