Tareas comunes de tráfico

En esta página, se describe cómo realizar algunas de las tareas de tráfico más comunes con la API de DCM/DFA Reporting and Trafficking.

Sugerencias generales para la codificación

  • Propiedades y parámetros obligatorios y opcionales: Consulta la documentación de referencia para saber si una propiedad o un parámetro son obligatorios para una llamada a la API.
  • Búsquedas de nombres con comodines: Puedes usar el comodín asterisco (*) cuando busques nombres de objetos. Un asterisco coincide con cero o más caracteres. La API también admite una búsqueda implícita de subcadenas, por lo que una búsqueda de "abc" buscará implícitamente "*abc*".
  • Actualización vs. parche: Para modificar un objeto existente, tienes dos opciones:
    1. Actualización: Cuando se actualiza un objeto, todos los campos se reemplazan en la inserción. Es importante que cargues el objeto que deseas actualizar y que realices los cambios necesarios en él. De lo contrario, se anularán todos los campos que no estén presentes en la solicitud de actualización.
    2. Parcheo: Cuando se aplica un parche, solo se sobrescriben los campos especificados en la inserción. En este caso, puedes crear un objeto nuevo, asignarle el mismo ID que el objeto que se actualizará, establecer los campos que se actualizarán y ejecutar la solicitud de parche.
  • Sizes: 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ándares, y puedes agregar tus propios tamaños personalizados a esta lista.
  • Fechas y horas: Puedes guardar fechas y horas en formato RFC 3339 con zonas horarias locales. Todos los valores que devuelve la API están en UTC. Esto difiere del sitio web, en el que las fechas y las horas se muestran en la zona horaria que configuraste (la hora de América/Nueva York de forma predeterminada).

Crea un anunciante

C#

  1. Crea un objeto Advertiser y establece sus propiedades obligatorias name y status.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.Name = advertiserName;
    advertiser.Status = "APPROVED";
  2. Llama a advertisers.insert() para guardar el anunciante.
    // Create the advertiser.
    Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();

Java

  1. Crea un objeto Advertiser y establece sus propiedades obligatorias name y status.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.setName(advertiserName);
    advertiser.setStatus("APPROVED");
  2. Llama a advertisers.insert() para guardar el anunciante.
    // Create the advertiser.
    Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();

PHP

  1. Crea un objeto Advertiser y establece sus propiedades obligatorias name y status.
    $advertiser = new Google_Service_Dfareporting_Advertiser();
    $advertiser->setName($values['advertiser_name']);
    $advertiser->setStatus('APPROVED');
  2. Llama a advertisers.insert() para guardar el anunciante.
    $result = $this->service->advertisers->insert(
        $values['user_profile_id'],
        $advertiser
    );

Python

  1. Crea un objeto Advertiser y establece sus propiedades obligatorias name y status.
    # Construct and save advertiser.
    advertiser = {
        'name': 'Test Advertiser',
        'status': 'APPROVED'
    }
  2. 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()

Ruby

  1. Crea un objeto Advertiser y establece sus propiedades obligatorias name y status.
    # Create a new advertiser resource to insert.
    advertiser = DfareportingUtils::API_NAMESPACE::Advertiser.new(
      name: format('Example Advertiser #%s', SecureRandom.hex(3)),
      status: 'APPROVED'
    )
  2. Llama a advertisers.insert() para guardar el anunciante.
    # Insert the advertiser.
    result = service.insert_advertiser(profile_id, advertiser)

Crear una campaña

C#

  1. Crea un objeto Campaign y establece sus propiedades obligatorias:

    • advertiserId: Es 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 se asignó una a ese anuncio. Puedes buscar páginas de destino existentes llamando a advertiserLandingPages.list o crear una nueva llamando a advertiserLandingPages.insert.
    • Fechas de inicio y finalización: Deben ser posteriores a la fecha actual y pueden ser exactas hasta el día. Consulta el viñeta de fechas y horas en Información general sobre la codificación para obtener más detalles. Las fechas de los anuncios individuales pueden exceder la fecha de finalización para permitir que un publicador intente cumplir un contrato para una cantidad especificada de acciones, si no se cumplió en la fecha de finalización de la campaña determinada.
    // 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));
  2. Llama a campaigns.insert() para guardar la campaña.

    // Insert the campaign.
    Campaign result = service.Campaigns.Insert(campaign, profileId).Execute();

