Ad groups are submitted for approval by calling the SubmitAdGroupForApproval service operation. The approval process includes several automated checks for relevance and adherence to Editorial Guidelines. Generally, an ad is approved or disapproved immediately after being submitted. In some cases, however, the process might take up to five business days.
The following Java example shows how to submit an ad group for approval by using SubmitAdGroupForApproval. This example assumes that you have already created your ads and keywords. For examples about creating ads and keywords, see Create Ads in Java and Create Keywords in Java, respectively. This example also assumes that you have already determined which ad group ID will be submitted for approval; you must substitute your ad group ID for the adGroupID variable that is assigned 501086322 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.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);
}
}
}
Concepts
Create Ads in Java
Create Keywords in Java