The following Java example shows how to create campaigns by using the Campaign Management Web service. This example assumes that you have already determined which account ID will be used for the campaigns; you must substitute your account ID for the accountID variable that is assigned 489 in the following code.
// This example assumes that you are using Axis 1.4 and
// the Xerxes parser. Additionally, it requires
// pre-compiling the proxy classes by using wsdl2java.
// If you are using a different environment, update it as needed.
// Application-specific name of package.
// If you place this code in a package, invoke the code
// at the command line by typing
// java java_adCenter.MyCreateCampaigns
// along with the parameters used for the credentials and developer token.
// If you choose to not place this code in a package, invoke the code
// at the command line by typing
// java MyCreateCampaigns
// along with the parameters used for the credentials and developer token.
package java_adCenter;
import java.io.*;
import java.util.*;
import java.net.URL;
import com.microsoft.adapi.*;
import com.microsoft.adcenter.v6.*;
public class MyCreateCampaigns
{
public static void main(String[] args)
{
long accountId = 489; // Application-specific value.
// The Microsoft adCenter API namespace,
// which is used in the SOAP header.
String namespace =
"https://adcenter.microsoft.com/v6";
// This example URL is for the sandbox environment.
// Update the URL as needed when using the production environment.
String url = "https://sandboxapi.adcenter.microsoft.com/Api/Advertiser/v6/CampaignManagement/CampaignManagementService.svc?wsdl";
// The following is the production environment URL.
// String url = "https://adcenterapi.microsoft.com/Api/Advertiser/v6/CampaignManagement/CampaignManagementService.svc?wsdl";
ICampaignManagementService campaignManagement = null;
CampaignManagementServiceLocator campaignServiceLocator = null;
BasicHttpBinding_ICampaignManagementServiceStub stub = null;
AddCampaignsRequest addCampaignsRequest = null;
AddCampaignsResponse addCampaignsResponse = null;
Campaign[] campaigns = null;
try
{
if (args.length != 3)
{
// This application expects the user name, password, and
// developer token to be passed in as command-line arguments.
System.out.println("Correct usage:");
System.out.print("java MyCreateCampaigns ");
System.out.println("user_name password developertoken");
System.exit(-1);
}
campaignServiceLocator = new
CampaignManagementServiceLocator();
campaignServiceLocator.setBasicHttpBinding_ICampaignManagementServiceEndpointAddress(url);
campaignManagement =
campaignServiceLocator.getBasicHttpBinding_ICampaignManagementService();
stub = (BasicHttpBinding_ICampaignManagementServiceStub)
campaignManagement;
// Assign values for the credentials and the developer token.
// args[0] is the user name.
// args[1] is the password.
// args[2] is the developer token.
// The application token is reserved for future use and
// does not need to be assigned a value.
stub.setHeader(namespace,
"ApplicationToken", "");
stub.setHeader(namespace,
"DeveloperToken", args[2]);
stub.setHeader(namespace,
"UserName", args[0]);
stub.setHeader(namespace,
"Password", args[1]);
stub.setHeader(namespace,
"CustomerAccountId", accountId);
// This example creates two campaigns.
campaigns = new Campaign[2];
campaigns[0] = new Campaign();
campaigns[1] = new Campaign();
// Create values for the first campaign.
campaigns[0].setName("Winter clothing");
campaigns[0].setDescription("Clothing products for winter");
campaigns[0].setBudgetType(
BudgetLimitType.MonthlyBudgetSpendUntilDepleted);
campaigns[0].setMonthlyBudget(5000.00);
campaigns[0].setDailyBudget(null);
campaigns[0].setTimeZone("PacificTimeUSCanadaTijuana");
campaigns[0].setDaylightSaving(true);
campaigns[0].setConversionTrackingEnabled(false);
campaigns[0].setConversionTrackingScript(null);
campaigns[0].setNegativeKeywords(null);
campaigns[0].setStatus(null);
// Create values for the second campaign.
campaigns[1].setName("Winter athletic gear");
campaigns[1].setDescription("Athletic gear for winter");
campaigns[1].setBudgetType(
BudgetLimitType.MonthlyBudgetSpendUntilDepleted);
campaigns[1].setMonthlyBudget(5000.00);
campaigns[1].setDailyBudget(null);
campaigns[1].setTimeZone("PacificTimeUSCanadaTijuana");
campaigns[1].setDaylightSaving(true);
campaigns[1].setConversionTrackingEnabled(false);
campaigns[1].setConversionTrackingScript(null);
campaigns[1].setNegativeKeywords(null);
campaigns[1].setStatus(null);
// Create the service operation request object, and then assign values.
addCampaignsRequest = new AddCampaignsRequest();
addCampaignsRequest.setAccountId(accountId);
addCampaignsRequest.setCampaigns(campaigns);
// Make the call to add the campaigns.
System.out.println(
"Calling CampaignManagement.AddCampaigns");
addCampaignsResponse =
campaignManagement.addCampaigns(addCampaignsRequest);
// Display the TrackingId that was returned
// in the response header.
System.out.println("Successful AddCampaigns call.");
System.out.println(
"TrackingId output from response header:");
System.out.println(
stub.getResponseHeader
(
namespace,
"TrackingId")
);
// Insert a blank line to separate the text that follows.
System.out.println();
// Display the campaign IDs for the campaigns that were created.
for (int i = 0; i < addCampaignsResponse.getCampaignIds().length; i++)
{
System.out.print(
String.format("Campaign named %s ",
campaigns[i].getName()));
System.out.print("was created with ");
System.out.println(
String.format("campaign ID %s.",
addCampaignsResponse.getCampaignIds()[i]));
}
}
// Exception handling.
catch (ApiFaultDetail fault)
{
System.out.println("ApiFaultDetail exception encountered.");
System.out.println(String.format("Tracking ID: %s",
fault.getTrackingId()));
// Display service operation error information.
for (int i = 0; i < fault.getOperationErrors().length; i++)
{
System.out.println("Operation error encountered:");
System.out.println(String.format("\tMessage: %s",
fault.getOperationErrors()[i].getMessage()));
System.out.println(String.format("\tDetails: %s",
fault.getOperationErrors()[i].getDetails()));
System.out.println(String.format("\tErrorCode: %s",
fault.getOperationErrors()[i].getErrorCode()));
System.out.println(String.format("\tCode: %s",
fault.getOperationErrors()[i].getCode()));
}
// Display batch error information.
for (int i = 0; i < fault.getBatchErrors().length; i++)
{
System.out.println(String.format("Batch error encountered for array index %s.",
fault.getBatchErrors()[i].getIndex()));
System.out.println(String.format("\tMessage: %s",
fault.getBatchErrors()[i].getMessage()));
System.out.println(String.format("\tDetails: %s",
fault.getBatchErrors()[i].getDetails()));
System.out.println(String.format("\tErrorCode: %s",
fault.getBatchErrors()[i].getErrorCode()));
System.out.println(String.format("\tCode: %s",
fault.getBatchErrors()[i].getCode()));
}
// Exit the application or take other action.
System.exit(-1);
}
catch (AdApiFaultDetail fault)
{
System.out.println("AdApiFaultDetail exception encountered.");
System.out.println(String.format("Tracking ID: %s",
fault.getTrackingId()));
// Display API error information.
for (int i = 0; i < fault.getErrors().length; i++)
{
System.out.println("Error encountered:");
System.out.println(String.format("\tMessage: %s",
fault.getErrors()[i].getMessage()));
System.out.println(String.format("\tDetail: %s",
fault.getErrors()[i].getDetail()));
System.out.println(String.format("\tErrorCode: %s",
fault.getErrors()[i].getErrorCode()));
System.out.println(String.format("\tCode: %s",
fault.getErrors()[i].getCode()));
}
// Exit the application or take other action.
System.exit(-1);
}
// Capture exceptions on the client that are unrelated to
// the adCenter API.
catch (Exception e)
{
System.out.print("Error encountered: ");
e.printStackTrace();
// Exit the application or take other action.
System.exit(-1);
}
}
}
Each successfully created campaign is assigned a campaign ID by adCenter. The campaign ID is stored in the Id element of the Campaign data object.
When you have received the campaign IDs, you should store them for future use. For information about why storing the IDs is recommended, see Creating an Efficient Microsoft adCenter Application. If you don't store the campaign IDs, you can retrieve them by calling the GetCampaignsByAccountId service operation. You can retrieve the properties associated with a campaign by calling the GetCampaignsByIds service operation. Calling GetCampaignsByAccountId or GetCampaignsByIds reduces your API quota. For more information, see Quotas in Microsoft adCenter.
Now that you have successfully created your campaigns, the next step is to create ad groups. For an example, see Create Ad Groups in Java.
Concepts
Create Ad Groups in Java