Java

  1. Crea un objeto Campaign y establece sus propiedades obligatorias:

    • advertiserId: Es 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 se asignó una a ese anuncio. Puedes buscar páginas de destino existentes llamando a advertiserLandingPages.list o crear una nueva llamando a advertiserLandingPages.insert.
    • Fechas de inicio y finalización: Deben ser posteriores a la fecha actual y pueden ser exactas hasta el día. Consulta el viñeta de fechas y horas en Información general sobre la codificación para obtener más detalles. Las fechas de los anuncios individuales pueden exceder la fecha de finalización para permitir que un publicador intente cumplir un contrato para una cantidad especificada de acciones, si no se cumplió en la fecha de finalización de la campaña determinada.
    // 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);
  2. Llama a campaigns.insert() para guardar la campaña.

    // Insert the campaign.
    Campaign result = reporting.campaigns().insert(profileId, campaign).execute();

PHP

  1. Crea un objeto Campaign y establece sus propiedades obligatorias:

    • advertiserId: Es 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 se asignó una a ese anuncio. Puedes buscar páginas de destino existentes llamando a advertiserLandingPages.list o crear una nueva llamando a advertiserLandingPages.insert.
    • Fechas de inicio y finalización: Deben ser posteriores a la fecha actual y pueden ser exactas hasta el día. Consulta el viñeta de fechas y horas en Información general sobre la codificación para obtener más detalles. Las fechas de los anuncios individuales pueden exceder la fecha de finalización para permitir que un publicador intente cumplir un contrato para una cantidad especificada de acciones, si no se cumplió en la fecha de finalización de la campaña determinada.
    $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'));
  2. Llama a campaigns.insert() para guardar la campaña.

    $result = $this->service->campaigns->insert(
        $values['user_profile_id'],
        $campaign
    );

Python

  1. Crea un objeto Campaign y establece sus propiedades obligatorias:

    • advertiserId: Es 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 se asignó una a ese anuncio. Puedes buscar páginas de destino existentes llamando a advertiserLandingPages.list o crear una nueva llamando a advertiserLandingPages.insert.
    • Fechas de inicio y finalización: Deben ser posteriores a la fecha actual y pueden ser exactas hasta el día. Consulta el viñeta de fechas y horas en Información general sobre la codificación para obtener más detalles. Las fechas de los anuncios individuales pueden exceder la fecha de finalización para permitir que un publicador intente cumplir un contrato para una cantidad especificada de acciones, si no se cumplió en la fecha de finalización de la campaña determinada.
    # 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'
    }
  2. 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()

Ruby

  1. Crea un objeto Campaign y establece sus propiedades obligatorias:

    • advertiserId: Es 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 se asignó una a ese anuncio. Puedes buscar páginas de destino existentes llamando a advertiserLandingPages.list o crear una nueva llamando a advertiserLandingPages.insert.
    • Fechas de inicio y finalización: Deben ser posteriores a la fecha actual y pueden ser exactas hasta el día. Consulta el viñeta de fechas y horas en Información general sobre la codificación para obtener más detalles. Las fechas de los anuncios individuales pueden exceder la fecha de finalización para permitir que un publicador intente cumplir un contrato para una cantidad especificada de acciones, si no se cumplió en la fecha de finalización de la campaña determinada.
    # 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'
    )
  2. Llama a campaigns.insert() para guardar la campaña.

    # Insert the campaign.
    result = service.insert_campaign(profile_id, campaign)

Crea una posición

C#

  1. Crea un objeto Placement y establece las propiedades de posición requeridas (incluidos campaignId y siteId). Además, asegúrate de establecer el tipo y el tamaño de la posición con precisión para la posición que negociaste con tu 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;
  2. 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;
  3. Guarda el objeto Placement llamando a placements.insert(). Asegúrate de almacenar el ID que se devolvió si deseas usarlo para asignarlo a un anuncio o a una creatividad.
    // Insert the placement.
    Placement result = service.Placements.Insert(placement, profileId).Execute();

Java

  1. Crea un objeto Placement y establece las propiedades de posición requeridas (incluidos campaignId y siteId). Además, asegúrate de establecer el tipo y el tamaño de la posición con precisión para la posición que negociaste con tu 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);
  2. 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);
  3. Guarda el objeto Placement llamando a placements.insert(). Asegúrate de almacenar el ID que se devolvió si deseas usarlo para asignarlo a un anuncio o a una creatividad.
    // Insert the placement.
    Placement result = reporting.placements().insert(profileId, placement).execute();

