Ce guide explique comment importer des composants de création et créer des ressources Creative
Display & Video 360 à l'aide des services advertisers.assets
et advertisers.creatives
de l'API Display & Video 360.
Prérequis
Avant de créer des créations à l'aide de l'API Display & Video 360, procédez comme suit :
Assurez-vous que votre profil utilisateur Display & Video 360, identifié par une adresse e-mail d'utilisateur ou de compte de service, dispose des autorisations Lecture et écriture pour l'annonceur. Si vous ne disposez pas des autorisations Lecture et écriture, contactez un administrateur de votre équipe.
Créer une création
La création d'une nouvelle création avec de nouveaux composants via l'API Display & Video 360 nécessite au moins deux requêtes API. Le premier importe un élément de création, et le second construit l'objet de la création.
Importer un élément
Pour importer la création assets
nécessaire dans Display & Video 360, appelez la méthode advertisers.assets.upload
.
L'élément doit être attribué au même annonceur que la création.
Une fois que vous avez importé un composant, l'API renvoie une réponse qui inclut l'objet asset
. Vous ne pourrez pas récupérer cet objet asset
plus tard. Notez donc l'mediaId
correspondant. Le mediaId
de cet asset permet de l'attribuer à une création.
Certains types de créations n'acceptent que certains types de fichiers en tant qu'éléments dans des rôles d'éléments spécifiques. Pour en savoir plus sur le choix des types de fichiers adaptés à vos créations, consultez le Centre d'aide.
Voici un exemple d'importation d'un composant:
// Create the asset upload request content.
CreateAssetRequest content = new CreateAssetRequest();
content.setFilename(asset-filename );
// Create input stream for the creative asset.
InputStreamContent assetStream = new InputStreamContent(
getMimeType(asset-filename ),
new FileInputStream(asset-path ));
// Configure the asset upload request.
Assets.Upload assetRequest = service.advertisers().assets()
.upload(advertiser-id , content, assetStream);
// Upload the asset.
CreateAssetResponse assetResponse = assetRequest.execute();
// Display the new asset media ID.
Asset asset = assetResponse.getAsset();
System.out.printf("The asset has been upload with media ID %s",
asset.getMediaId());
Cet exemple utilise la fonction d'assistance suivante pour trouver le type MIME du fichier:
import java.net.FileNameMap;
import java.net.URLConnection;
private static String getMimeType(String fileName) {
// Parse filename for appropriate MIME type.
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String mimeType = fileNameMap.getContentTypeFor(fileName);
// If MIME type was found, return it.
if (mimeType != null) {
return mimeType;
}
// Otherwise, return a default value.
return "application/octet-stream";
}
# Create the request body.
body = {
'filename': asset-filename
}
# Create upload object.
media = MediaFileUpload(asset-path )
if not media.mimetype():
media = MediaFileUpload(asset-path , 'application/octet-stream')
# Upload the asset.
response = service.advertisers().assets().upload(
advertiserId=advertiser-id ,
body=body,
media_body=media
).execute()
# Display the new asset media ID.
print("Asset was created with media ID %s." % response['asset']['mediaId'])
$body = new Google_Service_DisplayVideo_CreateAssetRequest();
$body->setFilename(asset-filename );
$optParams = array(
'data' => file_get_contents(asset-path ),
'mimeType' => mime_content_type(asset-filename ),
'uploadType' => 'media'
);
// Call the API, uploading the asset file to Display & Video 360.
$result = $service->advertisers_assets->upload(
advertiser-id ,
$body,
$optParams
);
// Display the new asset media ID.
printf(
'Asset was created with media ID %s.',
$result->getAsset()->getMediaId()
);
curl --request POST \
'https://displayvideo.googleapis.com/upload/v4/advertisers/advertiser-id /assets?uploadType=multipart'
--header 'Authorization: Bearer access-token ' \
-F "data={\"filename\": \"asset-filename \"};type=application/json;charset=UTF-8" \
-F "file=@asset-path ;type=asset-mime-type "
Créer la création
Une fois que vous avez importé des composants et obtenu leurs ID multimédias, vous pouvez créer des objets Creative
complets avec ces composants.
Utilisez la méthode advertisers.creatives.create
pour créer un Creative
. Chaque type de création ne nécessite qu'un sous-ensemble des champs Creative
.
Consultez l'annexe de ce guide pour en savoir plus sur le mappage des champs de l'UI sur les champs d'API correspondants pour chaque type de création.
Voici des exemples de créations display natives, HTML5 et vidéo:
Création display native
// Create a creative object.
Creative creative = new Creative();
creative.setDisplayName(display-name );
creative.setEntityStatus("ENTITY_STATUS_ACTIVE");
creative.setHostingSource("HOSTING_SOURCE_HOSTED");
// Set native creative type.
creative.setCreativeType("CREATIVE_TYPE_NATIVE");
// Create a dimensions object.
Dimensions dimensions = new Dimensions();
dimensions.setHeightPixels(creative-height-pixels );
dimensions.setWidthPixels(creative-width-pixels );
// Add the dimensions object to the creative object.
creative.setDimensions(dimensions);
// Create list for asset associations.
List<AssetAssociation> assetAssociations = new ArrayList<AssetAssociation>();
// Assign the image asset to a role.
AssetAssociation mainImageAssetAssociation = new AssetAssociation();
mainImageAssetAssociation.setAsset(new Asset().setMediaId(image-asset-media-id ));
mainImageAssetAssociation.setRole("ASSET_ROLE_MAIN");
assetAssociations.add(mainImageAssetAssociation);
// Assign the logo asset to a role.
AssetAssociation iconAssetAssociation = new AssetAssociation();
iconAssetAssociation.setAsset(new Asset().setMediaId(logo-asset-media-id ));
iconAssetAssociation.setRole("ASSET_ROLE_ICON");
assetAssociations.add(iconAssetAssociation);
// Create and assign advertiser name asset.
Asset advertiserNameAsset = new Asset();
advertiserNameAsset.setContent(advertiser-name );
AssetAssociation advertiserNameAssetAssociation = new AssetAssociation();
advertiserNameAssetAssociation.setAsset(advertiserNameAsset);
advertiserNameAssetAssociation.setRole("ASSET_ROLE_ADVERTISER_NAME");
assetAssociations.add(advertiserNameAssetAssociation);
// Create and assign headline asset.
Asset headlineAsset = new Asset();
headlineAsset.setContent(headline );
AssetAssociation headlineAssetAssociation = new AssetAssociation();
headlineAssetAssociation.setAsset(headlineAsset);
headlineAssetAssociation.setRole("ASSET_ROLE_HEADLINE");
assetAssociations.add(headlineAssetAssociation);
// Create and assign body text asset.
Asset bodyTextAsset = new Asset();
bodyTextAsset.setContent(body-text );
AssetAssociation bodyTextAssetAssociation = new AssetAssociation();
bodyTextAssetAssociation.setAsset(bodyTextAsset);
bodyTextAssetAssociation.setRole("ASSET_ROLE_BODY");
assetAssociations.add(bodyTextAssetAssociation);
// Create and assign caption URL asset.
Asset captionUrlAsset = new Asset();
captionUrlAsset.setContent(caption-url );
AssetAssociation captionUrlAssetAssociation = new AssetAssociation();
captionUrlAssetAssociation.setAsset(captionUrlAsset);
captionUrlAssetAssociation.setRole("ASSET_ROLE_CAPTION_URL");
assetAssociations.add(captionUrlAssetAssociation);
// Create and assign call to action asset.
Asset callToActionAsset = new Asset();
callToActionAsset.setContent(call-to-action );
AssetAssociation callToActionAssetAssociation = new AssetAssociation();
callToActionAssetAssociation.setAsset(callToActionAsset);
callToActionAssetAssociation.setRole("ASSET_ROLE_CALL_TO_ACTION");
assetAssociations.add(callToActionAssetAssociation);
// Create and set the list of creative assets.
creative.setAssets(assetAssociations);
// Create an exit event.
ExitEvent exitEvent = new ExitEvent();
exitEvent.setType("EXIT_EVENT_TYPE_DEFAULT");
exitEvent.setUrl(landing-page-url );
// Create and set the list of exit events for the creative.
creative.setExitEvents(ImmutableList.of(exitEvent));
// Configure the create request.
Creatives.Create request =
service.advertisers().creatives().create(advertiser-id , creative);
// Send the request.
Creative response = request.execute();
// Display the new creative.
System.out.printf(
"Creative %s was created.\n",
response.getName());
# Create a creative object.
creative_obj = {
'displayName': display-name ,
'entityStatus': 'ENTITY_STATUS_ACTIVE',
'hostingSource': 'HOSTING_SOURCE_HOSTED',
'creativeType': 'CREATIVE_TYPE_NATIVE',
'dimensions': {
'heightPixels': creative-height-pixels ,
'widthPixels': creative-width-pixels
},
'assets': [
{
'asset': {'mediaId' : image-asset-media-id },
'role': 'ASSET_ROLE_MAIN'
},
{
'asset': {'mediaId' : logo-asset-media-id },
'role': 'ASSET_ROLE_ICON'
},
{
'asset': {'content' : advertiser-name },
'role': 'ASSET_ROLE_ADVERTISER_NAME'
},
{
'asset': {'content' : headline },
'role': 'ASSET_ROLE_HEADLINE'
},
{
'asset': {'content' : body-text },
'role': 'ASSET_ROLE_BODY'
},
{
'asset': {'content' : caption-url },
'role': 'ASSET_ROLE_CAPTION_URL'
},
{
'asset': {'content' : call-to-action },
'role': 'ASSET_ROLE_CALL_TO_ACTION'
},
],
'exitEvents': [
{
'type': 'EXIT_EVENT_TYPE_DEFAULT',
'url': landing-page-url
}
]
}
# Create the creative.
creative = service.advertisers().creatives().create(
advertiserId=advertiser-id ,
body=creative_obj
).execute()
# Display the new creative.
print("creative %s was created." % creative["name"])
// Create a creative object.
$creative = new Google_Service_DisplayVideo_Creative();
$creative->setDisplayName(display-name );
$creative->setEntityStatus('ENTITY_STATUS_ACTIVE');
$creative->setHostingSource('HOSTING_SOURCE_HOSTED');
// Set native creative type.
$creative->setCreativeType('CREATIVE_TYPE_NATIVE');
// Create a dimensions object.
$dimensions = new Google_Service_DisplayVideo_Dimensions();
$dimensions->setHeightPixels(creative-height-pixels );
$dimensions->setWidthPixels(creative-width-pixels );
// Add the dimensions object to the creative object.
$creative->setDimensions($dimensions);
// Create list for asset associations.
$assetAssociations = array();
// Assign the image asset to a role.
$imageAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$imageAsset = new Google_Service_DisplayVideo_Asset();
$imageAsset->setMediaId(image-asset-media-id );
$imageAssetAssoc->setAsset($imageAsset);
$imageAssetAssoc->setRole('ASSET_ROLE_MAIN');
$assetAssociations[] = $imageAssetAssoc;
// Assign the logo asset to a role.
$iconAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$iconAsset = new Google_Service_DisplayVideo_Asset();
$iconAsset->setMediaId(logo-asset-media-id );
$iconAssetAssoc->setAsset($iconAsset);
$iconAssetAssoc->setRole('ASSET_ROLE_ICON');
$assetAssociations[] = $iconAssetAssoc;
// Create and assign advertiser name asset.
$advNameAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$advNameAsset = new Google_Service_DisplayVideo_Asset();
$advNameAsset->setContent(advertiser-name );
$advNameAssetAssoc->setAsset($advNameAsset);
$advNameAssetAssoc->setRole('ASSET_ROLE_ADVERTISER_NAME');
$assetAssociations[] = $advNameAssetAssoc;
// Create and assign headline asset.
$headlineAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$headlineAsset = new Google_Service_DisplayVideo_Asset();
$headlineAsset->setContent(headline );
$headlineAssetAssoc->setAsset($headlineAsset);
$headlineAssetAssoc->setRole('ASSET_ROLE_HEADLINE');
$assetAssociations[] = $headlineAssetAssoc;
// Create and assign body text asset.
$bodyTextAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$bodyTextAsset = new Google_Service_DisplayVideo_Asset();
$bodyTextAsset->setContent(body-text );
$bodyTextAssetAssoc->setAsset($bodyTextAsset);
$bodyTextAssetAssoc->setRole('ASSET_ROLE_BODY');
$assetAssociations[] = $bodyTextAssetAssoc;
// Create and assign caption URL asset.
$captionUrlAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$captionUrlAsset = new Google_Service_DisplayVideo_Asset();
$captionUrlAsset->setContent(caption-url );
$captionUrlAssetAssoc->setAsset($captionUrlAsset);
$captionUrlAssetAssoc->setRole('ASSET_ROLE_CAPTION_URL');
$assetAssociations[] = $captionUrlAssetAssoc;
// Create and assign call to action asset.
$cToAAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$cToAAsset = new Google_Service_DisplayVideo_Asset();
$cToAAsset->setContent(call-to-action );
$cToAAssetAssoc->setAsset($cToAAsset);
$cToAAssetAssoc->setRole('ASSET_ROLE_CALL_TO_ACTION');
$assetAssociations[] = $cToAAssetAssoc;
// Set the list of creative assets.
$creative->setAssets($assetAssociations);
// Create an exit event.
$exitEvent = new Google_Service_DisplayVideo_ExitEvent();
$exitEvent->setType('EXIT_EVENT_TYPE_DEFAULT');
$exitEvent->setUrl(landing-page-url );
// Create and set the list of exit events for the creative.
$creative->setExitEvents(array($exitEvent));
// Send the create request.
$result = $this->service->advertisers_creatives->create(
advertiser-id ,
$creative
);
printf('Creative %s was created.', $result['name']);
HTML5
// Create a creative object.
Creative creative = new Creative();
creative.setDisplayName(display-name );
creative.setEntityStatus("ENTITY_STATUS_ACTIVE");
creative.setHostingSource("HOSTING_SOURCE_HOSTED");
// Set standard creative type.
creative.setCreativeType("CREATIVE_TYPE_STANDARD");
// Create a dimensions object.
Dimensions dimensions = new Dimensions();
dimensions.setHeightPixels(creative-height-pixels );
dimensions.setWidthPixels(creative-width-pixels );
// Add the dimensions object to the creative object.
creative.setDimensions(dimensions);
// Assign the HTML5 asset to a role.
AssetAssociation assetAssociation = new AssetAssociation();
assetAssociation.setAsset(new Asset().setMediaId(html5-asset-media-id ));
assetAssociation.setRole("ASSET_ROLE_MAIN");
// Create and set the list of creative assets.
creative.setAssets(ImmutableList.of(assetAssociation));
// Create an exit event.
ExitEvent exitEvent = new ExitEvent();
exitEvent.setName(exit-event-name );
exitEvent.setType("EXIT_EVENT_TYPE_DEFAULT");
exitEvent.setUrl(exit-event-url );
// Create and set the list of exit events for the creative.
creative.setExitEvents(ImmutableList.of(exitEvent));
// Configure the create request.
Creatives.Create request =
service.advertisers().creatives().create(advertiser-id , creative);
// Send the request.
Creative response = request.execute();
// Display the new creative.
System.out.printf(
"Creative %s was created.\n",
response.getName());
# Create a creative object.
creative_obj = {
'displayName': display-name ,
'entityStatus': 'ENTITY_STATUS_ACTIVE',
'hostingSource': 'HOSTING_SOURCE_HOSTED',
'creativeType': 'CREATIVE_TYPE_STANDARD',
'dimensions': {
'heightPixels': creative-height-pixels ,
'widthPixels': creative-width-pixels
},
'assets': [
{
'asset': {'mediaId' : html5-asset-media-id },
'role': 'ASSET_ROLE_MAIN'
}
],
'exitEvents': [
{
'name': exit-event-name ,
'type': 'EXIT_EVENT_TYPE_DEFAULT',
'url': exit-event-url
}
]
}
# Create the creative.
creative = service.advertisers().creatives().create(
advertiserId=advertiser-id ,
body=creative_obj
).execute()
# Display the new creative.
print("Creative %s was created." % creative["name"])
// Create a creative object.
$creative = new Google_Service_DisplayVideo_Creative();
$creative->setDisplayName(display-name );
$creative->setEntityStatus('ENTITY_STATUS_ACTIVE');
$creative->setHostingSource('HOSTING_SOURCE_HOSTED');
// Set standard creative type.
$creative->setCreativeType('CREATIVE_TYPE_STANDARD');
// Create a dimensions object.
$dimensions = new Google_Service_DisplayVideo_Dimensions();
$dimensions->setHeightPixels(creative-height-pixels );
$dimensions->setWidthPixels(creative-width-pixels );
// Add the dimensions object to the creative object.
$creative->setDimensions($dimensions);
// Assign the HTML asset to a role.
$htmlAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$htmlAsset = new Google_Service_DisplayVideo_Asset();
$htmlAsset->setMediaId(html5-asset-media-id );
$htmlAssetAssoc->setAsset($htmlAsset);
$htmlAssetAssoc->setRole('ASSET_ROLE_MAIN');
// Create and set the list of creative assets.
$creative->setAssets(array($htmlAssetAssoc));
// Create an exit event.
$exitEvent = new Google_Service_DisplayVideo_ExitEvent();
$exitEvent->setName(exit-event-name );
$exitEvent->setType('EXIT_EVENT_TYPE_DEFAULT');
$exitEvent->setUrl(exit-event-url );
// Create and set the list of exit events for the creative.
$creative->setExitEvents(array($exitEvent));
// Send the create request.
$result = $this->service->advertisers_creatives->create(
advertiser-id ,
$creative
);
printf('Creative %s was created.', $result['name']);
Vidéo
// Create a creative object.
Creative creative = new Creative();
creative.setDisplayName(display-name );
creative.setEntityStatus("ENTITY_STATUS_ACTIVE");
creative.setHostingSource("HOSTING_SOURCE_HOSTED");
// Set video creative type.
creative.setCreativeType("CREATIVE_TYPE_VIDEO");
// Assign the video asset to a role.
AssetAssociation assetAssociation = new AssetAssociation();
assetAssociation.setAsset(new Asset().setMediaId(video-asset-media-id) );
assetAssociation.setRole("ASSET_ROLE_MAIN");
// Create and set the list of creative assets.
creative.setAssets(ImmutableList.of(assetAssociation));
// Create an exit event.
ExitEvent exitEvent = new ExitEvent();
exitEvent.setName(exit-event-name );
exitEvent.setType("EXIT_EVENT_TYPE_DEFAULT");
exitEvent.setUrl(exit-event-url );
// Create and set the list of exit events for the creative.
creative.setExitEvents(ImmutableList.of(exitEvent));
// Configure the create request.
Creatives.Create request =
service.advertisers().creatives().create(advertiser-id , creative);
// Send the request.
Creative response = request.execute();
// Display the new creative.
System.out.printf(
"Creative %s was created.\n",
response.getName());
# Create a creative object.
creative_obj = {
'displayName': display-name ,
'entityStatus': 'ENTITY_STATUS_ACTIVE',
'hostingSource': 'HOSTING_SOURCE_HOSTED',
'creativeType': 'CREATIVE_TYPE_VIDEO',
'assets': [
{
'asset': {'mediaId' : video-asset-media-id },
'role': 'ASSET_ROLE_MAIN'
}
],
'exitEvents': [
{
'name': exit-event-name ,
'type': 'EXIT_EVENT_TYPE_DEFAULT',
'url': exit-event-url
}
]
}
# Create the creative.
creative = service.advertisers().creatives().create(
advertiserId=advertiser-id ,
body=creative_obj
).execute()
# Display the new creative.
print("creative %s was created." % creative["name"])
// Create a creative object.
$creative = new Google_Service_DisplayVideo_Creative();
$creative->setDisplayName(display-name );
$creative->setEntityStatus('ENTITY_STATUS_ACTIVE');
$creative->setHostingSource('HOSTING_SOURCE_HOSTED');
// Set video creative type.
$creative->setCreativeType('CREATIVE_TYPE_VIDEO');
// Assign the video asset to a role.
$videoAssetAssoc = new Google_Service_DisplayVideo_AssetAssociation();
$videoAsset = new Google_Service_DisplayVideo_Asset();
$videoAsset->setMediaId(video-asset-media-id );
$videoAssetAssoc->setAsset($videoAsset);
$videoAssetAssoc->setRole('ASSET_ROLE_MAIN');
// Create and set the list of creative assets.
$creative->setAssets(array($videoAssetAssoc));
// Create an exit event.
$exitEvent = new Google_Service_DisplayVideo_ExitEvent();
$exitEvent->setName(exit-event-name );
$exitEvent->setType('EXIT_EVENT_TYPE_DEFAULT');
$exitEvent->setUrl(exit-event-url );
// Create and set the list of exit events for the creative.
$creative->setExitEvents(array($exitEvent));
// Send the create request.
$result = $this->service->advertisers_creatives->create(
advertiser-id ,
$creative
);
printf('Creative %s was created.', $result['name']);