require_once dirname(__FILE__) . '/../../../Common/ExampleUtils.php';
// Set the ID of the image creative to copy.
$creativeId = 'INSERT_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 CreativeService.
    $creativeService = $user->GetService('CreativeService', 'v201608');
    // Create a statement to get the image creative.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->where('id = :id')->orderBy("id ASC")->limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->withBindVariableValue('id', $creativeId);
    // Get the creative.
    $imageCreative = $creativeService->getCreativesByStatement($statementBuilder->toStatement())->results[0];
    // Fetch the image asset.
    $assetToCopy = $imageCreative->primaryImageAsset;
    $aspectRatioSize = $imageCreative->size;
    $aspectRatioSize->isAspectRatio = true;
    $newImageCreative = new AspectRatioImageCreative();
    $newImageCreative->name = 'Copy of original image creative';
    $newImageCreative->size = $aspectRatioSize;
    $newImageCreative->advertiserId = $imageCreative->advertiserId;
    $newImageCreative->imageAssets = array($assetToCopy);
    $newImageCreative->destinationUrl = $imageCreative->destinationUrl;
    // Create the new image creative on the server.
    $imageCreatives = $creativeService->createCreatives(array($newImageCreative));
    // Display results.
    foreach ($imageCreatives as $creative) {
        printf("An image creative with ID %d, name '%s', and size '%sx%s' was created " . "and can be previewed at: '%s'\n", $creative->id, $creative->name, $creative->size->width, $creative->size->height, $creative->previewUrl);