PHP

  1. Crea un objeto Placement y establece las propiedades de posición requeridas (incluidos campaignId y siteId). Además, asegúrate de establecer el tipo y el tamaño de la posición con precisión para la posición que negociaste con tu 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);
  2. 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);
  3. Guarda el objeto Placement llamando a placements.insert(). Asegúrate de almacenar el ID que se devolvió si deseas usarlo para asignarlo a un anuncio o a una creatividad.
    // Insert the placement.
    $result = $this->service->placements->insert(
        $values['user_profile_id'],
        $placement
    );

Python

  1. Crea un objeto Placement y establece las propiedades de posición requeridas (incluidos campaignId y siteId). Además, asegúrate de establecer el tipo y el tamaño de la posición con precisión para la posición que negociaste con tu 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']
    }
  2. 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'
    }
  3. Guarda el objeto Placement llamando a placements.insert(). Asegúrate de almacenar el ID que se devolvió si deseas usarlo para asignarlo a un anuncio o a una creatividad.
    request = service.placements().insert(profileId=profile_id, body=placement)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. Crea un objeto Placement y establece las propiedades de posición requeridas (incluidos campaignId y siteId). Además, asegúrate de establecer el tipo y el tamaño de la posición con precisión para la posición que negociaste con tu 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']
    )
  2. 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
      )
  3. Guarda el objeto Placement llamando a placements.insert(). Asegúrate de almacenar el ID que se devolvió si deseas usarlo para asignarlo a un anuncio o a una creatividad.
    # Insert the placement strategy.
    result = service.insert_placement(profile_id, placement)

Subir elementos

Puedes subir muchos tipos de recursos a través de un proceso conocido como carga de contenido multimedia. Si bien este proceso es similar para todos los tipos de creatividad, algunos tipos pueden requerir que se pasen propiedades específicas como metadatos para que se puedan usar correctamente.

C#

  1. Crea un objeto assetIdentifier y establece las propiedades requeridas. Todos los recursos, sin importar su tipo o uso, deben especificar un assetIdentifier. Cuando se asigne el recurso a una creatividad, se usará este objeto para hacer referencia al recurso. Se requieren las siguientes propiedades:

    • La propiedad name, que será el nombre del activo en el servidor. El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se expondrá al navegador como el nombre del recurso, pero no tiene que ser el mismo que el 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 de devolución para ver si se cambió.
    • La propiedad type, que identifica el tipo de activo. Esta propiedad determinará 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;
  2. Llama a creativeAssets.insert() para subir el archivo. Realiza una carga de múltiples partes y pasa el assetIdentifier y el contenido del archivo como parte de la misma solicitud. Si la operación se realiza correctamente, se devolverá un recurso CreativeAsset con un assetIdentifier que usarás para asignar este activo 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

  1. Crea un objeto assetIdentifier y establece las propiedades requeridas. Todos los recursos, sin importar su tipo o uso, deben especificar un assetIdentifier. Cuando se asigne el recurso a una creatividad, se usará este objeto para hacer referencia al recurso. Se requieren las siguientes propiedades:

    • La propiedad name, que será el nombre del activo en el servidor. El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se expondrá al navegador como el nombre del recurso, pero no tiene que ser el mismo que el 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 de devolución para ver si se cambió.
    • La propiedad type, que identifica el tipo de activo. Esta propiedad determinará 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);
  2. Llama a creativeAssets.insert() para subir el archivo. Realiza una carga de múltiples partes y pasa el assetIdentifier y el contenido del archivo como parte de la misma solicitud. Si la operación se realiza correctamente, se devolverá un recurso CreativeAsset con un assetIdentifier que usarás para asignar este activo 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

  1. Crea un objeto assetIdentifier y establece las propiedades requeridas. Todos los recursos, sin importar su tipo o uso, deben especificar un assetIdentifier. Cuando se asigne el recurso a una creatividad, se usará este objeto para hacer referencia al recurso. Se requieren las siguientes propiedades:

    • La propiedad name, que será el nombre del activo en el servidor. El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se expondrá al navegador como el nombre del recurso, pero no tiene que ser el mismo que el 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 de devolución para ver si se cambió.
    • La propiedad type, que identifica el tipo de activo. Esta propiedad determinará 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);
  2. Llama a creativeAssets.insert() para subir el archivo. Realiza una carga de múltiples partes y pasa el assetIdentifier y el contenido del archivo como parte de la misma solicitud. Si la operación se realiza correctamente, se devolverá un recurso CreativeAsset con un assetIdentifier que usarás para asignar este activo 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

  1. Crea un objeto assetIdentifier y establece las propiedades requeridas. Todos los recursos, sin importar su tipo o uso, deben especificar un assetIdentifier. Cuando se asigne el recurso a una creatividad, se usará este objeto para hacer referencia al recurso. Se requieren las siguientes propiedades:

    • La propiedad name, que será el nombre del activo en el servidor. El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se expondrá al navegador como el nombre del recurso, pero no tiene que ser el mismo que el 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 de devolución para ver si se cambió.
    • La propiedad type, que identifica el tipo de activo. Esta propiedad determinará 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}}
  2. Llama a creativeAssets.insert() para subir el archivo. Realiza una carga de múltiples partes y pasa el assetIdentifier y el contenido del archivo como parte de la misma solicitud. Si la operación se realiza correctamente, se devolverá un recurso CreativeAsset con un assetIdentifier que usarás para asignar este activo 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()

