API Example Create a Publisher Account
From InClickAdServer
Creating a Publisher Account
This API Service Request will create a new Publisher account.
The Code Example
<?php require_once "../globals/globals.php"; require_once (INCLICK_CORE_DIR . "/external/classes/users/IMG_UserManagerClient.php"); require_once (INCLICK_CORE_DIR . "/external/classes/users/IMG_PublisherUser.php"); //THE BASE URL OF YOUR AD SERVER DEPLOYMENT $base_url = INCLICK_WEB_URL; //THE SERVICE KEY TO ACCESS THE API $service_key = "YOUR_API_SERVICE_KEY"; //INSTANTIATE THE API CLIENT $user_manager = new IMG_UserManagerClient($base_url, $service_key); $publisher_user = new IMG_PublisherUser(); //SET THE PUBLISHER DATA $publisher_user->setFirstName('First'); $publisher_user->setLastName('Last'); $publisher_user->setTitle('Title of User'); $publisher_user->setCompany('inMotion Group'); $publisher_user->setAddress1('123 This Street'); $publisher_user->setAddress2('Suite 100'); $publisher_user->setCity('Troy'); $publisher_user->setState('MI'); $publisher_user->setPostalCode('48083'); $publisher_user->setCountry('USA'); $publisher_user->setPhoneNumber('248-616-1943'); $publisher_user->setUsername('publisher_name'); $publisher_user->setPassword('testing'); $publisher_user->setEmailAddress('publisher_email@inmotiongroup.com'); $publisher_user->setCommissionRate($action_vars["network_base_commission"]/100); $publisher_user->setPaymentMethod('check'); $publisher_user->setWebsiteDescription('This is information about my site'); $publisher_user->setWebsiteURL('http://www.inclick.net'); $result = $user_manager->createPublisher($publisher_user,false); $user_manager_result = $result->getReturnValue(); if($result->getErrorCode()) { $manager_result = $result->getReturnValue(); $error_array = $manager_result->getFieldValidationErrors(); foreach ($error_array as $key => $value) { } } else { } ?>
Breaking Down the Code
require "../globals/globals.php";
This require references the local inClick Ad Server deployment configuration files allowing your code to utilize the pre-packaged API Objects as well as the bundled PHPOlait services.
require_once (INCLICK_CORE_DIR . "/external/classes/users/IMG_UserManagerClient.php"); require_once (INCLICK_CORE_DIR . "/external/classes/users/IMG_PublisherUser.php");
These requires (includes) contain the API Objects and Classes needed for this API Service Request.
$base_url = INCLICK_WEB_URL; $service_key = "YOUR_API_SERVICE_KEY";
The $base_url is the URL to your inClick Ad Server deployment, the ad server root URL. For local host API usage, the constant of INCLICK_WEB_URL is defined in the globals.php file referenced earlier. Remote deployments, deployments where the ad server and API Request Location are not on the same server, would change this to the fully qualified URL to the ad server root directory.
The $service_key is one of the the api_service_keys values you created for your ad server. (more information)
$user_manager = new IMG_UserManagerClient($base_url, $service_key); $publisher_user = new IMG_PublisherUser();
This is where we create an instance of the classes needed to create a new publisher.
$publisher_user->setFirstName('First'); $publisher_user->setLastName('Last'); $publisher_user->setTitle('Title of User'); $publisher_user->setCompany('inMotion Group'); $publisher_user->setAddress1('123 This Street'); $publisher_user->setAddress2('Suite 100'); $publisher_user->setCity('Troy'); $publisher_user->setState('MI'); $publisher_user->setPostalCode('48083'); $publisher_user->setCountry('USA'); $publisher_user->setPhoneNumber('248-616-1943'); $publisher_user->setUsername('publisher_name'); $publisher_user->setPassword('testing'); $publisher_user->setEmailAddress('publisher_email@inmotiongroup.com'); $publisher_user->setPaymentMethod('check'); $publisher_user->setWebsiteDescription('This is information about my site'); $publisher_user->setWebsiteURL('http://www.inclick.net');
Each $publisher_user->setXXXX corresponds to the data being stored. For example, $publisher_user->setFirstName is the first name of the account holder.
$publisher_user->setCommissionRate($action_vars["network_base_commission"]/100);
This line sets the starting commission rate for the publisher. The $publisher_user->setCommissionRate() object expects the value to be in its raw from. For example, a commission rate of 35% is entered as "0.35". In this example, we obtained the default commission rate from the inClick Ad Server deployments configuration file (the globals.php require). Since the configuration file uses a whole number, we divide it by 100 to get the decimal equivalent.
$result = $user_manager->createPublisher($publisher_user,false); $user_manager_result = $result->getReturnValue();
These lines send the data to the ad server, processing the new publisher account request. If a failure occurs, the error code and corresponding error message are returned as objects:
- $result->getErrorCode()
- $result->getErrorMessage()
On a successful retrieval, the object values can be found within the following object:
- $result->getReturnValue()
if($result->getErrorCode()) { $manager_result = $result->getReturnValue(); $error_array = $manager_result->getFieldValidationErrors(); foreach ($error_array as $key => $value) { echo "Error with Field \"$key\": $value<br />\n"; } echo "Error Code: " . $result->getErrorCode() . ": "; echo "" . $result->getErrorMessage() . "<br>"; } else { $user_manager_result = $result->getReturnValue(); echo "Successfully created account ID " . $user_manager_result->getUserID() . "!"; }
This section of code is provided to give you a visual confirmation of what occurred, or to let you know what error occurred.
