// 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.MySubmitAdGroupForApproval
// 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 MySubmitAdGroupForApproval
// 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 MySubmitAdGroupForApproval
{
public static void main(String[] args)
{
// Application-specific values.
long accountId = 489;
long adGroupId = 50108632;
// 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;
SubmitAdGroupForApprovalRequest submitAdGroupRequest = null;
SubmitAdGroupForApprovalResponse submitAdGroupResponse = 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 MySubmitAdGroupForApproval ");
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);
// Create the service operation request object, and then assign values.
submitAdGroupRequest = new SubmitAdGroupForApprovalRequest();
submitAdGroupRequest.setAdGroupId(adGroupId);
// Make the call to add the ads.
System.out.println(
"Calling CampaignManagement.SubmitAdGroupForApproval");
submitAdGroupResponse =
campaignManagement.submitAdGroupForApproval(submitAdGroupRequest);
// Display the TrackingId that was returned
// in the response header.
System.out.println("Successful SubmitAdGroupForApproval call.");
System.out.println(
"TrackingId output from response header:");
System.out.println(
stub.getResponseHeader
(
namespace,
"TrackingId")
);
}
// 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);
}
}
}