Ruby

  1. Crea un objeto assetIdentifier y establece las propiedades requeridas. Todos los recursos, sin importar su tipo o uso, deben especificar un assetIdentifier. Cuando se asigne el recurso a una creatividad, se usará este objeto para hacer referencia al recurso. Se requieren las siguientes propiedades:

    • La propiedad name, que será el nombre del activo en el servidor. El nombre debe incluir una extensión que indique el tipo de archivo, como .png o .gif, y se expondrá al navegador como el nombre del recurso, pero no tiene que ser el mismo que el 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 de devolución para ver si se cambió.
    • La propiedad type, que identifica el tipo de activo. Esta propiedad determinará 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
      )
    )
  2. Llama a creativeAssets.insert() para subir el archivo. Realiza una carga de múltiples partes y pasa el assetIdentifier y el contenido del archivo como parte de la misma solicitud. Si la operación se realiza correctamente, se devolverá un recurso CreativeAsset con un assetIdentifier que usarás para asignar este activo 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
    )

Crea una creatividad

Un objeto Creative une un recurso existente. Según cómo uses las creatividades en la página de host, puedes crear objetos Creative de diferentes tipos de creatividad. Consulta la documentación de referencia para determinar qué tipo es el adecuado para ti.

En el siguiente ejemplo, se muestra cómo crear una nueva creatividad de pantalla HTML5.

