En esta página, se describe cómo realizar algunas de las tareas de coordinación de anuncios más comunes con la API de tráfico y generación de informes de DCM/DFA.
Sugerencias generales de programación
- Propiedades y parámetros opcionales y obligatorios: Consulta la documentación de referencia para saber si una propiedad o un parámetro son necesarios para una llamada a la API.
- Búsquedas de nombres de comodines: Puedes usar el comodín de asterisco (*) cuando buscas nombres de objetos. Un asterisco coincide con cero o más de cualquier carácter. La API también admite una búsqueda por subcadenas implícita, por lo que la búsqueda de “abc” buscará implícitamente "*abc*".
- Actualizar frente a aplicar parches: para modificar un objeto existente, tienes dos opciones:
- Actualizando: cuando actualizas un objeto, todos los campos se reemplazarán cuando se inserte. Es importante cargar el objeto que deseas actualizar y realizar los cambios que quieras en él. De lo contrario, se anulará cualquier campo que no esté presente en la solicitud de actualización.
- Aplicación de parches: cuando se aplica un parche, solo se reemplazan los campos especificados en la inserción. En este caso, puedes crear un objeto nuevo, asignarle el mismo ID que el objeto que quieres actualizar, configurar los campos que se actualizarán y ejecutar la solicitud de parche.
- Tamaños: Las dimensiones físicas se representan con un objeto
Size
definido por el servicio de tamaños. La cuenta proporciona un conjunto de tamaños estándar, y puedes agregar tus propios tamaños personalizados a esta lista. - Fechas y horas: Puedes guardar fechas y horas en formato RFC 3339 mediante las zonas horarias locales. todos los valores devueltos por la API están en UTC. Esto es distinto del sitio web en el que las fechas y las horas se muestran en la zona horaria que configuraste (la hora de Estados Unidos/Nueva York, de forma predeterminada).
Crear un anunciante
C#
-
Crea un objeto
Advertiser
y configura sus propiedades name y status obligatorias.// Create the advertiser structure. Advertiser advertiser = new Advertiser(); advertiser.Name = advertiserName; advertiser.Status = "APPROVED";
-
Llama a
advertisers.insert()
para guardar el anunciante.// Create the advertiser. Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();
Java
-
Crea un objeto
Advertiser
y configura sus propiedades name y status obligatorias.// Create the advertiser structure. Advertiser advertiser = new Advertiser(); advertiser.setName(advertiserName); advertiser.setStatus("APPROVED");
-
Llama a
advertisers.insert()
para guardar el anunciante.// Create the advertiser. Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();
PHP
-
Crea un objeto
Advertiser
y configura sus propiedades name y status obligatorias.$advertiser = new Google_Service_Dfareporting_Advertiser(); $advertiser->setName($values['advertiser_name']); $advertiser->setStatus('APPROVED');
-
Llama a
advertisers.insert()
para guardar el anunciante.$result = $this->service->advertisers->insert( $values['user_profile_id'], $advertiser );
Python
-
Crea un objeto
Advertiser
y configura sus propiedades name y status obligatorias.# Construct and save advertiser. advertiser = { 'name': 'Test Advertiser', 'status': 'APPROVED' }
-
Llama a
advertisers.insert()
para guardar el anunciante.request = service.advertisers().insert( profileId=profile_id, body=advertiser) # Execute request and print response. response = request.execute()
Rita
-
Crea un objeto
Advertiser
y configura sus propiedades name y status obligatorias.# Create a new advertiser resource to insert. advertiser = DfareportingUtils::API_NAMESPACE::Advertiser.new( name: format('Example Advertiser #%s', SecureRandom.hex(3)), status: 'APPROVED' )
-
Llama a
advertisers.insert()
para guardar el anunciante.# Insert the advertiser. result = service.insert_advertiser(profile_id, advertiser)
Crear una campaña
C#
Crea un objeto
Campaign
y configura sus propiedades obligatorias:-
advertiserId
: El anunciante con el que se asociará esta campaña. -
name
: Debe ser único en todas las campañas de este anunciante. -
defaultLandingPageId
: Es una página de destino a la que se dirigirá a los usuarios cuando hagan clic en un anuncio de esta campaña, si no hay ninguno asignado a ese anuncio. Para buscar páginas de destino existentes, llama aadvertiserLandingPages.list
o llama aadvertiserLandingPages.insert
para crear una nueva. - Fechas de inicio y finalización: Deben ser futuras y pueden ser precisas hasta el día de la fecha. Consulta la viñeta de fechas y horas en Información general sobre programación para obtener más detalles. Las fechas de anuncios individuales pueden superar la fecha de finalización para permitir que un publicador intente cumplir con un contrato de una cantidad específica de acciones si no se completó antes de la fecha de finalización de la campaña especificada.
// Locate an advertiser landing page to use as a default. LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId); // Create the campaign structure. Campaign campaign = new Campaign(); campaign.Name = campaignName; campaign.AdvertiserId = advertiserId; campaign.Archived = false; campaign.DefaultLandingPageId = defaultLandingPage.Id; // Set the campaign start date. This example uses today's date. campaign.StartDate = DfaReportingDateConverterUtil.convertToDateString(DateTime.Now); // Set the campaign end date. This example uses one month from today's date. campaign.EndDate = DfaReportingDateConverterUtil.convertToDateString(DateTime.Now.AddMonths(1));
-
Llama a
campaigns.insert()
para guardar la campaña.// Insert the campaign. Campaign result = service.Campaigns.Insert(campaign, profileId).Execute();
Java
Crea un objeto
Campaign
y configura sus propiedades obligatorias:-
advertiserId
: El anunciante con el que se asociará esta campaña. -
name
: Debe ser único en todas las campañas de este anunciante. -
defaultLandingPageId
: Es una página de destino a la que se dirigirá a los usuarios cuando hagan clic en un anuncio de esta campaña, si no hay ninguno asignado a ese anuncio. Para buscar páginas de destino existentes, llama aadvertiserLandingPages.list
o llama aadvertiserLandingPages.insert
para crear una nueva. - Fechas de inicio y finalización: Deben ser futuras y pueden ser precisas hasta el día de la fecha. Consulta la viñeta de fechas y horas en Información general sobre programación para obtener más detalles. Las fechas de anuncios individuales pueden superar la fecha de finalización para permitir que un publicador intente cumplir con un contrato de una cantidad específica de acciones si no se completó antes de la fecha de finalización de la campaña especificada.
// Locate an advertiser landing page to use as a default. LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId); // Create the campaign structure. Campaign campaign = new Campaign(); campaign.setName(campaignName); campaign.setAdvertiserId(advertiserId); campaign.setArchived(false); campaign.setDefaultLandingPageId(defaultLandingPage.getId()); // Set the campaign start date. This example uses today's date. Calendar today = Calendar.getInstance(); DateTime startDate = new DateTime(true, today.getTimeInMillis(), null); campaign.setStartDate(startDate); // Set the campaign end date. This example uses one month from today's date. Calendar nextMonth = Calendar.getInstance(); nextMonth.add(Calendar.MONTH, 1); DateTime endDate = new DateTime(true, nextMonth.getTimeInMillis(), null); campaign.setEndDate(endDate);
-
Llama a
campaigns.insert()
para guardar la campaña.// Insert the campaign. Campaign result = reporting.campaigns().insert(profileId, campaign).execute();
PHP
Crea un objeto
Campaign
y configura sus propiedades obligatorias:-
advertiserId
: El anunciante con el que se asociará esta campaña. -
name
: Debe ser único en todas las campañas de este anunciante. -
defaultLandingPageId
: Es una página de destino a la que se dirigirá a los usuarios cuando hagan clic en un anuncio de esta campaña, si no hay ninguno asignado a ese anuncio. Para buscar páginas de destino existentes, llama aadvertiserLandingPages.list
o llama aadvertiserLandingPages.insert
para crear una nueva. - Fechas de inicio y finalización: Deben ser futuras y pueden ser precisas hasta el día de la fecha. Consulta la viñeta de fechas y horas en Información general sobre programación para obtener más detalles. Las fechas de anuncios individuales pueden superar la fecha de finalización para permitir que un publicador intente cumplir con un contrato de una cantidad específica de acciones si no se completó antes de la fecha de finalización de la campaña especificada.
$startDate = new DateTime('today'); $endDate = new DateTime('+1 month'); $campaign = new Google_Service_Dfareporting_Campaign(); $campaign->setAdvertiserId($values['advertiser_id']); $campaign->setDefaultLandingPageId($values['default_landing_page_id']); $campaign->setName($values['campaign_name']); $campaign->setStartDate($startDate->format('Y-m-d')); $campaign->setEndDate($endDate->format('Y-m-d'));
-
Llama a
campaigns.insert()
para guardar la campaña.$result = $this->service->campaigns->insert( $values['user_profile_id'], $campaign );
Python
Crea un objeto
Campaign
y configura sus propiedades obligatorias:-
advertiserId
: El anunciante con el que se asociará esta campaña. -
name
: Debe ser único en todas las campañas de este anunciante. -
defaultLandingPageId
: Es una página de destino a la que se dirigirá a los usuarios cuando hagan clic en un anuncio de esta campaña, si no hay ninguno asignado a ese anuncio. Para buscar páginas de destino existentes, llama aadvertiserLandingPages.list
o llama aadvertiserLandingPages.insert
para crear una nueva. - Fechas de inicio y finalización: Deben ser futuras y pueden ser precisas hasta el día de la fecha. Consulta la viñeta de fechas y horas en Información general sobre programación para obtener más detalles. Las fechas de anuncios individuales pueden superar la fecha de finalización para permitir que un publicador intente cumplir con un contrato de una cantidad específica de acciones si no se completó antes de la fecha de finalización de la campaña especificada.
# Locate an advertiser landing page to use as a default. default_landing_page = get_advertiser_landing_page(service, profile_id, advertiser_id) # Construct and save campaign. campaign = { 'name': 'Test Campaign #%s' % uuid.uuid4(), 'advertiserId': advertiser_id, 'archived': 'false', 'defaultLandingPageId': default_landing_page['id'], 'startDate': '2015-01-01', 'endDate': '2020-01-01' }
-
Llama a
campaigns.insert()
para guardar la campaña.request = service.campaigns().insert(profileId=profile_id, body=campaign) # Execute request and print response. response = request.execute()
Rita
Crea un objeto
Campaign
y configura sus propiedades obligatorias:-
advertiserId
: El anunciante con el que se asociará esta campaña. -
name
: Debe ser único en todas las campañas de este anunciante. -
defaultLandingPageId
: Es una página de destino a la que se dirigirá a los usuarios cuando hagan clic en un anuncio de esta campaña, si no hay ninguno asignado a ese anuncio. Para buscar páginas de destino existentes, llama aadvertiserLandingPages.list
o llama aadvertiserLandingPages.insert
para crear una nueva. - Fechas de inicio y finalización: Deben ser futuras y pueden ser precisas hasta el día de la fecha. Consulta la viñeta de fechas y horas en Información general sobre programación para obtener más detalles. Las fechas de anuncios individuales pueden superar la fecha de finalización para permitir que un publicador intente cumplir con un contrato de una cantidad específica de acciones si no se completó antes de la fecha de finalización de la campaña especificada.
# Locate an advertiser landing page to use as a default. default_landing_page = get_advertiser_landing_page(service, profile_id, advertiser_id) # Create a new campaign resource to insert. campaign = DfareportingUtils::API_NAMESPACE::Campaign.new( advertiser_id: advertiser_id, archived: false, default_landing_page_id: default_landing_page.id, name: format('Example Campaign #%s', SecureRandom.hex(3)), start_date: '2014-01-01', end_date: '2020-01-01' )
-
Llama a
campaigns.insert()
para guardar la campaña.# Insert the campaign. result = service.insert_campaign(profile_id, campaign)
Crea una posición
C#
-
Crea un objeto
Placement
y establece las propiedades de posición requeridas (incluidascampaignId
ysiteId
). Además, asegúrese de establecer con precisión el tipo y el tamaño de la posición que negoció con su sitio web.// Create the placement. Placement placement = new Placement(); placement.Name = placementName; placement.CampaignId = campaignId; placement.Compatibility = "DISPLAY"; placement.PaymentSource = "PLACEMENT_AGENCY_PAID"; placement.SiteId = dfaSiteId; placement.TagFormats = new List<string>() { "PLACEMENT_TAG_STANDARD" }; // Set the size of the placement. Size size = new Size(); size.Id = sizeId; placement.Size = size;
-
Crea un objeto
PricingSchedule
nuevo para asignarlo a la posición.// Set the pricing schedule for the placement. PricingSchedule pricingSchedule = new PricingSchedule(); pricingSchedule.EndDate = campaign.EndDate; pricingSchedule.PricingType = "PRICING_TYPE_CPM"; pricingSchedule.StartDate = campaign.StartDate; placement.PricingSchedule = pricingSchedule;
-
Guarda el objeto
Placement
llamando aplacements.insert()
. Asegúrese de almacenar el ID devuelto si desea utilizarlo para asignarlo a un anuncio o una creatividad.// Insert the placement. Placement result = service.Placements.Insert(placement, profileId).Execute();
Java
-
Crea un objeto
Placement
y establece las propiedades de posición requeridas (incluidascampaignId
ysiteId
). Además, asegúrese de establecer con precisión el tipo y el tamaño de la posición que negoció con su sitio web.// Create the placement. Placement placement = new Placement(); placement.setName(placementName); placement.setCampaignId(campaignId); placement.setCompatibility("DISPLAY"); placement.setPaymentSource("PLACEMENT_AGENCY_PAID"); placement.setSiteId(dfaSiteId); placement.setTagFormats(ImmutableList.of("PLACEMENT_TAG_STANDARD")); // Set the size of the placement. Size size = new Size(); size.setId(sizeId); placement.setSize(size);
-
Crea un objeto
PricingSchedule
nuevo para asignarlo a la posición.// Set the pricing schedule for the placement. PricingSchedule pricingSchedule = new PricingSchedule(); pricingSchedule.setEndDate(campaign.getEndDate()); pricingSchedule.setPricingType("PRICING_TYPE_CPM"); pricingSchedule.setStartDate(campaign.getStartDate()); placement.setPricingSchedule(pricingSchedule);
-
Guarda el objeto
Placement
llamando aplacements.insert()
. Asegúrese de almacenar el ID devuelto si desea utilizarlo para asignarlo a un anuncio o una creatividad.// Insert the placement. Placement result = reporting.placements().insert(profileId, placement).execute();
PHP
-
Crea un objeto
Placement
y establece las propiedades de posición requeridas (incluidascampaignId
ysiteId
). Además, asegúrese de establecer con precisión el tipo y el tamaño de la posición que negoció con su sitio web.$placement = new Google_Service_Dfareporting_Placement(); $placement->setCampaignId($values['campaign_id']); $placement->setCompatibility('DISPLAY'); $placement->setName($values['placement_name']); $placement->setPaymentSource('PLACEMENT_AGENCY_PAID'); $placement->setSiteId($values['site_id']); $placement->setTagFormats(['PLACEMENT_TAG_STANDARD']); // Set the size of the placement. $size = new Google_Service_Dfareporting_Size(); $size->setId($values['size_id']); $placement->setSize($size);
-
Crea un objeto
PricingSchedule
nuevo para asignarlo a la posición.// Set the pricing schedule for the placement. $pricingSchedule = new Google_Service_Dfareporting_PricingSchedule(); $pricingSchedule->setEndDate($campaign->getEndDate()); $pricingSchedule->setPricingType('PRICING_TYPE_CPM'); $pricingSchedule->setStartDate($campaign->getStartDate()); $placement->setPricingSchedule($pricingSchedule);
-
Guarda el objeto
Placement
llamando aplacements.insert()
. Asegúrese de almacenar el ID devuelto si desea utilizarlo para asignarlo a un anuncio o una creatividad.// Insert the placement. $result = $this->service->placements->insert( $values['user_profile_id'], $placement );
Python
-
Crea un objeto
Placement
y establece las propiedades de posición requeridas (incluidascampaignId
ysiteId
). Además, asegúrese de establecer con precisión el tipo y el tamaño de la posición que negoció con su sitio web.# Construct and save placement. placement = { 'name': 'Test Placement', 'campaignId': campaign_id, 'compatibility': 'DISPLAY', 'siteId': site_id, 'size': { 'height': '1', 'width': '1' }, 'paymentSource': 'PLACEMENT_AGENCY_PAID', 'tagFormats': ['PLACEMENT_TAG_STANDARD'] }
-
Crea un objeto
PricingSchedule
nuevo para asignarlo a la posición.# Set the pricing schedule for the placement. placement['pricingSchedule'] = { 'startDate': campaign['startDate'], 'endDate': campaign['endDate'], 'pricingType': 'PRICING_TYPE_CPM' }
-
Guarda el objeto
Placement
llamando aplacements.insert()
. Asegúrese de almacenar el ID devuelto si desea utilizarlo para asignarlo a un anuncio o una creatividad.request = service.placements().insert(profileId=profile_id, body=placement) # Execute request and print response. response = request.execute()
Rita
-
Crea un objeto
Placement
y establece las propiedades de posición requeridas (incluidascampaignId
ysiteId
). Además, asegúrese de establecer con precisión el tipo y el tamaño de la posición que negoció con su sitio web.# Create a new placement resource to insert. placement = DfareportingUtils::API_NAMESPACE::Placement.new( campaign_id: campaign_id, compatibility: 'DISPLAY', name: 'Example Placement', payment_source: 'PLACEMENT_AGENCY_PAID', site_id: site_id, size: DfareportingUtils::API_NAMESPACE::Size.new( height: 1, width: 1 ), tag_formats: ['PLACEMENT_TAG_STANDARD'] )
-
Crea un objeto
PricingSchedule
nuevo para asignarlo a la posición.# Set the pricing schedule for the placement. placement.pricing_schedule = DfareportingUtils::API_NAMESPACE::PricingSchedule.new( end_date: campaign.end_date, pricing_type: 'PRICING_TYPE_CPM', start_date: campaign.start_date )
-
Guarda el objeto
Placement
llamando aplacements.insert()
. Asegúrese de almacenar el ID devuelto si desea utilizarlo para asignarlo a un anuncio o una creatividad.# Insert the placement strategy. result = service.insert_placement(profile_id, placement)
Subir elementos
Puedes subir muchos tipos de recursos a través del proceso conocido como carga de contenido multimedia. Aunque este proceso es similar para todos los tipos de creatividades, algunos tipos pueden requerir que se pasen propiedades específicas como metadatos para que se puedan usar correctamente.
C#
Crea un objeto
assetIdentifier
y configura las propiedades requeridas. Todos los recursos, independientemente de su tipo o cómo se usan, deben especificar unassetIdentifier
. Al asignar el recurso a una creatividad, este objeto se utilizará para hacer referencia al recurso. Las siguientes propiedades son obligatorias:-
La propiedad
name
, que será el nombre del recurso en el servidor El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se mostrará al navegador como el nombre del elemento, pero no es necesario que sea igual al nombre del archivo original. Ten en cuenta que Campaign Manager 360 podría cambiar este nombre para que sea único en el servidor. verifica el valor que se muestra para ver si cambió. -
La propiedad
type
, que identifica el tipo de recurso. Esta propiedad definirá los tipos de creatividades con los que se puede asociar este recurso.
// Create the creative asset ID and Metadata. CreativeAssetId assetId = new CreativeAssetId(); assetId.Name = Path.GetFileName(assetFile); assetId.Type = assetType;
-
La propiedad
Para subir el archivo, llama a
creativeAssets.insert()
. Realiza una carga multiparte y pasa el contenido deassetIdentifier
y del archivo como parte de la misma solicitud. Si se ejecuta de forma correcta, se mostrará un recursoCreativeAsset
con unassetIdentifier
que usarás para asignar este recurso a una creatividad.// Prepare an input stream. FileStream assetContent = new FileStream(assetFile, FileMode.Open, FileAccess.Read); CreativeAssetMetadata metaData = new CreativeAssetMetadata(); metaData.AssetIdentifier = assetId; // Insert the creative. String mimeType = determineMimeType(assetFile, assetType); CreativeAssetsResource.InsertMediaUpload request = Service.CreativeAssets.Insert(metaData, ProfileId, AdvertiserId, assetContent, mimeType); IUploadProgress progress = request.Upload(); if (UploadStatus.Failed.Equals(progress.Status)) { throw progress.Exception; }
Java
Crea un objeto
assetIdentifier
y configura las propiedades requeridas. Todos los recursos, independientemente de su tipo o cómo se usan, deben especificar unassetIdentifier
. Al asignar el recurso a una creatividad, este objeto se utilizará para hacer referencia al recurso. Las siguientes propiedades son obligatorias:-
La propiedad
name
, que será el nombre del recurso en el servidor El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se mostrará al navegador como el nombre del elemento, pero no es necesario que sea igual al nombre del archivo original. Ten en cuenta que Campaign Manager 360 podría cambiar este nombre para que sea único en el servidor. verifica el valor que se muestra para ver si cambió. -
La propiedad
type
, que identifica el tipo de recurso. Esta propiedad definirá los tipos de creatividades con los que se puede asociar este recurso.
// Create the creative asset ID and Metadata. CreativeAssetId assetId = new CreativeAssetId(); assetId.setName(assetName); assetId.setType(assetType);
-
La propiedad
Para subir el archivo, llama a
creativeAssets.insert()
. Realiza una carga multiparte y pasa el contenido deassetIdentifier
y del archivo como parte de la misma solicitud. Si se ejecuta de forma correcta, se mostrará un recursoCreativeAsset
con unassetIdentifier
que usarás para asignar este recurso a una creatividad.// Open the asset file. File file = new File(assetFile); // Prepare an input stream. String contentType = getMimeType(assetFile); InputStreamContent assetContent = new InputStreamContent(contentType, new BufferedInputStream(new FileInputStream(file))); assetContent.setLength(file.length()); CreativeAssetMetadata metaData = new CreativeAssetMetadata(); metaData.setAssetIdentifier(assetId); // Insert the creative. CreativeAssetMetadata result = reporting.creativeAssets() .insert(profileId, advertiserId, metaData, assetContent).execute();
PHP
Crea un objeto
assetIdentifier
y configura las propiedades requeridas. Todos los recursos, independientemente de su tipo o cómo se usan, deben especificar unassetIdentifier
. Al asignar el recurso a una creatividad, este objeto se utilizará para hacer referencia al recurso. Las siguientes propiedades son obligatorias:-
La propiedad
name
, que será el nombre del recurso en el servidor El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se mostrará al navegador como el nombre del elemento, pero no es necesario que sea igual al nombre del archivo original. Ten en cuenta que Campaign Manager 360 podría cambiar este nombre para que sea único en el servidor. verifica el valor que se muestra para ver si ha cambiado. -
La propiedad
type
, que identifica el tipo de recurso. Esta propiedad definirá los tipos de creatividades con los que se puede asociar este recurso.
$assetId = new Google_Service_Dfareporting_CreativeAssetId(); $assetId->setName($asset['name']); $assetId->setType($type);
-
La propiedad
Para subir el archivo, llama a
creativeAssets.insert()
. Realiza una carga multiparte y pasa el contenido deassetIdentifier
y del archivo como parte de la misma solicitud. Si se ejecuta de forma correcta, se mostrará un recursoCreativeAsset
con unassetIdentifier
que usarás para asignar este recurso a una creatividad.$metadata = new Google_Service_Dfareporting_CreativeAssetMetadata(); $metadata->setAssetIdentifier($assetId); $result = $service->creativeAssets->insert( $userProfileId, $advertiserId, $metadata, ['data' => file_get_contents($asset['tmp_name']), 'mimeType' => $asset['type'], 'uploadType' => 'multipart'] );
Python
Crea un objeto
assetIdentifier
y configura las propiedades requeridas. Todos los recursos, independientemente de su tipo o cómo se usan, deben especificar unassetIdentifier
. Al asignar el recurso a una creatividad, este objeto se utilizará para hacer referencia al recurso. Las siguientes propiedades son obligatorias:-
La propiedad
name
, que será el nombre del recurso en el servidor El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se mostrará al navegador como el nombre del elemento, pero no es necesario que sea igual al nombre del archivo original. Ten en cuenta que Campaign Manager 360 podría cambiar este nombre para que sea único en el servidor. verifica el valor que se muestra para ver si ha cambiado. -
La propiedad
type
, que identifica el tipo de recurso. Esta propiedad definirá los tipos de creatividades con los que se puede asociar este recurso.
# Construct the creative asset metadata creative_asset = {'assetIdentifier': {'name': asset_name, 'type': asset_type}}
-
La propiedad
Para subir el archivo, llama a
creativeAssets.insert()
. Realiza una carga multiparte y pasa el contenido deassetIdentifier
y del archivo como parte de la misma solicitud. Si se ejecuta de forma correcta, se mostrará un recursoCreativeAsset
con unassetIdentifier
que usarás para asignar este recurso a una creatividad.media = MediaFileUpload(path_to_asset_file) if not media.mimetype(): media = MediaFileUpload(path_to_asset_file, 'application/octet-stream') response = service.creativeAssets().insert( advertiserId=advertiser_id, profileId=profile_id, media_body=media, body=creative_asset).execute()
Rita
Crea un objeto
assetIdentifier
y configura las propiedades requeridas. Todos los recursos, independientemente de su tipo o cómo se usan, deben especificar unassetIdentifier
. Al asignar el recurso a una creatividad, este objeto se utilizará para hacer referencia al recurso. Las siguientes propiedades son obligatorias:-
La propiedad
name
, que será el nombre del recurso en el servidor El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se mostrará al navegador como el nombre del elemento, pero no es necesario que sea igual al nombre del archivo original. Ten en cuenta que Campaign Manager 360 podría cambiar este nombre para que sea único en el servidor. verifica el valor que se muestra para ver si ha cambiado. -
La propiedad
type
, que identifica el tipo de recurso. Esta propiedad definirá los tipos de creatividades con los que se puede asociar este recurso.
# Construct the creative asset metadata creative_asset = DfareportingUtils::API_NAMESPACE::CreativeAsset.new( asset_identifier: DfareportingUtils::API_NAMESPACE::CreativeAssetId.new( name: asset_name, type: asset_type ) )
-
La propiedad
Para subir el archivo, llama a
creativeAssets.insert()
. Realiza una carga multiparte y pasa el contenido deassetIdentifier
y del archivo como parte de la misma solicitud. Si se ejecuta de forma correcta, se mostrará un recursoCreativeAsset
con unassetIdentifier
que usarás para asignar este recurso a una creatividad.# Upload the asset. mime_type = determine_mime_type(path_to_asset_file, asset_type) result = @service.insert_creative_asset( @profile_id, advertiser_id, creative_asset, content_type: mime_type, upload_source: path_to_asset_file )
Crear una creatividad
Un objeto Creative
une un elemento existente. Según cómo uses las creatividades en la página de alojamiento, puedes crear objetos Creative
de diferentes tipos de creatividades. Consulta la documentación de referencia para determinar qué tipo es adecuado para ti.
En el siguiente ejemplo, se muestra cómo crear una nueva creatividad de anuncio gráfico HTML5.
C#
-
Sube los recursos. Las distintas creatividades requieren distintos tipos y cantidades de recursos. consulta Cómo subir recursos para obtener más información. Cada vez que subas correctamente un recurso, recibirás una
assetIdenfitier
en la respuesta. En lugar de usar un ID tradicional, utilizarás el nombre y el tipo de archivo almacenados para hacer referencia a estos elementos en tu creatividad. -
Crear una creatividad y asignar los valores adecuados Crea una instancia de
Creative
y establece eltype
adecuado. No puedes cambiar el tipo de objetoCreative
después de guardarlo. Especifica los recursos según suAssetIdentifier
yrole
.// Locate an advertiser landing page to use as a default. LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId); // Create the creative structure. Creative creative = new Creative(); creative.AdvertiserId = advertiserId; creative.Name = "Test HTML5 display creative"; creative.Size = new Size() { Id = sizeId }; creative.Type = "DISPLAY"; // Upload the HTML5 asset. CreativeAssetUtils assetUtils = new CreativeAssetUtils(service, profileId, advertiserId); CreativeAssetId html5AssetId = assetUtils.uploadAsset(pathToHtml5AssetFile, "HTML").AssetIdentifier; CreativeAsset html5Asset = new CreativeAsset(); html5Asset.AssetIdentifier = html5AssetId; html5Asset.Role = "PRIMARY"; // Upload the backup image asset. CreativeAssetId imageAssetId = assetUtils.uploadAsset(pathToImageAssetFile, "HTML_IMAGE").AssetIdentifier; CreativeAsset imageAsset = new CreativeAsset(); imageAsset.AssetIdentifier = imageAssetId; imageAsset.Role = "BACKUP_IMAGE"; // Add the creative assets. creative.CreativeAssets = new List<CreativeAsset>() { html5Asset, imageAsset }; // Configure the bacup image. creative.BackupImageClickThroughUrl = new CreativeClickThroughUrl() { LandingPageId = defaultLandingPage.Id }; creative.BackupImageReportingLabel = "backup"; creative.BackupImageTargetWindow = new TargetWindow() { TargetWindowOption = "NEW_WINDOW" }; // Add a click tag. ClickTag clickTag = new ClickTag(); clickTag.Name = "clickTag"; clickTag.EventName = "exit"; clickTag.ClickThroughUrl = new CreativeClickThroughUrl() { LandingPageId = defaultLandingPage.Id }; creative.ClickTags = new List<ClickTag>() { clickTag };
-
Guarde la creatividad. Para ello, llama a
creatives.insert()
. Se debe especificar un ID del anunciante al que se asociará esta creatividad.Creative result = service.Creatives.Insert(creative, profileId).Execute();
-
(Opcional) Asocia la creatividad a una campaña. Para ello, se debe llamar a
campaignCreativeAssociations.insert()
y pasar los IDs de la campaña y de la creatividad.// Create the campaign creative association structure. CampaignCreativeAssociation association = new CampaignCreativeAssociation(); association.CreativeId = creativeId; // Insert the association. CampaignCreativeAssociation result = service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();
Java
-
Sube los recursos. Las distintas creatividades requieren distintos tipos y cantidades de recursos. consulta Cómo subir recursos para obtener más información. Cada vez que subas correctamente un recurso, recibirás una
assetIdenfitier
en la respuesta. En lugar de usar un ID tradicional, utilizarás el nombre y el tipo de archivo almacenados para hacer referencia a estos elementos en tu creatividad. -
Crear una creatividad y asignar los valores adecuados Crea una instancia de
Creative
y establece eltype
adecuado. No puedes cambiar el tipo de objetoCreative
después de guardarlo. Especifica los recursos según suAssetIdentifier
yrole
.// Locate an advertiser landing page to use as a default. LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId); // Create the creative structure. Creative creative = new Creative(); creative.setAdvertiserId(advertiserId); creative.setName("Test HTML5 display creative"); creative.setSize(new Size().setId(sizeId)); creative.setType("DISPLAY"); // Upload the HTML5 asset. CreativeAssetId html5AssetId = CreativeAssetUtils.uploadAsset(reporting, profileId, advertiserId, HTML5_ASSET_NAME, PATH_TO_HTML5_ASSET_FILE, "HTML").getAssetIdentifier(); CreativeAsset html5Asset = new CreativeAsset().setAssetIdentifier(html5AssetId).setRole("PRIMARY"); // Upload the backup image asset (note: asset type must be set to HTML_IMAGE). CreativeAssetId imageAssetId = CreativeAssetUtils.uploadAsset(reporting, profileId, advertiserId, IMAGE_ASSET_NAME, PATH_TO_IMAGE_ASSET_FILE, "HTML_IMAGE") .getAssetIdentifier(); CreativeAsset backupImageAsset = new CreativeAsset().setAssetIdentifier(imageAssetId).setRole("BACKUP_IMAGE"); // Add the creative assets. creative.setCreativeAssets(ImmutableList.of(html5Asset, backupImageAsset)); // Configure the backup image. creative.setBackupImageClickThroughUrl( new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId())); creative.setBackupImageReportingLabel("backup"); creative.setBackupImageTargetWindow(new TargetWindow().setTargetWindowOption("NEW_WINDOW")); // Add a click tag. ClickTag clickTag = new ClickTag().setName("clickTag").setEventName("exit").setClickThroughUrl( new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId())); creative.setClickTags(ImmutableList.of(clickTag));
-
Guarde la creatividad. Para ello, llama a
creatives.insert()
. Se debe especificar un ID del anunciante al que se asociará esta creatividad.Creative result = reporting.creatives().insert(profileId, creative).execute();
-
(Opcional) Asocia la creatividad a una campaña. Para ello, se debe llamar a
campaignCreativeAssociations.insert()
y pasar los IDs de la campaña y de la creatividad.// Create the campaign creative association structure. CampaignCreativeAssociation association = new CampaignCreativeAssociation(); association.setCreativeId(creativeId); // Insert the association. CampaignCreativeAssociation result = reporting .campaignCreativeAssociations().insert(profileId, campaignId, association) .execute();
PHP
-
Sube los recursos. Las distintas creatividades requieren distintos tipos y cantidades de recursos. consulta Cómo subir recursos para obtener más información. Cada vez que subas correctamente un recurso, recibirás una
assetIdenfitier
en la respuesta. En lugar de usar un ID tradicional, utilizarás el nombre y el tipo de archivo almacenados para hacer referencia a estos elementos en tu creatividad. -
Crear una creatividad y asignar los valores adecuados Crea una instancia de
Creative
y establece eltype
adecuado. No puedes cambiar el tipo de objetoCreative
después de guardarlo. Especifica los recursos según suAssetIdentifier
yrole
.$creative = new Google_Service_Dfareporting_Creative(); $creative->setAdvertiserId($values['advertiser_id']); $creative->setAutoAdvanceImages(true); $creative->setName('Test HTML5 display creative'); $creative->setType('DISPLAY'); $size = new Google_Service_Dfareporting_Size(); $size->setId($values['size_id']); $creative->setSize($size); // Upload the HTML5 asset. $html = uploadAsset( $this->service, $values['user_profile_id'], $values['advertiser_id'], $values['html_asset_file'], 'HTML' ); $htmlAsset = new Google_Service_Dfareporting_CreativeAsset(); $htmlAsset->setAssetIdentifier($html->getAssetIdentifier()); $htmlAsset->setRole('PRIMARY'); // Upload the backup image asset. $image = uploadAsset( $this->service, $values['user_profile_id'], $values['advertiser_id'], $values['image_asset_file'], 'HTML_IMAGE' ); $imageAsset = new Google_Service_Dfareporting_CreativeAsset(); $imageAsset->setAssetIdentifier($image->getAssetIdentifier()); $imageAsset->setRole('BACKUP_IMAGE'); // Add the creative assets. $creative->setCreativeAssets([$htmlAsset, $imageAsset]); // Configure the default click-through URL. $clickThroughUrl = new Google_Service_Dfareporting_CreativeClickThroughUrl(); $clickThroughUrl->setLandingPageId($values['landing_page_id']); // Configure the backup image. $creative->setBackupImageClickThroughUrl($clickThroughUrl); $creative->setBackupImageReportingLabel('backup'); $targetWindow = new Google_Service_Dfareporting_TargetWindow(); $targetWindow->setTargetWindowOption('NEW_WINDOW'); $creative->setBackupImageTargetWindow($targetWindow); // Add a click tag. $clickTag = new Google_Service_Dfareporting_ClickTag(); $clickTag->setName('clickTag'); $clickTag->setEventName('exit'); $clickTag->setClickThroughUrl($clickThroughUrl); $creative->setClickTags([$clickTag]);
-
Guarde la creatividad. Para ello, llama a
creatives.insert()
. Se debe especificar un ID del anunciante al que se asociará esta creatividad.$result = $this->service->creatives->insert( $values['user_profile_id'], $creative );
-
(Opcional) Asocia la creatividad a una campaña. Para ello, se debe llamar a
campaignCreativeAssociations.insert()
y pasar los IDs de la campaña y de la creatividad.$association = new Google_Service_Dfareporting_CampaignCreativeAssociation(); $association->setCreativeId($values['creative_id']); $result = $this->service->campaignCreativeAssociations->insert( $values['user_profile_id'], $values['campaign_id'], $association );
Python
-
Sube los recursos. Las distintas creatividades requieren distintos tipos y cantidades de recursos. consulta Cómo subir recursos para obtener más información. Cada vez que subas correctamente un recurso, recibirás una
assetIdenfitier
en la respuesta. En lugar de usar un ID tradicional, utilizarás el nombre y el tipo de archivo almacenados para hacer referencia a estos elementos en tu creatividad. -
Crear una creatividad y asignar los valores adecuados Crea una instancia de
Creative
y establece eltype
adecuado. No puedes cambiar el tipo de objetoCreative
después de guardarlo. Especifica los recursos según suAssetIdentifier
yrole
.# Locate an advertiser landing page to use as a default. default_landing_page = get_advertiser_landing_page(service, profile_id, advertiser_id) # Upload the HTML5 asset html5_asset_id = upload_creative_asset(service, profile_id, advertiser_id, html5_asset_name, path_to_html5_asset_file, 'HTML') # Upload the backup image asset backup_image_asset_id = upload_creative_asset( service, profile_id, advertiser_id, backup_image_name, path_to_backup_image_file, 'HTML_IMAGE') # Construct the creative structure. creative = { 'advertiserId': advertiser_id, 'backupImageClickThroughUrl': { 'landingPageId': default_landing_page['id'] }, 'backupImageReportingLabel': 'backup_image_exit', 'backupImageTargetWindow': {'targetWindowOption': 'NEW_WINDOW'}, 'clickTags': [{ 'eventName': 'exit', 'name': 'click_tag', 'clickThroughUrl': {'landingPageId': default_landing_page['id']} }], 'creativeAssets': [ {'assetIdentifier': html5_asset_id, 'role': 'PRIMARY'}, {'assetIdentifier': backup_image_asset_id, 'role': 'BACKUP_IMAGE'} ], 'name': 'Test HTML5 display creative', 'size': {'id': size_id}, 'type': 'DISPLAY' }
-
Guarde la creatividad. Para ello, llama a
creatives.insert()
. Se debe especificar un ID del anunciante al que se asociará esta creatividad.request = service.creatives().insert(profileId=profile_id, body=creative) # Execute request and print response. response = request.execute()
-
(Opcional) Asocia la creatividad a una campaña. Para ello, se debe llamar a
campaignCreativeAssociations.insert()
y pasar los IDs de la campaña y de la creatividad.# Construct the request. association = { 'creativeId': creative_id } request = service.campaignCreativeAssociations().insert( profileId=profile_id, campaignId=campaign_id, body=association) # Execute request and print response. response = request.execute()
Rita
-
Sube los recursos. Las distintas creatividades requieren distintos tipos y cantidades de recursos. consulta Cómo subir recursos para obtener más información. Cada vez que subas correctamente un recurso, recibirás una
assetIdenfitier
en la respuesta. En lugar de usar un ID tradicional, utilizarás el nombre y el tipo de archivo almacenados para hacer referencia a estos elementos en tu creatividad. -
Crear una creatividad y asignar los valores adecuados Crea una instancia de
Creative
y establece eltype
adecuado. No puedes cambiar el tipo de objetoCreative
después de guardarlo. Especifica los recursos según suAssetIdentifier
yrole
.# Locate an advertiser landing page to use as a default. default_landing_page = get_advertiser_landing_page(service, profile_id, advertiser_id) # Upload the HTML5 asset. html5_asset_id = util.upload_asset(advertiser_id, path_to_html5_asset_file, 'HTML').asset_identifier # Upload the backup image asset. backup_image_asset_id = util.upload_asset(advertiser_id, path_to_backup_image_file, 'HTML_IMAGE').asset_identifier # Construct the creative structure. creative = DfareportingUtils::API_NAMESPACE::Creative.new( advertiser_id: advertiser_id, backup_image_click_through_url: DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new( landing_page_id: default_landing_page.id ), backup_image_reporting_label: 'backup', backup_image_target_window: DfareportingUtils::API_NAMESPACE::TargetWindow.new( target_window_option: 'NEW_WINDOW' ), click_tags: [ DfareportingUtils::API_NAMESPACE::ClickTag.new( event_name: 'exit', name: 'click_tag', click_through_url: DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new( landing_page_id: default_landing_page.id ) ) ], creative_assets: [ DfareportingUtils::API_NAMESPACE::CreativeAsset.new( asset_identifier: html5_asset_id, role: 'PRIMARY' ), DfareportingUtils::API_NAMESPACE::CreativeAsset.new( asset_identifier: backup_image_asset_id, role: 'BACKUP_IMAGE' ) ], name: 'Example HTML5 display creative', size: DfareportingUtils::API_NAMESPACE::Size.new(id: size_id), type: 'DISPLAY' )
-
Guarde la creatividad. Para ello, llama a
creatives.insert()
. Se debe especificar un ID del anunciante al que se asociará esta creatividad.# Insert the creative. result = service.insert_creative(profile_id, creative)
-
(Opcional) Asocia la creatividad a una campaña. Para ello, se debe llamar a
campaignCreativeAssociations.insert()
y pasar los IDs de la campaña y de la creatividad.# Create a new creative-campaign association to insert association = DfareportingUtils::API_NAMESPACE::CampaignCreativeAssociation.new( creative_id: creative_id ) # Insert the advertiser group. result = service.insert_campaign_creative_association(profile_id, campaign_id, association)
Crear un anuncio
Un Ad
es el vínculo entre un Creative
y un Placement
. Un elemento Ad
se puede vincular a una o más posiciones, y contiene una o más creatividades.
Puedes crear un Ad
de forma explícita o implícita.
Explícitamente
C#
-
Cree un objeto
CreativeAssignment
para cada creatividad con la que se deba asociar este anuncio. Asegúrate de configurar el campoCreativeAssignment.active
como verdadero.// Create a click-through URL. ClickThroughUrl clickThroughUrl = new ClickThroughUrl(); clickThroughUrl.DefaultLandingPage = true; // Create a creative assignment. CreativeAssignment creativeAssignment = new CreativeAssignment(); creativeAssignment.Active = true; creativeAssignment.CreativeId = creativeId; creativeAssignment.ClickThroughUrl = clickThroughUrl;
-
Crea un objeto
CreativeRotation
para almacenar losCreativeAssignment
. Si crea un grupo de rotación, asegúrese de establecer los demás campos obligatorios de rotación de creatividades.// Create a creative rotation. CreativeRotation creativeRotation = new CreativeRotation(); creativeRotation.CreativeAssignments = new List<CreativeAssignment>() { creativeAssignment };
-
Crea un objeto
PlacementAssignment
para cada posición con la que se debe asociar este anuncio. Asegúrate de configurar el campoPlacementAssignment.active
como verdadero.// Create a placement assignment. PlacementAssignment placementAssignment = new PlacementAssignment(); placementAssignment.Active = true; placementAssignment.PlacementId = placementId;
-
Crea un objeto
Ad
. Configura CreativeRotation en el campocreativeRotation
del objetoAd
y placementAssignments en el arrayplacementAssignments
del objetoAd
.// Create a delivery schedule. DeliverySchedule deliverySchedule = new DeliverySchedule(); deliverySchedule.ImpressionRatio = 1; deliverySchedule.Priority = "AD_PRIORITY_01"; DateTime startDate = DateTime.Now; DateTime endDate = Convert.ToDateTime(campaign.EndDate); // Create a rotation group. Ad rotationGroup = new Ad(); rotationGroup.Active = true; rotationGroup.CampaignId = campaignId; rotationGroup.CreativeRotation = creativeRotation; rotationGroup.DeliverySchedule = deliverySchedule; rotationGroup.StartTime = startDate; rotationGroup.EndTime = endDate; rotationGroup.Name = adName; rotationGroup.PlacementAssignments = new List<PlacementAssignment>() { placementAssignment }; rotationGroup.Type = "AD_SERVING_STANDARD_AD";
-
Llama a
ads.insert()
para guardar el anuncio.// Insert the rotation group. Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();
Java
-
Cree un objeto
CreativeAssignment
para cada creatividad con la que se deba asociar este anuncio. Asegúrate de configurar el campoCreativeAssignment.active
como verdadero.// Create a click-through URL. ClickThroughUrl clickThroughUrl = new ClickThroughUrl(); clickThroughUrl.setDefaultLandingPage(true); // Create a creative assignment. CreativeAssignment creativeAssignment = new CreativeAssignment(); creativeAssignment.setActive(true); creativeAssignment.setCreativeId(creativeId); creativeAssignment.setClickThroughUrl(clickThroughUrl);
-
Crea un objeto
CreativeRotation
para almacenar losCreativeAssignment
. Si crea un grupo de rotación, asegúrese de establecer los demás campos obligatorios de rotación de creatividades.// Create a creative rotation. CreativeRotation creativeRotation = new CreativeRotation(); creativeRotation.setCreativeAssignments(ImmutableList.of(creativeAssignment));
-
Crea un objeto
PlacementAssignment
para cada posición con la que se debe asociar este anuncio. Asegúrate de configurar el campoPlacementAssignment.active
como verdadero.// Create a placement assignment. PlacementAssignment placementAssignment = new PlacementAssignment(); placementAssignment.setActive(true); placementAssignment.setPlacementId(placementId);
-
Crea un objeto
Ad
. Configura CreativeRotation en el campocreativeRotation
del objetoAd
y placementAssignments en el arrayplacementAssignments
del objetoAd
.// Create a delivery schedule. DeliverySchedule deliverySchedule = new DeliverySchedule(); deliverySchedule.setImpressionRatio(1L); deliverySchedule.setPriority("AD_PRIORITY_01"); DateTime startDate = new DateTime(new Date()); DateTime endDate = new DateTime(campaign.getEndDate().getValue()); // Create a rotation group. Ad rotationGroup = new Ad(); rotationGroup.setActive(true); rotationGroup.setCampaignId(campaignId); rotationGroup.setCreativeRotation(creativeRotation); rotationGroup.setDeliverySchedule(deliverySchedule); rotationGroup.setStartTime(startDate); rotationGroup.setEndTime(endDate); rotationGroup.setName(adName); rotationGroup.setPlacementAssignments(ImmutableList.of(placementAssignment)); rotationGroup.setType("AD_SERVING_STANDARD_AD");
-
Llama a
ads.insert()
para guardar el anuncio.// Insert the rotation group. Ad result = reporting.ads().insert(profileId, rotationGroup).execute();
PHP
-
Cree un objeto
CreativeAssignment
para cada creatividad con la que se deba asociar este anuncio. Asegúrate de configurar el campoCreativeAssignment.active
como verdadero.// Create a click-through URL. $url = new Google_Service_Dfareporting_ClickThroughUrl(); $url->setDefaultLandingPage(true); // Create a creative assignment. $creativeAssignment = new Google_Service_Dfareporting_CreativeAssignment(); $creativeAssignment->setActive(true); $creativeAssignment->setCreativeId($values['creative_id']); $creativeAssignment->setClickThroughUrl($url);
-
Crea un objeto
CreativeRotation
para almacenar losCreativeAssignment
. Si crea un grupo de rotación, asegúrese de establecer los demás campos obligatorios de rotación de creatividades.// Create a creative rotation. $creativeRotation = new Google_Service_Dfareporting_CreativeRotation(); $creativeRotation->setCreativeAssignments([$creativeAssignment]);
-
Crea un objeto
PlacementAssignment
para cada posición con la que se debe asociar este anuncio. Asegúrate de configurar el campoPlacementAssignment.active
como verdadero.// Create a placement assignment. $placementAssignment = new Google_Service_Dfareporting_PlacementAssignment(); $placementAssignment->setActive(true); $placementAssignment->setPlacementId($values['placement_id']);
-
Crea un objeto
Ad
. Configura CreativeRotation en el campocreativeRotation
del objetoAd
y placementAssignments en el arrayplacementAssignments
del objetoAd
.// Create a delivery schedule. $deliverySchedule = new Google_Service_Dfareporting_DeliverySchedule(); $deliverySchedule->setImpressionRatio(1); $deliverySchedule->SetPriority('AD_PRIORITY_01'); $startDate = new DateTime('today'); $endDate = new DateTime($campaign->getEndDate()); // Create a rotation group. $ad = new Google_Service_Dfareporting_Ad(); $ad->setActive(true); $ad->setCampaignId($values['campaign_id']); $ad->setCreativeRotation($creativeRotation); $ad->setDeliverySchedule($deliverySchedule); $ad->setStartTime($startDate->format('Y-m-d') . 'T23:59:59Z'); $ad->setEndTime($endDate->format('Y-m-d') . 'T00:00:00Z'); $ad->setName($values['ad_name']); $ad->setPlacementAssignments([$placementAssignment]); $ad->setType('AD_SERVING_STANDARD_AD');
-
Llama a
ads.insert()
para guardar el anuncio.$result = $this->service->ads->insert($values['user_profile_id'], $ad);
Python
-
Cree un objeto
CreativeAssignment
para cada creatividad con la que se deba asociar este anuncio. Asegúrate de configurar el campoCreativeAssignment.active
como verdadero.# Construct creative assignment. creative_assignment = { 'active': 'true', 'creativeId': creative_id, 'clickThroughUrl': { 'defaultLandingPage': 'true' } }
-
Crea un objeto
CreativeRotation
para almacenar losCreativeAssignment
. Si crea un grupo de rotación, asegúrese de establecer los demás campos obligatorios de rotación de creatividades.# Construct creative rotation. creative_rotation = { 'creativeAssignments': [creative_assignment], 'type': 'CREATIVE_ROTATION_TYPE_RANDOM', 'weightCalculationStrategy': 'WEIGHT_STRATEGY_OPTIMIZED' }
-
Crea un objeto
PlacementAssignment
para cada posición con la que se debe asociar este anuncio. Asegúrate de configurar el campoPlacementAssignment.active
como verdadero.# Construct placement assignment. placement_assignment = { 'active': 'true', 'placementId': placement_id, }
-
Crea un objeto
Ad
. Configura CreativeRotation en el campocreativeRotation
del objetoAd
y placementAssignments en el arrayplacementAssignments
del objetoAd
.# Construct delivery schedule. delivery_schedule = { 'impressionRatio': '1', 'priority': 'AD_PRIORITY_01' } # Construct and save ad. ad = { 'active': 'true', 'campaignId': campaign_id, 'creativeRotation': creative_rotation, 'deliverySchedule': delivery_schedule, 'endTime': '%sT00:00:00Z' % campaign['endDate'], 'name': 'Test Rotation Group', 'placementAssignments': [placement_assignment], 'startTime': '%sT23:59:59Z' % time.strftime('%Y-%m-%d'), 'type': 'AD_SERVING_STANDARD_AD' }
-
Llama a
ads.insert()
para guardar el anuncio.request = service.ads().insert(profileId=profile_id, body=ad) # Execute request and print response. response = request.execute()
Rita
-
Cree un objeto
CreativeAssignment
para cada creatividad con la que se deba asociar este anuncio. Asegúrate de configurar el campoCreativeAssignment.active
como verdadero.# Construct creative assignment. creative_assignment = DfareportingUtils::API_NAMESPACE::CreativeAssignment.new( active: true, creative_id: creative_id, click_through_url: DfareportingUtils::API_NAMESPACE::ClickThroughUrl.new( default_landing_page: true ) )
-
Crea un objeto
CreativeRotation
para almacenar losCreativeAssignment
. Si crea un grupo de rotación, asegúrese de establecer los demás campos obligatorios de rotación de creatividades.# Construct creative rotation. creative_rotation = DfareportingUtils::API_NAMESPACE::CreativeRotation.new( creative_assignments: [creative_assignment], type: 'CREATIVE_ROTATION_TYPE_RANDOM', weight_calculation_strategy: 'WEIGHT_STRATEGY_OPTIMIZED' )
-
Crea un objeto
PlacementAssignment
para cada posición con la que se debe asociar este anuncio. Asegúrate de configurar el campoPlacementAssignment.active
como verdadero.# Construct placement assignment. placement_assignment = DfareportingUtils::API_NAMESPACE::PlacementAssignment.new( active: true, placement_id: placement_id )
-
Crea un objeto
Ad
. Configura CreativeRotation en el campocreativeRotation
del objetoAd
y placementAssignments en el arrayplacementAssignments
del objetoAd
.# Construct delivery schedule. delivery_schedule = DfareportingUtils::API_NAMESPACE::DeliverySchedule.new( impression_ratio: 1, priority: 'AD_PRIORITY_01' ) # Construct and save ad. ad = DfareportingUtils::API_NAMESPACE::Ad.new( active: true, campaign_id: campaign_id, creative_rotation: creative_rotation, delivery_schedule: delivery_schedule, end_time: format('%sT00:00:00Z', campaign.end_date), name: 'Example Rotation Group', placement_assignments: [placement_assignment], start_time: format('%sT23:59:59Z', Time.now.strftime('%Y-%m-%d')), type: 'AD_SERVING_STANDARD_AD' )
-
Llama a
ads.insert()
para guardar el anuncio.result = service.insert_ad(profile_id, ad)
Implícitamente
C#
-
Crea y guarda un
Placement
. -
Crea y guarda un
Creative
. -
Asocia el
Creative
con el mismoCampaign
que se usa para elPlacement
llamando acampaignCreativeAssociations.insert()
(consulta el paso 4 en la sección Cómo crear una creatividad). Esto creará un anuncio predeterminado asociado tanto a la creatividad como a la posición.// Create the campaign creative association structure. CampaignCreativeAssociation association = new CampaignCreativeAssociation(); association.CreativeId = creativeId; // Insert the association. CampaignCreativeAssociation result = service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();
Java
-
Crea y guarda un
Placement
. -
Crea y guarda un
Creative
. -
Asocia el
Creative
con el mismoCampaign
que se usa para elPlacement
llamando acampaignCreativeAssociations.insert()
(consulta el paso 4 en la sección Cómo crear una creatividad). Esto creará un anuncio predeterminado asociado tanto a la creatividad como a la posición.// Create the campaign creative association structure. CampaignCreativeAssociation association = new CampaignCreativeAssociation(); association.setCreativeId(creativeId); // Insert the association. CampaignCreativeAssociation result = reporting .campaignCreativeAssociations().insert(profileId, campaignId, association) .execute();
PHP
-
Crea y guarda un
Placement
. -
Crea y guarda un
Creative
. -
Asocia el
Creative
con el mismoCampaign
que se usa para elPlacement
llamando acampaignCreativeAssociations.insert()
(consulta el paso 4 en la sección Cómo crear una creatividad). Esto creará un anuncio predeterminado asociado tanto a la creatividad como a la posición.$association = new Google_Service_Dfareporting_CampaignCreativeAssociation(); $association->setCreativeId($values['creative_id']); $result = $this->service->campaignCreativeAssociations->insert( $values['user_profile_id'], $values['campaign_id'], $association );
Python
-
Crea y guarda un
Placement
. -
Crea y guarda un
Creative
. -
Asocia el
Creative
con el mismoCampaign
que se usa para elPlacement
llamando acampaignCreativeAssociations.insert()
(consulta el paso 4 en la sección Cómo crear una creatividad). Esto creará un anuncio predeterminado asociado tanto a la creatividad como a la posición.# Construct the request. association = { 'creativeId': creative_id } request = service.campaignCreativeAssociations().insert( profileId=profile_id, campaignId=campaign_id, body=association) # Execute request and print response. response = request.execute()
Rita
-
Crea y guarda un
Placement
. -
Crea y guarda un
Creative
. -
Asocia el
Creative
con el mismoCampaign
que se usa para elPlacement
llamando acampaignCreativeAssociations.insert()
(consulta el paso 4 en la sección Cómo crear una creatividad). Esto creará un anuncio predeterminado asociado tanto a la creatividad como a la posición.# Create a new creative-campaign association to insert association = DfareportingUtils::API_NAMESPACE::CampaignCreativeAssociation.new( creative_id: creative_id ) # Insert the advertiser group. result = service.insert_campaign_creative_association(profile_id, campaign_id, association)
Cuando creas un anuncio de forma implícita, se guarda el paso adicional de crear un Ad
. Ten en cuenta que esto solo puede hacerse si no existe un anuncio predeterminado del tamaño especificado en tu campaña.
Buscar objetos
Para buscar objetos, puedes llamar a la operación list()
que expone el servicio que define el objeto que se buscará y especificar los criterios opcionales adecuados para ese tipo de objeto. Por ejemplo, para buscar objetos de anuncios, debes llamar a ads.list()
. Los criterios opcionales exponen un conjunto de propiedades adecuadas para ese objeto: completa todas las propiedades que quieras buscar. La búsqueda mostrará solo los objetos que cumplan con todos los criterios. no puedes hacer una búsqueda que coincida con ningún criterio. Las cadenas admiten el comodín *, no distinguen mayúsculas de minúsculas y coinciden dentro de cadenas más grandes.
Para mejorar el rendimiento, se pueden solicitar respuestas parciales con el parámetro fields
. Esto le indica al servidor que muestre solo los campos que especifiques, en lugar de la representación completa de los recursos. Puedes encontrar más información sobre este tema en la guía Sugerencias sobre rendimiento.
Paging
A veces, no es conveniente recuperar todos los resultados de una solicitud list()
. Por ejemplo, es posible que solo te interesen los 10 anuncios más recientes de un grupo de miles. Para ayudar con esto, muchos métodos list()
te permiten solicitar menos resultados mediante un proceso conocido como paginación.
Los métodos que admiten la paginación muestran subconjuntos de resultados en grupos llamados páginas. La cantidad máxima de resultados por página es 1,000 (el valor predeterminado). Puedes cambiar la cantidad de resultados por página si configuras maxResults
y puedes iterar a través de las páginas con el nextPageToken
que se muestra en la respuesta:
C#
// Limit the fields returned. String fields = "nextPageToken,ads(advertiserId,id,name)"; AdsListResponse result; String nextPageToken = null; do { // Create and execute the ad list request. AdsResource.ListRequest request = service.Ads.List(profileId); request.Active = true; request.Fields = fields; request.PageToken = nextPageToken; result = request.Execute(); foreach (Ad ad in result.Ads) { Console.WriteLine( "Ad with ID {0} and name \"{1}\" is associated with advertiser" + " ID {2}.", ad.Id, ad.Name, ad.AdvertiserId); } // Update the next page token. nextPageToken = result.NextPageToken; } while (result.Ads.Any() && !String.IsNullOrEmpty(nextPageToken));
Java
// Limit the fields returned. String fields = "nextPageToken,ads(advertiserId,id,name)"; AdsListResponse result; String nextPageToken = null; do { // Create and execute the ad list request. result = reporting.ads().list(profileId).setActive(true).setFields(fields) .setPageToken(nextPageToken).execute(); for (Ad ad : result.getAds()) { System.out.printf( "Ad with ID %d and name \"%s\" is associated with advertiser ID %d.%n", ad.getId(), ad.getName(), ad.getAdvertiserId()); } // Update the next page token. nextPageToken = result.getNextPageToken(); } while (!result.getAds().isEmpty() && !Strings.isNullOrEmpty(nextPageToken));
PHP
$response = null; $pageToken = null; do { // Create and execute the ads list request. $response = $this->service->ads->listAds( $values['user_profile_id'], ['active' => true, 'pageToken' => $pageToken] ); foreach ($response->getAds() as $ads) { $this->printResultsTableRow($ads); } // Update the next page token. $pageToken = $response->getNextPageToken(); } while (!empty($response->getAds()) && !empty($pageToken));
Python
# Construct the request. request = service.ads().list(profileId=profile_id, active=True) while True: # Execute request and print response. response = request.execute() for ad in response['ads']: print 'Found ad with ID %s and name "%s".' % (ad['id'], ad['name']) if response['ads'] and response['nextPageToken']: request = service.ads().list_next(request, response) else: break
Rita
token = nil loop do result = service.list_ads(profile_id, page_token: token, fields: 'nextPageToken,ads(id,name)') # Display results. if result.ads.any? result.ads.each do |ad| puts format('Found ad with ID %d and name "%s".', ad.id, ad.name) end token = result.next_page_token else # Stop paging if there are no more results. token = nil end break if token.to_s.empty? end
Genera etiquetas de Floodlight
Las etiquetas de Floodlight son etiquetas HTML incorporadas en una página, que se utilizan para hacer un seguimiento de las acciones de los usuarios (p.ej., compras) dentro de un sitio. Para generar etiquetas de Floodlight, necesitas un FloodlightActivity
.
que pertenece a FloodlightActivityGroup
:
C#
-
Crea un nuevo grupo de actividades de Floodlight y pasa los valores para
name
,type
yfloodlightConfigurationId
.// Create the floodlight activity group. FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup(); floodlightActivityGroup.Name = groupName; floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId; floodlightActivityGroup.Type = "COUNTER";
-
Guarda el grupo de actividades de Floodlight llamando a
floodlightActivityGroups.insert()
, que mostrará el ID del grupo nuevo.// Insert the activity group. FloodlightActivityGroup result = service.FloodlightActivityGroups.Insert(floodlightActivityGroup, profileId).Execute();
-
Crea una nueva actividad de Floodlight y asígnale el ID del grupo de actividades de Floodlight que acabas de crear, así como todos los demás campos obligatorios.
// Set floodlight activity structure. FloodlightActivity activity = new FloodlightActivity(); activity.CountingMethod = "STANDARD_COUNTING"; activity.Name = activityName; activity.FloodlightActivityGroupId = activityGroupId; activity.FloodlightTagType = "GLOBAL_SITE_TAG"; activity.ExpectedUrl = url;
-
Guarda la actividad nueva llamando a
floodlightActivities.insert()
, que mostrará el ID de la actividad nueva.// Create the floodlight tag activity. FloodlightActivity result = service.FloodlightActivities.Insert(activity, profileId).Execute();
-
Llama a
floodlightActivities.generatetag()
con elfloodlightActivityId
de tu actividad nueva para generar las etiquetas. Envíe las etiquetas al webmaster del sitio web del anunciante.// Generate the floodlight activity tag. FloodlightActivitiesResource.GeneratetagRequest request = service.FloodlightActivities.Generatetag(profileId); request.FloodlightActivityId = activityId; FloodlightActivitiesGenerateTagResponse response = request.Execute();
Java
-
Crea un nuevo grupo de actividades de Floodlight y pasa los valores para
name
,type
yfloodlightConfigurationId
.// Create the floodlight activity group. FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup(); floodlightActivityGroup.setName(groupName); floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId); floodlightActivityGroup.setType("COUNTER");
-
Guarda el grupo de actividades de Floodlight llamando a
floodlightActivityGroups.insert()
, que mostrará el ID del grupo nuevo.// Insert the activity group. FloodlightActivityGroup result = reporting.floodlightActivityGroups().insert(profileId, floodlightActivityGroup).execute();
-
Crea una nueva actividad de Floodlight y asígnale el ID del grupo de actividades de Floodlight que acabas de crear, así como todos los demás campos obligatorios.
// Set floodlight activity structure. FloodlightActivity activity = new FloodlightActivity(); activity.setName(activityName); activity.setCountingMethod("STANDARD_COUNTING"); activity.setExpectedUrl(url); activity.setFloodlightActivityGroupId(activityGroupId); activity.setFloodlightTagType("GLOBAL_SITE_TAG");
-
Guarda la actividad nueva llamando a
floodlightActivities.insert()
, que mostrará el ID de la actividad nueva.// Create the floodlight tag activity. FloodlightActivity result = reporting.floodlightActivities().insert(profileId, activity).execute();
-
Llama a
floodlightActivities.generatetag()
con elfloodlightActivityId
de tu actividad nueva para generar las etiquetas. Envíe las etiquetas al webmaster del sitio web del anunciante.// Generate the floodlight activity tag. Generatetag request = reporting.floodlightActivities().generatetag(profileId); request.setFloodlightActivityId(activityId); FloodlightActivitiesGenerateTagResponse response = request.execute();
PHP
-
Crea un nuevo grupo de actividades de Floodlight y pasa los valores para
name
,type
yfloodlightConfigurationId
.$group = new Google_Service_Dfareporting_FloodlightActivityGroup(); $group->setFloodlightConfigurationId($values['configuration_id']); $group->setName($values['group_name']); $group->setType('COUNTER');
-
Guarda el grupo de actividades de Floodlight llamando a
floodlightActivityGroups.insert()
, que mostrará el ID del grupo nuevo.$result = $this->service->floodlightActivityGroups->insert( $values['user_profile_id'], $group );
-
Crea una nueva actividad de Floodlight y asígnale el ID del grupo de actividades de Floodlight que acabas de crear, además de todos los demás campos obligatorios.
$activity = new Google_Service_Dfareporting_FloodlightActivity(); $activity->setCountingMethod('STANDARD_COUNTING'); $activity->setExpectedUrl($values['url']); $activity->setFloodlightActivityGroupId($values['activity_group_id']); $activity->setFloodlightTagType('GLOBAL_SITE_TAG'); $activity->setName($values['activity_name']);
-
Guarda la actividad nueva llamando a
floodlightActivities.insert()
, que mostrará el ID de la actividad nueva.$result = $this->service->floodlightActivities->insert( $values['user_profile_id'], $activity );
-
Llama a
floodlightActivities.generatetag()
con elfloodlightActivityId
de tu actividad nueva para generar las etiquetas. Envíe las etiquetas al webmaster del sitio web del anunciante.$result = $this->service->floodlightActivities->generatetag( $values['user_profile_id'], ['floodlightActivityId' => $values['activity_id']] );
Python
-
Crea un nuevo grupo de actividades de Floodlight y pasa los valores para
name
,type
yfloodlightConfigurationId
.# Construct and save floodlight activity group. activity_group = { 'name': 'Test Floodlight Activity Group', 'floodlightConfigurationId': floodlight_config_id, 'type': 'COUNTER' }
-
Guarda el grupo de actividades de Floodlight llamando a
floodlightActivityGroups.insert()
, que mostrará el ID del grupo nuevo.request = service.floodlightActivityGroups().insert( profileId=profile_id, body=activity_group)
-
Crea una nueva actividad de Floodlight y asígnale el ID del grupo de actividades de Floodlight que acabas de crear, así como todos los demás campos obligatorios.
# Construct and save floodlight activity. floodlight_activity = { 'countingMethod': 'STANDARD_COUNTING', 'expectedUrl': 'http://www.google.com', 'floodlightActivityGroupId': activity_group_id, 'floodlightTagType': 'GLOBAL_SITE_TAG', 'name': 'Test Floodlight Activity' }
-
Guarda la actividad nueva llamando a
floodlightActivities.insert()
, que mostrará el ID de la actividad nueva.request = service.floodlightActivities().insert( profileId=profile_id, body=floodlight_activity)
-
Llama a
floodlightActivities.generatetag()
con elfloodlightActivityId
de tu actividad nueva para generar las etiquetas. Envíe las etiquetas al webmaster del sitio web del anunciante.# Construct the request. request = service.floodlightActivities().generatetag( profileId=profile_id, floodlightActivityId=activity_id) # Execute request and print response. response = request.execute()
Rita
-
Crea un nuevo grupo de actividades de Floodlight y pasa los valores para
name
,type
yfloodlightConfigurationId
.# Create a new floodlight activity group resource to insert. activity_group = DfareportingUtils::API_NAMESPACE::FloodlightActivityGroup.new( floodlight_configuration_id: floodlight_config_id, name: format('Example Floodlight Activity Group #%s', SecureRandom.hex(3)), type: 'COUNTER' )
-
Guarda el grupo de actividades de Floodlight llamando a
floodlightActivityGroups.insert()
, que mostrará el ID del grupo nuevo.# Insert the floodlight activity group. result = service.insert_floodlight_activity_group(profile_id, activity_group)
-
Crea una nueva actividad de Floodlight y asígnale el ID del grupo de actividades de Floodlight que acabas de crear, además de todos los demás campos obligatorios.
# Create a new floodlight activity resource to insert. activity = DfareportingUtils::API_NAMESPACE::FloodlightActivity.new( counting_method: 'STANDARD_COUNTING', expected_url: 'http://www.google.com', floodlight_activity_group_id: activity_group_id, floodlight_tag_type: 'GLOBAL_SITE_TAG', name: format('Example Floodlight Activity #%s', SecureRandom.hex(3)) )
-
Guarda la actividad nueva llamando a
floodlightActivities.insert()
, que mostrará el ID de la actividad nueva.# Insert the floodlight activity. result = service.insert_floodlight_activity(profile_id, activity)
-
Llama a
floodlightActivities.generatetag()
con elfloodlightActivityId
de tu actividad nueva para generar las etiquetas. Envíe las etiquetas al webmaster del sitio web del anunciante.# Construct the request. result = service.generatetag_floodlight_activity(profile_id, floodlight_activity_id: activity_id)
Genera etiquetas de posición
El último paso consiste en generar etiquetas HTML para enviarlas al publicador y mostrar sus anuncios. Para generar las etiquetas a través de la API, realiza una solicitud a placements.generatetags()
y especifica un conjunto de placementIds
y tagFormats
.
C#
// Generate the placement activity tags. PlacementsResource.GeneratetagsRequest request = service.Placements.Generatetags(profileId); request.CampaignId = campaignId; request.TagFormats = PlacementsResource.GeneratetagsRequest.TagFormatsEnum.PLACEMENTTAGIFRAMEJAVASCRIPT; request.PlacementIds = placementId.ToString(); PlacementsGenerateTagsResponse response = request.Execute();
Java
// Generate the placement activity tags. Generatetags request = reporting.placements().generatetags(profileId); request.setCampaignId(campaignId); request.setTagFormats(tagFormats); request.setPlacementIds(ImmutableList.of(placementId)); PlacementsGenerateTagsResponse response = request.execute();
PHP
$placementTags = $this->service->placements->generatetags( $values['user_profile_id'], ['campaignId' => $values['campaign_id'], 'placementIds' => [$values['placement_id']], 'tagFormats' => ['PLACEMENT_TAG_STANDARD', 'PLACEMENT_TAG_IFRAME_JAVASCRIPT', 'PLACEMENT_TAG_INTERNAL_REDIRECT'] ] );
Python
# Construct the request. request = service.placements().generatetags( profileId=profile_id, campaignId=campaign_id, placementIds=[placement_id]) # Execute request and print response. response = request.execute()
Ruby
# Construct the request. result = service.generate_placement_tags(profile_id, campaign_id: campaign_id, placement_ids: [placement_id])