We've prepared Microsoft adCenter API Version 5 (V5) samples written in PHP for a future release to MSDN. In the interim, we're providing the PHP sample below.
This example assumes that you have already determined your account ID; you must substitute your account ID for the
$accountId variable that is assigned
489 in the following code.
When you call your code, pass in the API credentials as command-line parameters. In the code,
$argv represents the name of the PHP file and your API credentials.
$argv is the name of the PHP file;
$argv is your user name;
$argv is your password;
$argv is your developer token. For example, if your PHP script is named HelloAdCenterV5.PHP, execute the script as follows.
php HelloAdCenterV5.php your_user_name your_password your_developer_token
Substitute your API credentials for the placeholders your_user_name, your_password, and your_developer_token.
Lead Programming Writer
Microsoft adCenter API
Get Campaigns for an Account
// This program requires the following PHP extensions:
// To ensure that a cached WSDL is not being used,
// disable WSDL caching.
$accountId = 489; //Application-specific value.
// Use either the sandbox or production URI.
// This example is for the sandbox URI.
// The following commented-out line contains the production URI.
//$URI = "https://adcenterapi.microsoft.com/api/advertiser/v5";
// The adCenter API namespace.
$xmlns = "https://adcenter.microsoft.com/api/advertiser/v5";
// The proxy for the Campaign Management Web service.
$URI . "CampaignManagement/CampaignManagementService.svc?wsdl";
// The name of the service operation that will be called.
$action = "GetCampaignsByAccountId";
// The user name, password, and developer token are
// expected to be passed in as command-line
// $argv is the PHP file name.
// $argv is the user name.
// $argv is the password.
// $argv is the developer token.
if ($argc !=4)
"php file.php username password devtoken\n");
$username = $argv;
$password = $argv;
$developerTokenValue = $argv;
// Assign the credentials to the classes
// that are used by the SOAP headers.
// Create the SOAP headers.
// Create the SOAP input header array.
$inputHeaders = array
// Create the SOAP client.
$opts = array('trace' => true);
$client = new SOAPClient($campaignProxy, $opts);
// Specify the parameters for the SOAP call.
$params = array
// Execute the SOAP call.
$result = $client->__soapCall
array( $action.'Request' => $params ),
print "$action succeeded with Tracking ID "
// Retrieve the campaigns.
$campaigns = array();
// An array of campaigns has been returned.
$obj = $campaigns->Campaign;
// A single campaign has been returned.
$obj = $campaigns;
print "The following campaigns were returned by $action.\n";
foreach ($obj as $campaign)
print "Campaign Id: " .
" Name: " .
catch (Exception $e)
print "$action failed.\n";
// Display the fault code and the fault string.
print $e->faultcode . " " . $e->faultstring . ".\n";
print "TrackingID: " .
$e->detail->ApiFaultDetail->TrackingId . ".\n";
// Process operation errors.
// An array of operation errors has been returned.
// A single operation error has been returned.
$obj = $e->detail->ApiFaultDetail->OperationErrors;
foreach ($obj as $operationError)
print "Operation error " .
$operationError->Code . " encountered. ";
print $operationError->Message . "\n";
// Definitions for classes that are used by the SOAP headers.