C#

  1. Sube los recursos. Las diferentes creatividades requieren diferentes tipos y cantidades de recursos. Consulta Cómo subir recursos para obtener más detalles. Cada vez que subas un activo correctamente, recibirás un assetIdenfitier en la respuesta. Usarás el nombre y el tipo de archivo almacenados para hacer referencia a estos activos en tu creatividad, en lugar de un ID tradicional.
  2. Crea una creatividad y asígnale los valores adecuados. Crea una instancia de Creative y establece el type adecuado. No puedes cambiar el tipo de un objeto Creative después de guardarlo. Especifica los recursos por su AssetIdentifier y su role.
    // 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 };
  3. Guarda la creatividad. Para ello, llama a creatives.insert(). Es obligatorio especificar un ID de anunciante con el que se asociará esta creatividad.
    Creative result = service.Creatives.Insert(creative, profileId).Execute();
  4. (Opcional) Asocia la creatividad a una campaña. Para ello, llama a campaignCreativeAssociations.insert() y pasa los IDs de la campaña y 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

  1. Sube los recursos. Las diferentes creatividades requieren diferentes tipos y cantidades de recursos. Consulta Cómo subir recursos para obtener más detalles. Cada vez que subas un activo correctamente, recibirás un assetIdenfitier en la respuesta. Usarás el nombre y el tipo de archivo almacenados para hacer referencia a estos activos en tu creatividad, en lugar de un ID tradicional.
  2. Crea una creatividad y asígnale los valores adecuados. Crea una instancia de Creative y establece el type adecuado. No puedes cambiar el tipo de un objeto Creative después de guardarlo. Especifica los recursos por su AssetIdentifier y su role.
    // 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));
  3. Guarda la creatividad. Para ello, llama a creatives.insert(). Es obligatorio especificar un ID de anunciante con el que se asociará esta creatividad.
    Creative result = reporting.creatives().insert(profileId, creative).execute();
  4. (Opcional) Asocia la creatividad a una campaña. Para ello, llama a campaignCreativeAssociations.insert() y pasa los IDs de la campaña y 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

  1. Sube los recursos. Las diferentes creatividades requieren diferentes tipos y cantidades de recursos. Consulta Cómo subir recursos para obtener más detalles. Cada vez que subas un activo correctamente, recibirás un assetIdenfitier en la respuesta. Usarás el nombre y el tipo de archivo almacenados para hacer referencia a estos activos en tu creatividad, en lugar de un ID tradicional.
  2. Crea una creatividad y asígnale los valores adecuados. Crea una instancia de Creative y establece el type adecuado. No puedes cambiar el tipo de un objeto Creative después de guardarlo. Especifica los recursos por su AssetIdentifier y su role.
    $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]);
  3. Guarda la creatividad. Para ello, llama a creatives.insert(). Es obligatorio especificar un ID de anunciante con el que se asociará esta creatividad.
    $result = $this->service->creatives->insert(
        $values['user_profile_id'],
        $creative
    );
  4. (Opcional) Asocia la creatividad a una campaña. Para ello, llama a campaignCreativeAssociations.insert() y pasa los IDs de la campaña y 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

  1. Sube los recursos. Las diferentes creatividades requieren diferentes tipos y cantidades de recursos. Consulta Cómo subir recursos para obtener más detalles. Cada vez que subas un activo correctamente, recibirás un assetIdenfitier en la respuesta. Usarás el nombre y el tipo de archivo almacenados para hacer referencia a estos activos en tu creatividad, en lugar de un ID tradicional.
  2. Crea una creatividad y asígnale los valores adecuados. Crea una instancia de Creative y establece el type adecuado. No puedes cambiar el tipo de un objeto Creative después de guardarlo. Especifica los recursos por su AssetIdentifier y su role.
    # 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'
    }
  3. Guarda la creatividad. Para ello, llama a creatives.insert(). Es obligatorio especificar un ID de anunciante con el que se asociará esta creatividad.
    request = service.creatives().insert(profileId=profile_id, body=creative)
    
    # Execute request and print response.
    response = request.execute()
  4. (Opcional) Asocia la creatividad a una campaña. Para ello, llama a campaignCreativeAssociations.insert() y pasa los IDs de la campaña y 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()

Ruby

  1. Sube los recursos. Las diferentes creatividades requieren diferentes tipos y cantidades de recursos. Consulta Cómo subir recursos para obtener más detalles. Cada vez que subas un activo correctamente, recibirás un assetIdenfitier en la respuesta. Usarás el nombre y el tipo de archivo almacenados para hacer referencia a estos activos en tu creatividad, en lugar de un ID tradicional.
  2. Crea una creatividad y asígnale los valores adecuados. Crea una instancia de Creative y establece el type adecuado. No puedes cambiar el tipo de un objeto Creative después de guardarlo. Especifica los recursos por su AssetIdentifier y su role.
    # 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'
    )
  3. Guarda la creatividad. Para ello, llama a creatives.insert(). Es obligatorio especificar un ID de anunciante con el que se asociará esta creatividad.
    # Insert the creative.
    result = service.insert_creative(profile_id, creative)
  4. (Opcional) Asocia la creatividad a una campaña. Para ello, llama a campaignCreativeAssociations.insert() y pasa los IDs de la campaña y 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 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.

De forma explícita

C#

  1. Crea un objeto CreativeAssignment para cada creatividad con la que se debe asociar este anuncio. Asegúrate de establecer el campo CreativeAssignment.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;
  2. Crea un objeto CreativeRotation para almacenar los CreativeAssignment. Si creas un grupo de rotación, asegúrate de configurar los otros campos obligatorios de rotación de creatividades.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.CreativeAssignments = new List<CreativeAssignment>() {
        creativeAssignment
    };
  3. Crea un objeto PlacementAssignment para cada posición con la que se debe asociar este anuncio. Asegúrate de establecer el campo PlacementAssignment.active como verdadero.
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.Active = true;
    placementAssignment.PlacementId = placementId;
  4. Crea un objeto Ad. Establece creativeRotation en el campo creativeRotation del objeto Ad y placementAssignments en el array placementAssignments del objeto Ad.
    // 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";
  5. Llama a ads.insert() para guardar el anuncio.
    // Insert the rotation group.
    Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();

