Typical usage is:

$statementBuilder = new StatementBuilder()
    ->Where("lastModifiedDateTime > :yesterday AND type = :type")
    ->OrderBy("name DESC")
    ->Limit(200)
    ->Offset(20)
    ->WithBindVariableValue("yesterday",
        date(DateTimeUtils::$DFP_DATE_TIME_STRING_FORMAT,
            strtotime('-1 day'))
    ->WithBindVariableValue("type", "Type")

$statement = $statementBuilder->ToStatement();
...
$statementBuilder->IncreaseOffsetBy(20);
$statement = $statementBuilder->ToStatement();
 public function syncDFPAPIplacement()
 {
     // Get the PlacementService.
     $placementService = $this->dfp_user->GetService('PlacementService', 'v201508');
     // Create a statement to select all placements.
     $statementBuilder = new StatementBuilder();
     $statementBuilder->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT);
     // Get placements by statement.
     $page = $placementService->getPlacementsByStatement($statementBuilder->ToStatement());
     // Display results.
     if (isset($page->results)) {
         foreach ($page->results as $placement) {
             $data[] = array($placement->id, $placement->name);
         }
     }
     $field = array('dp_id', 'dp_name');
     return $this->insert($this->table, $data, $field);
 }
 public function syncDFPAPIadvertiser()
 {
     $data = array();
     // Get the CompanyService.
     $companyService = $this->dfp_user->GetService('CompanyService', 'v201508');
     // Create a statement to select only companies that are advertisers.
     $statementBuilder = new StatementBuilder();
     $statementBuilder->Where('type = :type')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('type', 'ADVERTISER');
     // Get companies by statement.
     $page = $companyService->getCompaniesByStatement($statementBuilder->ToStatement());
     // Display results.
     if (isset($page->results)) {
         foreach ($page->results as $company) {
             $row = $this->getAdvertiserById($company->id);
             if (!isset($row[0])) {
                 $data[] = array($company->id, $company->name);
             }
         }
     }
     $field = array('dfp_adv_id', 'dfp_adv_name');
     return $this->insert($this->table, $data, $field, false);
 }
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201602/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the reconciliation report to retrieve line item reports for.
$reconciliationReportId = 'INSERT_RECONCILIATION_REPORT_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ReconciliationLineItemReportService.
    $reconciliationLineItemReportService = $user->GetService('ReconciliationLineItemReportService', 'v201602');
    // Create a statement to select reconciliation line item reports for DFP line
    // items.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('reconciliationReportId = :reconciliationReportId ' . 'AND lineItemId != :lineItemId')->OrderBy('lineItemId ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('reconciliationReportId', $reconciliationReportId)->WithBindVariableValue('lineItemId', 0);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get reconciliation line item reports by statement.
        $page = $reconciliationLineItemReportService->getReconciliationLineItemReportsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $reconciliationLineItemReport) {
                printf("%d) Reconciliation line item report with ID %d for line item ID " . "%d was found, with reconciliation source '%s' and " . "reconciled volume '%d'.\n", $i++, $reconciliationLineItemReport->id, $reconciliationLineItemReport->lineItemId, $reconciliationLineItemReport->reconciliationSource, $reconciliationLineItemReport->reconciledVolume);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
// DfpUser.php directly via require_once.
// $path = '/path/to/dfp_api_php_lib/src';
$path = dirname(__FILE__) . '/../../../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201502/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the InventoryService.
    $inventoryService = $user->GetService('InventoryService', 'v201502');
    // Create a statement to select all ad unit sizes.
    $statementBuilder = new StatementBuilder();
    // Get all ad unit sizes by statement.
    $adUnitSizes = $inventoryService->getAdUnitSizesByStatement($statementBuilder->ToStatement());
    // Display results.
    foreach ($adUnitSizes as $i => $adUnitSize) {
        printf("%d) Ad unit size of dimensions %s was found.\n", $i, $adUnitSize->fullDisplayString);
    }
    printf("Number of ad unit sizes found: %d\n", count($adUnitSizes));
} catch (OAuth2Exception $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (ValidationException $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (Exception $e) {
    printf("%s\n", $e->getMessage());
}
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201502/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the company to update.
$companyId = 'INSERT_COMPANY_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the CompanyService.
    $companyService = $user->GetService('CompanyService', 'v201502');
    // Create a statement to select a single company by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue('id', $companyId);
    // Get the company.
    $page = $companyService->getCompaniesByStatement($statementBuilder->ToStatement());
    $company = $page->results[0];
    // Update the comment.
    $company->comment = sprintf('%s - updated.', $company->comment);
    // Update the company on the server.
    $companies = $companyService->updateCompanies(array($company));
    foreach ($companies as $updatedCompany) {
        printf("Company with ID %d, name '%s', and comment '%s' was updated.\n", $updatedCompany->id, $updatedCompany->name, $updatedCompany->comment);
    }
} catch (OAuth2Exception $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (ValidationException $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201602/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the rate card ID to filter base rates on.
$rateCardId = 'INSERT_RATE_CARD_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the BaseRateService.
    $baseRateService = $user->GetService('BaseRateService', 'v201602');
    // Create a statement to select only base rates belonging to a rate card.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('rateCardId = :rateCardId')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('rateCardId', $rateCardId);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get base rates by statement.
        $page = $baseRateService->getBaseRatesByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $baseRate) {
                printf("%d) Base rate with ID %d, and type '%s', belonging to rate " . "card ID %d was found.\n", $i++, $baseRate->id, get_class($baseRate), $baseRate->rateCardId);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
Example #7
0
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201508/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the line item to deactivate LICAs for.
$lineItemId = 'INSERT_LINE_ITEM_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the LineItemCreativeAssociationService.
    $licaService = $user->GetService('LineItemCreativeAssociationService', 'v201508');
    // Create a statement to select all LICAs for a line item.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('lineItemId = :lineItemId')->OrderBy('lineItemId ASC, creativeId ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('lineItemId', $lineItemId);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get LICAs by statement.
        $page = $licaService->getLineItemCreativeAssociationsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $lica) {
                if (isset($lica->creativeSetId)) {
                    printf("%d) LICA with line item ID %d, and creative set ID %d will " . "be deactivated.\n", $i++, $lica->lineItemId, $lica->creativeSetId);
                } else {
                    printf("%d) LICA with line item ID %d, and creative ID %d will be " . "deactivated.\n", $i++, $lica->lineItemId, $lica->creativeId);
Example #8
0
    $customCriteria3->keyId = $customCriteriaIds3[0];
    $customCriteria3->valueIds = array($customCriteriaIds3[1]);
    $customCriteria3->operator = 'IS';
    // Create the custom criteria set that will resemble:
    //
    // ($customCriteria1.key == $customCriteria1.value OR
    //     ($customCriteria2.key != $customCriteria2.value AND
    //         $customCriteria3.key == $customCriteria3.value))
    $topCustomCriteriaSet = new CustomCriteriaSet();
    $topCustomCriteriaSet->logicalOperator = 'OR';
    $subCustomCriteriaSet = new CustomCriteriaSet();
    $subCustomCriteriaSet->logicalOperator = 'AND';
    $subCustomCriteriaSet->children = array($customCriteria2, $customCriteria3);
    $topCustomCriteriaSet->children = array($customCriteria1, $subCustomCriteriaSet);
    // Create a statement to select a single line item by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue($lineItemId);
    // Get the line item.
    $results = $lineItemService->getLineItemsByStatement($statementBuilder->ToStatement())->results;
    $lineItem = $results[0];
    // Set the custom criteria targeting on the line item.
    $lineItem->targeting->customTargeting = $topCustomCriteriaSet;
    // Update the line item on the server.
    $lineItems = $lineItemService->updateLineItems(array($lineItem));
    foreach ($lineItems as $lineItem) {
        printf("Line item with ID %d was updated.\n", $lineItem->id);
    }
} catch (OAuth2Exception $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (ValidationException $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
require_once 'Google/Api/Ads/Dfp/Util/v201608/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the content metadata key hierarchy to update.
$contentMetadataKeyHierarchyId = 'INSERT_CONTENT_METADATA_KEY_HIERARCHY_ID_HERE';
// Set the ID of the custom targeting key to be added as a hierarchy level.
$customTargetingKeyId = 'INSERT_CUSTOM_TARGETING_KEY_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ContentMetadataKeyHierarchyService.
    $contentMetadataKeyHierarchyService = $user->GetService('ContentMetadataKeyHierarchyService', 'v201608');
    // Create a statement to select a single content metadata key hierarchy by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue('id', $contentMetadataKeyHierarchyId);
    // Get the content metadata key hierarchy.
    $page = $contentMetadataKeyHierarchyService->getContentMetadataKeyHierarchiesByStatement($statementBuilder->ToStatement());
    $contentMetadataKeyHierarchy = $page->results[0];
    // Update the content metadata key hierarchy by adding a hierarchy level.
    $hierarchyLevels = $contentMetadataKeyHierarchy->hierarchyLevels;
    $hierarchyLevel = new ContentMetadataKeyHierarchyLevel();
    $hierarchyLevel->customTargetingKeyId = $customTargetingKeyId;
    $hierarchyLevel->hierarchyLevel = count($hierarchyLevels) + 1;
    $contentMetadataKeyHierarchy->hierarchyLevels[] = $hierarchyLevel;
    // Update the content metadata key hierarchy on the server.
    $contentMetadataKeyHierarchies = $contentMetadataKeyHierarchyService->updateContentMetadataKeyHierarchies(array($contentMetadataKeyHierarchy));
    foreach ($contentMetadataKeyHierarchies as $updatedContentMetadataKeyHierarchy) {
        printf("Content metadata key hierarchy with ID %d, and name '%s' was " . "updated.\n", $updatedContentMetadataKeyHierarchy->id, $updatedContentMetadataKeyHierarchy->name);
    }
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201505/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the creative wrapper label to deactivate.
$labelId = 'INSERT_CREATIVE_WRAPPER_LABEL_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the CreativeWrapperService.
    $creativeWrapperService = $user->GetService('CreativeWrapperService', 'v201505');
    // Create a statement to select the active creative wrappers for the given
    // label.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('labelId = :labelId')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('labelId', $labelId);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get creative wrappers by statement.
        $page = $creativeWrapperService->getCreativeWrappersByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $creativeWrapper) {
                printf("%d) Creative wrapper with ID %d, applying to label with ID %d, " . "with status %s will be deactivated.\n", $i++, $creativeWrapper->id, $creativeWrapper->labelId, $creativeWrapper->status);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
// $path = '/path/to/dfp_api_php_lib/src';
$path = dirname(__FILE__) . '/../../../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201608/Pql.php';
require_once 'Google/Api/Ads/Dfp/Util/v201608/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    $pqlService = $user->GetService('PublisherQueryLanguageService', 'v201608');
    // Create statement to select all programmatic buyers.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Select('BuyerAccountId, Name')->From('Programmatic_Buyer')->OrderBy('BuyerAccountId ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    // Retrieve a small amount of rows at a time, paging through until all rows
    // have been retrieved.
    $resultSet = null;
    $combinedResultSet = null;
    $i = 0;
    do {
        $resultSet = $pqlService->select($statementBuilder->ToStatement());
        // Combine result sets with previous ones.
        $combinedResultSet = $combinedResultSet !== null ? $resultSet : Pql::CombineResultSets($combinedResultSet, $resultSet);
        printf("%d) %d programmatic buyers beginning at offset %d were found.\n", $i++, $resultSet->rows !== null ? count($resultSet->rows) : 0, $statementBuilder->GetOffset());
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    } while ($resultSet->rows !== null && count($resultSet->rows) > 0);
    // Change to another file location if desired.
    $filePath = sprintf("%s/programmatic-buyers-%s.csv", sys_get_temp_dir(), uniqid());
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201602/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the base rate to update.
$baseRateId = 'INSERT_BASE_RATE_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the BaseRateService.
    $baseRateService = $user->GetService('BaseRateService', 'v201602');
    // Create a statement to select a single base rate by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue('id', $baseRateId);
    // Get the base rate.
    $page = $baseRateService->getBaseRatesByStatement($statementBuilder->ToStatement());
    $baseRate = $page->results[0];
    // Update base rate value to $3 USD.
    $newRate = new Money();
    $newRate->currencyCode = 'USD';
    $newRate->microAmount = 3000000;
    $baseRate->rate = $newRate;
    // Update the base rate on the server.
    $baseRates = $baseRateService->updateBaseRates(array($baseRate));
    foreach ($baseRates as $updatedBaseRate) {
        printf("Base rate with ID %d and type '%s', belonging to rate card ID %d " . "was updated.\n", $updatedBaseRate->id, get_class($updatedBaseRate), $updatedBaseRate->rateCardId);
    }
} catch (OAuth2Exception $e) {
// $path = '/path/to/dfp_api_php_lib/src';
$path = dirname(__FILE__) . '/../../../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201502/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ContactService.
    $contactService = $user->GetService('ContactService', 'v201502');
    // Create a statement to select only contacts that aren't invited yet.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('status = :status')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('status', 'UNINVITED');
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get contacts by statement.
        $page = $contactService->getContactsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $contact) {
                printf("%d) Contact with ID %d, and name '%s' was found.\n", $i++, $contact->id, $contact->name);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
/**
 * Gets predefined custom targeting key IDs.
 */
function getPredefinedCustomTargetingKeyIds($user)
{
    $customTargetingKeyIds = array();
    // Get the CustomTargetingService.
    $customTargetingService = $user->GetService('CustomTargetingService', 'v201508');
    // Create a statement to get predefined custom targeting keys.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('type = :type')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('type', 'PREDEFINED');
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get custom targeting keys by statement.
        $page = $customTargetingService->getCustomTargetingKeysByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $customTargetingKey) {
                printf("%d) Custom targeting key with ID %d, name '%s', and display " . "name '%s' was found.\n", $i++, $customTargetingKey->id, $customTargetingKey->name, $customTargetingKey->displayName);
                $customTargetingKeyIds[] = $customTargetingKey->id;
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    } while ($statementBuilder->GetOffset() < $totalResultSetSize);
    return $customTargetingKeyIds;
}
Example #15
0
require_once 'Google/Api/Ads/Dfp/Util/v201505/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the activity group to update.
$activityGroupId = 'INSERT_ACTIVITY_GROUP_ID_HERE';
// Set the ID of the company to associate with the activity group.
$advertiserCompanyId = 'INSERT_ADVERTISER_COMPANY_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ActivityGroupService.
    $activityGroupService = $user->GetService('ActivityGroupService', 'v201505');
    // Create a statement to select a single activity group by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue('id', $activityGroupId);
    // Get the activity group.
    $page = $activityGroupService->getActivityGroupsByStatement($statementBuilder->ToStatement());
    $activityGroup = $page->results[0];
    // Update the companies.
    $activityGroup->companyIds[] = $advertiserCompanyId;
    // Update the activity group on the server.
    $activityGroups = $activityGroupService->updateActivityGroups(array($activityGroup));
    foreach ($activityGroups as $updatedActivityGroup) {
        printf("Activity group with ID %d, and name '%s' was updated.\n", $updatedActivityGroup->id, $updatedActivityGroup->name);
    }
} catch (OAuth2Exception $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (ValidationException $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
// $path = '/path/to/dfp_api_php_lib/src';
$path = dirname(__FILE__) . '/../../../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201411/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the LineItemService.
    $lineItemService = $user->GetService('LineItemService', 'v201411');
    // Create a statement to select only recently updated line items.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('lastModifiedDateTime >= :lastModifiedDateTime')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('lastModifiedDateTime', date(DateTimeUtils::$DFP_DATE_TIME_STRING_FORMAT, strtotime('-1 day')));
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get line items by statement.
        $page = $lineItemService->getLineItemsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $lineItem) {
                printf("%d) Line item with ID %d, belonging to order %d, and name '%s' " . "was found.\n", $i++, $lineItem->id, $lineItem->orderId, $lineItem->name);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201502/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the proposal to update.
$proposalId = 'INSERT_PROPOSAL_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ProposalService.
    $proposalService = $user->GetService('ProposalService', 'v201502');
    // Create a statement to select a single proposal by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue('id', $proposalId);
    // Get the proposal.
    $page = $proposalService->getProposalsByStatement($statementBuilder->ToStatement());
    $proposal = $page->results[0];
    // Update the proposal's notes.
    $proposal->notes = 'Proposal needs further review before approval.';
    // Update the proposal on the server.
    $proposals = $proposalService->updateProposals(array($proposal));
    foreach ($proposals as $updatedProposal) {
        printf("Proposal with ID %d and name '%s' was updated.\n", $updatedProposal->id, $updatedProposal->name);
    }
} catch (OAuth2Exception $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (ValidationException $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201508/Pql.php';
require_once 'Google/Api/Ads/Dfp/Util/v201508/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the PublisherQueryLanguageService.
    $pqlService = $user->GetService('PublisherQueryLanguageService', 'v201508');
    // Set the type of geo target.
    $geoTargetType = 'City';
    // Create statement to select all line items.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Select('Id, Name, CanonicalParentId, ParentIds, CountryCode, Type, Targetable')->From('Geo_Target')->Where('Type = :Type AND Targetable = true')->OrderBy('CountryCode ASC, Name ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('Type', $geoTargetType);
    // Default for result sets.
    $resultSet = null;
    $combinedResultSet = null;
    $i = 0;
    do {
        // Get all cities.
        $resultSet = $pqlService->select($statementBuilder->ToStatement());
        // Combine result sets with previous ones.
        $combinedResultSet = !isset($combinedResultSet) ? $resultSet : Pql::CombineResultSets($combinedResultSet, $resultSet);
        printf("%d) %d geo targets beginning at offset %d were found.\n", $i++, isset($resultSet->rows) ? count($resultSet->rows) : 0, $statementBuilder->GetOffset());
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    } while (isset($resultSet->rows) && count($resultSet->rows) > 0);
    // Change to your file location.
    $filePath = sprintf("%s/%s-%s.csv", sys_get_temp_dir(), $geoTargetType, uniqid());
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201408/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the email address of the user to select.
$emailAddress = 'INSERT_EMAIL_ADDRESS_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the UserService.
    $userService = $user->GetService('UserService', 'v201408');
    // Create a statement to select users by email.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('email = :email')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('email', $emailAddress);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get users by statement.
        $page = $userService->getUsersByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $user) {
                printf("%d) User with ID %d, email '%s', and role '%s' was found.\n", $i++, $user->id, $user->email, $user->roleName);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
// $path = '/path/to/dfp_api_php_lib/src';
$path = dirname(__FILE__) . '/../../../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201602/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the LineItemCreativeAssociationService.
    $licaService = $user->GetService('LineItemCreativeAssociationService', 'v201602');
    // Create a statement to select all LICAs.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->OrderBy('lineItemId ASC, creativeId ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get LICAs by statement.
        $page = $licaService->getLineItemCreativeAssociationsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $lica) {
                if (isset($lica->creativeSetId)) {
                    printf("%d) LICA with line item ID %d, and creative set ID %d was " . "found.\n", $i++, $lica->lineItemId, $lica->creativeSetId);
                } else {
                    printf("%d) LICA with line item ID %d, and creative ID %d was " . "found.\n", $i++, $lica->lineItemId, $lica->creativeId);
$path = dirname(__FILE__) . '/../../../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201508/Pql.php';
require_once 'Google/Api/Ads/Dfp/Util/v201508/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the PublisherQueryLanguageService.
    $pqlService = $user->GetService('PublisherQueryLanguageService', 'v201508');
    // Create statement to select all line items.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Select('Id, BrowserName, MajorVersion, MinorVersion')->From('Browser')->OrderBy('BrowserName ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    // Default for result sets.
    $resultSet = null;
    $combinedResultSet = null;
    $i = 0;
    do {
        // Get all browsers.
        $resultSet = $pqlService->select($statementBuilder->ToStatement());
        // Combine result sets with previous ones.
        $combinedResultSet = !isset($combinedResultSet) ? $resultSet : Pql::CombineResultSets($combinedResultSet, $resultSet);
        printf("%d) %d browsers beginning at offset %d were found.\n", $i++, isset($resultSet->rows) ? count($resultSet->rows) : 0, $statementBuilder->GetOffset());
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    } while (isset($resultSet->rows) && count($resultSet->rows) > 0);
    // Change to your file location.
    $filePath = sprintf("%s/Browsers-%s.csv", sys_get_temp_dir(), uniqid());
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201508/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the master creative to get all creative sets for.
$masterCreativeId = "INSERT_MASTER_CREATIVE_ID_HERE";
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the CreativeSetService.
    $creativeSetService = $user->GetService('CreativeSetService', 'v201508');
    // Create a statement to select only creative sets that have the given master
    // creative.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('masterCreativeId = :masterCreativeId')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('masterCreativeId', $masterCreativeId);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get creative sets by statement.
        $page = $creativeSetService->getCreativeSetsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $creativeSet) {
                printf("%d) Creative set with ID %d, and name '%s' was found.\n", $i++, $creativeSet->id, $creativeSet->name);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201505/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the creative wrapper to update.
$creativeWrapperId = 'INSERT_CREATIVE_WRAPPER_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the CreativeWrapperService.
    $creativeWrapperService = $user->GetService('CreativeWrapperService', 'v201505');
    // Create a statement to select a single creative wrapper by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue('id', $creativeWrapperId);
    // Get the creative wrapper.
    $page = $creativeWrapperService->getCreativeWrappersByStatement($statementBuilder->ToStatement());
    $creativeWrapper = $page->results[0];
    // Update the creative wrapper ordering.
    $creativeWrapper->ordering = 'OUTER';
    // Update the creative wrapper on the server.
    $creativeWrappers = $creativeWrapperService->updateCreativeWrappers(array($creativeWrapper));
    foreach ($creativeWrappers as $updatedCreativeWrapper) {
        printf("Creative wrapper with ID %d, and wrapping order '%s' was " . "updated.\n", $updatedCreativeWrapper->id, $updatedCreativeWrapper->ordering);
    }
} catch (OAuth2Exception $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (ValidationException $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
// $path = '/path/to/dfp_api_php_lib/src';
$path = dirname(__FILE__) . '/../../../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201508/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the AudienceSegmentService.
    $audienceSegmentService = $user->GetService('AudienceSegmentService', 'v201508');
    // Create a statement to select only first party audience segments.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('type = :type')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('type', 'FIRST_PARTY');
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get audience segments by statement.
        $page = $audienceSegmentService->getAudienceSegmentsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $audienceSegment) {
                printf("%d) Audience segment with ID %d, name '%s', and size %s was " . "found.\n", $i++, $audienceSegment->id, $audienceSegment->name, $audienceSegment->size);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201602/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the proposal to submit for approval.
$proposalId = 'INSERT_PROPOSAL_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ProposalService.
    $proposalService = $user->GetService('ProposalService', 'v201602');
    // Create a statement to select a single proposal by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue('id', $proposalId);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get proposals by statement.
        $page = $proposalService->getProposalsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $proposal) {
                printf("%d) Proposal with ID %d and name '%s' will be submitted for " . "approval.\n", $i++, $proposal->id, $proposal->name);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201602/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ad unit ID to archive underneath.
$parentAdUnitId = 'INSERT_AD_UNIT_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the InventoryService.
    $inventoryService = $user->GetService('InventoryService', 'v201602');
    // Create a statement to select ad units under the parent ad unit and the
    // parent ad unit.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('parentId = :parentId or id = :parentId')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('parentId', $parentAdUnitId);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get ad units by statement.
        $page = $inventoryService->getAdUnitsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $adUnit) {
                printf("%d) Ad unit with ID %d, and name '%s' will be archived.\n", $i++, $adUnit->id, $adUnit->name);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201608/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the custom targeting key to update.
$customTargetingKeyId = 'INSERT_CUSTOM_TARGETING_KEY_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the CustomTargetingService.
    $customTargetingService = $user->GetService('CustomTargetingService', 'v201608');
    // Create a statement to select a single custom targeting key by ID.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('id = :id')->OrderBy('id ASC')->Limit(1)->WithBindVariableValue('id', $customTargetingKeyId);
    // Default for total result set size.
    $totalResultSetSize = 0;
    // Get the custom targeting key.
    $page = $customTargetingService->getCustomTargetingKeysByStatement($statementBuilder->ToStatement());
    $customTargetingKey = $page->results[0];
    // Update the custom targeting key's display name.
    $customTargetingKey->displayName = 'New custom targeting key display name.';
    // Update the custom targeting key on the server.
    $customTargetingKeys = $customTargetingService->updateCustomTargetingKeys(array($customTargetingKey));
    foreach ($customTargetingKeys as $updatedCustomTargetingKey) {
        printf("Custom targeting key with ID %d, name '%s', and display name '%s' " . "was updated.\n", $updatedCustomTargetingKey->id, $updatedCustomTargetingKey->name, $updatedCustomTargetingKey->displayName);
    }
} catch (OAuth2Exception $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201505/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the number of requests for suggested ad units greater than which to
// fetch.
$numRequests = "INSERT_NUMBER_OF_REQUESTS_HERE";
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the SuggestedAdUnitService.
    $suggestedAdUnitService = $user->GetService('SuggestedAdUnitService', 'v201505');
    // Create a statement to select only highly requested suggested ad units.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('numRequests >= :numRequests')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('numRequests', $numRequests);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get suggested ad units by statement.
        $page = $suggestedAdUnitService->getSuggestedAdUnitsByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $suggestedAdUnit) {
                printf("%d) Suggested ad unit with ID %s, and number of requests %d " . "was found.\n", $i++, $suggestedAdUnit->id, $suggestedAdUnit->numRequests);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
// $path = '/path/to/dfp_api_php_lib/src';
$path = dirname(__FILE__) . '/../../../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php';
require_once 'Google/Api/Ads/Dfp/Util/v201408/StatementBuilder.php';
require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ContentService.
    $contentService = $user->GetService('ContentService', 'v201408');
    // Create a statement to select all content.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get content by statement.
        $page = $contentService->getContentByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $content) {
                printf("%d) Content with ID %d, name '%s', and status %s was found.\n", $i++, $content->id, $content->name, $content->status);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
$orderId = 'INSERT_ORDER_ID_HERE';
try {
    // Get DfpUser from credentials in "../auth.ini"
    // relative to the DfpUser.php file's directory.
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ReportService.
    $reportService = $user->GetService('ReportService', 'v201411');
    // Create report query.
    $reportQuery = new ReportQuery();
    $reportQuery->dimensions = array('ORDER_ID', 'ORDER_NAME');
    $reportQuery->dimensionAttributes = array('ORDER_TRAFFICKER', 'ORDER_START_DATE_TIME', 'ORDER_END_DATE_TIME');
    $reportQuery->columns = array('AD_SERVER_IMPRESSIONS', 'AD_SERVER_CLICKS', 'AD_SERVER_CTR', 'AD_SERVER_CPM_AND_CPC_REVENUE', 'AD_SERVER_WITHOUT_CPD_AVERAGE_ECPM');
    // Create statement to filter for an order.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('order_id = :orderId')->WithBindVariableValue('orderId', $orderId);
    // Set the filter statement.
    $reportQuery->statement = $statementBuilder->ToStatement();
    // Set the start and end dates or choose a dynamic date range type.
    $reportQuery->dateRangeType = 'LAST_MONTH';
    // Create report job.
    $reportJob = new ReportJob();
    $reportJob->reportQuery = $reportQuery;
    // Run report job.
    $reportJob = $reportService->runReportJob($reportJob);
    // Create report downloader.
    $reportDownloader = new ReportDownloader($reportService, $reportJob->id);
    // Wait for the report to be ready.
    $reportDownloader->waitForReportReady();
    // Change to your file location.