Java

  1. Crea un objeto CreativeAssignment para cada creatividad con la que se debe asociar este anuncio. Asegúrate de establecer el campo CreativeAssignment.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);
  2. Crea un objeto CreativeRotation para almacenar los CreativeAssignment. Si creas un grupo de rotación, asegúrate de configurar los otros campos obligatorios de rotación de creatividades.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.setCreativeAssignments(ImmutableList.of(creativeAssignment));
  3. Crea un objeto PlacementAssignment para cada posición con la que se debe asociar este anuncio. Asegúrate de establecer el campo PlacementAssignment.active como verdadero.
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.setActive(true);
    placementAssignment.setPlacementId(placementId);
  4. Crea un objeto Ad. Establece creativeRotation en el campo creativeRotation del objeto Ad y placementAssignments en el array placementAssignments del objeto Ad.
    // 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");
  5. Llama a ads.insert() para guardar el anuncio.
    // Insert the rotation group.
    Ad result = reporting.ads().insert(profileId, rotationGroup).execute();

PHP

  1. Crea un objeto CreativeAssignment para cada creatividad con la que se debe asociar este anuncio. Asegúrate de establecer el campo CreativeAssignment.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);
  2. Crea un objeto CreativeRotation para almacenar los CreativeAssignment. Si creas un grupo de rotación, asegúrate de configurar los otros campos obligatorios de rotación de creatividades.
    // Create a creative rotation.
    $creativeRotation = new Google_Service_Dfareporting_CreativeRotation();
    $creativeRotation->setCreativeAssignments([$creativeAssignment]);
  3. Crea un objeto PlacementAssignment para cada posición con la que se debe asociar este anuncio. Asegúrate de establecer el campo PlacementAssignment.active como verdadero.
    // Create a placement assignment.
    $placementAssignment =
        new Google_Service_Dfareporting_PlacementAssignment();
    $placementAssignment->setActive(true);
    $placementAssignment->setPlacementId($values['placement_id']);
  4. Crea un objeto Ad. Establece creativeRotation en el campo creativeRotation del objeto Ad y placementAssignments en el array placementAssignments del objeto Ad.
    // 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');
  5. Llama a ads.insert() para guardar el anuncio.
    $result = $this->service->ads->insert($values['user_profile_id'], $ad);

Python

  1. Crea un objeto CreativeAssignment para cada creatividad con la que se debe asociar este anuncio. Asegúrate de establecer el campo CreativeAssignment.active como verdadero.
    # Construct creative assignment.
    creative_assignment = {
        'active': 'true',
        'creativeId': creative_id,
        'clickThroughUrl': {
            'defaultLandingPage': 'true'
        }
    }
  2. Crea un objeto CreativeRotation para almacenar los CreativeAssignment. Si creas un grupo de rotación, asegúrate de configurar los otros campos obligatorios de rotación de creatividades.
    # Construct creative rotation.
    creative_rotation = {
        'creativeAssignments': [creative_assignment],
        'type': 'CREATIVE_ROTATION_TYPE_RANDOM',
        'weightCalculationStrategy': 'WEIGHT_STRATEGY_OPTIMIZED'
    }
  3. Crea un objeto PlacementAssignment para cada posición con la que se debe asociar este anuncio. Asegúrate de establecer el campo PlacementAssignment.active como verdadero.
    # Construct placement assignment.
    placement_assignment = {
        'active': 'true',
        'placementId': placement_id,
    }
  4. Crea un objeto Ad. Establece creativeRotation en el campo creativeRotation del objeto Ad y placementAssignments en el array placementAssignments del objeto Ad.
    # 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'
    }
  5. 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()

Ruby

  1. Crea un objeto CreativeAssignment para cada creatividad con la que se debe asociar este anuncio. Asegúrate de establecer el campo CreativeAssignment.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
        )
      )
  2. Crea un objeto CreativeRotation para almacenar los CreativeAssignment. Si creas un grupo de rotación, asegúrate de configurar los otros 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'
    )
  3. Crea un objeto PlacementAssignment para cada posición con la que se debe asociar este anuncio. Asegúrate de establecer el campo PlacementAssignment.active como verdadero.
    # Construct placement assignment.
    placement_assignment =
      DfareportingUtils::API_NAMESPACE::PlacementAssignment.new(
        active: true,
        placement_id: placement_id
      )
  4. Crea un objeto Ad. Establece creativeRotation en el campo creativeRotation del objeto Ad y placementAssignments en el array placementAssignments del objeto Ad.
    # 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'
    )
  5. Llama a ads.insert() para guardar el anuncio.
    result = service.insert_ad(profile_id, ad)

De forma implícita

C#

  1. Crea y guarda un Placement.
  2. Crea y guarda un Creative.
  3. Asocia el objeto Creative con el mismo objeto Campaign que se usó para el objeto Placement llamando a campaignCreativeAssociations.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

  1. Crea y guarda un Placement.
  2. Crea y guarda un Creative.
  3. Asocia el objeto Creative con el mismo objeto Campaign que se usó para el objeto Placement llamando a campaignCreativeAssociations.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

  1. Crea y guarda un Placement.
  2. Crea y guarda un Creative.
  3. Asocia el objeto Creative con el mismo objeto Campaign que se usó para el objeto Placement llamando a campaignCreativeAssociations.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

  1. Crea y guarda un Placement.
  2. Crea y guarda un Creative.
  3. Asocia el objeto Creative con el mismo objeto Campaign que se usó para el objeto Placement llamando a campaignCreativeAssociations.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()

Ruby

  1. Crea y guarda un Placement.
  2. Crea y guarda un Creative.
  3. Asocia el objeto Creative con el mismo objeto Campaign que se usó para el objeto Placement llamando a campaignCreativeAssociations.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)

Crear un anuncio guarda implícitamente el paso adicional de crear un objeto Ad. Ten en cuenta que esto solo se puede hacer si aún no existe un anuncio predeterminado del tamaño especificado en tu campaña.

Cómo buscar objetos

Para buscar objetos, puedes llamar a la operación list() que expone el servicio que define el objeto que se debe encontrar y especificar criterios opcionales adecuados para ese tipo de objeto. Por ejemplo, para buscar objetos Ad, llamarías a ads.list(). Los criterios opcionales exponen un conjunto de propiedades adecuadas para ese objeto. Completa tantas propiedades como quieras buscar. La búsqueda solo devolverá los objetos que cumplan todos tus criterios. No puedes realizar una búsqueda que coincida con cualquiera de los criterios. 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 indica al servidor que muestre solo los campos que especificas, en lugar de la representación completa del recurso. Puedes encontrar más información sobre este tema en la guía Sugerencias de 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 ayudarte con esto, muchos métodos de list() te permiten solicitar menos resultados a través de un proceso conocido como paginación.

Los métodos que admiten la paginación devuelven subconjuntos de resultados en grupos llamados páginas. La cantidad máxima de resultados por página es de 1,000 (el valor predeterminado). Puedes cambiar la cantidad de resultados por página configurando maxResults y puedes iterar por las páginas con nextPageToken que se devuelve 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

Ruby

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 integradas en una página que se utilizan para hacer un seguimiento de las acciones del usuario (p.ej., compras) en un sitio. Para generar etiquetas de Floodlight, necesitas un objeto FloodlightActivity que pertenezca a un objeto FloodlightActivityGroup:

C#

  1. Crea un grupo de actividades de Floodlight nuevo y pasa valores para name, type y floodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.Name = groupName;
    floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId;
    floodlightActivityGroup.Type = "COUNTER";
  2. Para guardar el grupo de actividades de Floodlight, llama a floodlightActivityGroups.insert(), que devolverá el ID del grupo nuevo.
    // Insert the activity group.
    FloodlightActivityGroup result =
        service.FloodlightActivityGroups.Insert(floodlightActivityGroup, profileId).Execute();
  3. Crea una actividad de Floodlight nueva 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;
  4. Para guardar la actividad nueva, llama a floodlightActivities.insert(), que devolverá el ID de la actividad nueva.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        service.FloodlightActivities.Insert(activity, profileId).Execute();
  5. Para generar las etiquetas, llama a floodlightActivities.generatetag() con el floodlightActivityId de tu actividad nueva. Envía 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

  1. Crea un grupo de actividades de Floodlight nuevo y pasa valores para name, type y floodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.setName(groupName);
    floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId);
    floodlightActivityGroup.setType("COUNTER");
  2. Para guardar el grupo de actividades de Floodlight, llama a floodlightActivityGroups.insert(), que devolverá el ID del grupo nuevo.
    // Insert the activity group.
    FloodlightActivityGroup result =
        reporting.floodlightActivityGroups().insert(profileId, floodlightActivityGroup).execute();
  3. Crea una actividad de Floodlight nueva 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");
  4. Para guardar la actividad nueva, llama a floodlightActivities.insert(), que devolverá el ID de la actividad nueva.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        reporting.floodlightActivities().insert(profileId, activity).execute();
  5. Para generar las etiquetas, llama a floodlightActivities.generatetag() con el floodlightActivityId de tu actividad nueva. Envía 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

  1. Crea un grupo de actividades de Floodlight nuevo y pasa valores para name, type y floodlightConfigurationId.
    $group = new Google_Service_Dfareporting_FloodlightActivityGroup();
    $group->setFloodlightConfigurationId($values['configuration_id']);
    $group->setName($values['group_name']);
    $group->setType('COUNTER');
  2. Para guardar el grupo de actividades de Floodlight, llama a floodlightActivityGroups.insert(), que devolverá el ID del grupo nuevo.
    $result = $this->service->floodlightActivityGroups->insert(
        $values['user_profile_id'],
        $group
    );
  3. Crea una actividad de Floodlight nueva y asígnale el ID del grupo de actividades de Floodlight que acabas de crear, así como 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']);
  4. Para guardar la actividad nueva, llama a floodlightActivities.insert(), que devolverá el ID de la actividad nueva.
    $result = $this->service->floodlightActivities->insert(
        $values['user_profile_id'],
        $activity
    );
  5. Para generar las etiquetas, llama a floodlightActivities.generatetag() con el floodlightActivityId de tu actividad nueva. Envía las etiquetas al webmaster del sitio web del anunciante.
    $result = $this->service->floodlightActivities->generatetag(
        $values['user_profile_id'],
        ['floodlightActivityId' => $values['activity_id']]
    );

Python

  1. Crea un grupo de actividades de Floodlight nuevo y pasa valores para name, type y floodlightConfigurationId.
    # Construct and save floodlight activity group.
    activity_group = {
        'name': 'Test Floodlight Activity Group',
        'floodlightConfigurationId': floodlight_config_id,
        'type': 'COUNTER'
    }
  2. Para guardar el grupo de actividades de Floodlight, llama a floodlightActivityGroups.insert(), que devolverá el ID del grupo nuevo.
    request = service.floodlightActivityGroups().insert(
        profileId=profile_id, body=activity_group)
  3. Crea una actividad de Floodlight nueva 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'
    }
  4. Para guardar la actividad nueva, llama a floodlightActivities.insert(), que devolverá el ID de la actividad nueva.
    request = service.floodlightActivities().insert(
        profileId=profile_id, body=floodlight_activity)
  5. Para generar las etiquetas, llama a floodlightActivities.generatetag() con el floodlightActivityId de tu actividad nueva. Envía 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()

Ruby

  1. Crea un grupo de actividades de Floodlight nuevo y pasa valores para name, type y floodlightConfigurationId.
    # 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'
      )
  2. Para guardar el grupo de actividades de Floodlight, llama a floodlightActivityGroups.insert(), que devolverá el ID del grupo nuevo.
    # Insert the floodlight activity group.
    result = service.insert_floodlight_activity_group(profile_id, activity_group)
  3. Crea una actividad de Floodlight nueva y asígnale el ID del grupo de actividades de Floodlight que acabas de crear, así como 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))
    )
  4. Para guardar la actividad nueva, llama a floodlightActivities.insert(), que devolverá el ID de la actividad nueva.
    # Insert the floodlight activity.
    result = service.insert_floodlight_activity(profile_id, activity)
  5. Para generar las etiquetas, llama a floodlightActivities.generatetag() con el floodlightActivityId de tu actividad nueva. Envía las etiquetas al webmaster del sitio web del anunciante.
    # Construct the request.
    result = service.generatetag_floodlight_activity(profile_id,
      floodlight_activity_id: activity_id)

Cómo generar etiquetas de posición

El último paso es generar etiquetas HTML para enviarlas al publicador y mostrar tus 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])