Tarefas de tráfego comuns

Esta página descreve como executar algumas das tarefas de tráfego mais comuns usando a API DCM/DFA Reporting and Trafficking.

Dicas gerais de codificação

  • Propriedades e parâmetros obrigatórios e opcionais: consulte a documentação de referência para saber se determinadas propriedades ou parâmetros são obrigatórios para uma chamada de API.
  • Pesquisas de nomes com caractere curinga: use o asterisco (*) como caractere curinga ao pesquisar nomes de objetos. Um asterisco corresponde a zero ou mais de qualquer caractere. A API também oferece suporte a uma pesquisa implícita de substring, de modo que uma pesquisa por "abc" buscará implicitamente "*abc*".
  • Comparação entre atualizar e corrigir: para modificar um objeto, há duas opções:
    1. Atualizar: ao atualizar um objeto, todos os campos serão substituídos na inserção. É importante carregar o objeto que você quer atualizar e fazer as alterações nele. Caso contrário, os campos ausentes na solicitação de atualização não serão definidos.
    2. Corrigir: ao corrigir, somente os campos especificados serão substituídos na inserção. Nesse caso, é possível criar um novo objeto, atribuir a ele o mesmo ID do objeto a ser atualizado, definir os campos que serão atualizados e executar a solicitação de patch.
  • Tamanhos: as dimensões físicas são representadas por um objeto Size definido pelo serviço de tamanhos. A conta fornece um conjunto de tamanhos padrão, e você pode adicionar tamanhos personalizados à lista.
  • Datas e horários: é possível salvar datas/horas no formato RFC 3339 usando fusos horários locais. Todos os valores retornados pela API estão em UTC. Ele é diferente do site em que as datas e os horários são mostrados no fuso horário configurado (horário dos Estados Unidos/Nova York, por padrão).

Criar um anunciante

C#

  1. Crie um objeto Advertiser e defina as propriedades obrigatórias de nome e status.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.Name = advertiserName;
    advertiser.Status = "APPROVED";
    
  2. Chame advertisers.insert() para salvar o anunciante.
    // Create the advertiser.
    Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();
    

Java

  1. Crie um objeto Advertiser e defina as propriedades obrigatórias de nome e status.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.setName(advertiserName);
    advertiser.setStatus("APPROVED");
    
  2. Chame advertisers.insert() para salvar o anunciante.
    // Create the advertiser.
    Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();
    

PHP

  1. Crie um objeto Advertiser e defina as propriedades obrigatórias de nome e status.
    $advertiser = new Google_Service_Dfareporting_Advertiser();
    $advertiser->setName($values['advertiser_name']);
    $advertiser->setStatus('APPROVED');
    
  2. Chame advertisers.insert() para salvar o anunciante.
    $result = $this->service->advertisers->insert(
        $values['user_profile_id'],
        $advertiser
    );
    

Python

  1. Crie um objeto Advertiser e defina as propriedades obrigatórias de nome e status.
    # Construct and save advertiser.
    advertiser = {
        'name': 'Test Advertiser',
        'status': 'APPROVED'
    }
    
  2. Chame advertisers.insert() para salvar o anunciante.
    request = service.advertisers().insert(
        profileId=profile_id, body=advertiser)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. Crie um objeto Advertiser e defina as propriedades obrigatórias de nome e 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. Chame advertisers.insert() para salvar o anunciante.
    # Insert the advertiser.
    result = service.insert_advertiser(profile_id, advertiser)
    

Criar uma campanha

C#

  1. Crie um objeto Campaign e defina as propriedades obrigatórias:

    • advertiserId: é o anunciante que será associado à campanha.
    • name: precisa ser exclusivo em todas as campanhas do anunciante.
    • defaultLandingPageId: é uma página de destino que os usuários serão direcionados quando clicarem em um anúncio da campanha, caso essa página não tenha uma página atribuída a ele. É possível procurar páginas de destino existentes chamando advertiserLandingPages.list ou criar uma nova chamando advertiserLandingPages.insert.
    • Datas de início e de término: precisam estar no futuro e podem ter a precisão de um dia. Consulte o boletim de datas e horários nas Informações gerais de codificação para mais detalhes. As datas de anúncios individuais podem exceder a data de término para permitir que um editor tente cumprir um contrato para um número especificado de ações, caso ele não tenha sido preenchido até a data de término determinada da campanha.
    // 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. Chame campaigns.insert() para salvar a campanha.

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

Java

  1. Crie um objeto Campaign e defina as propriedades obrigatórias:

    • advertiserId: é o anunciante que será associado à campanha.
    • name: precisa ser exclusivo em todas as campanhas do anunciante.
    • defaultLandingPageId: é uma página de destino que os usuários serão direcionados quando clicarem em um anúncio da campanha, caso essa página não tenha uma página atribuída a ele. É possível procurar páginas de destino existentes chamando advertiserLandingPages.list ou criar uma nova chamando advertiserLandingPages.insert.
    • Datas de início e de término: precisam estar no futuro e podem ter a precisão de um dia. Consulte o boletim de datas e horários nas Informações gerais de codificação para mais detalhes. As datas de anúncios individuais podem exceder a data de término para permitir que um editor tente cumprir um contrato para um número especificado de ações, caso ele não tenha sido preenchido até a data de término determinada da campanha.
    // 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. Chame campaigns.insert() para salvar a campanha.

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

PHP

  1. Crie um objeto Campaign e defina as propriedades obrigatórias:

    • advertiserId: é o anunciante que será associado à campanha.
    • name: precisa ser exclusivo em todas as campanhas do anunciante.
    • defaultLandingPageId: é uma página de destino que os usuários serão direcionados quando clicarem em um anúncio da campanha, caso essa página não tenha uma página atribuída a ele. É possível procurar páginas de destino existentes chamando advertiserLandingPages.list ou criar uma nova chamando advertiserLandingPages.insert.
    • Datas de início e de término: precisam estar no futuro e podem ter a precisão de um dia. Consulte o boletim de datas e horários nas Informações gerais de codificação para mais detalhes. As datas de anúncios individuais podem exceder a data de término para permitir que um editor tente cumprir um contrato para um número especificado de ações, caso ele não tenha sido preenchido até a data de término determinada da campanha.
    $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. Chame campaigns.insert() para salvar a campanha.

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

Python

  1. Crie um objeto Campaign e defina as propriedades obrigatórias:

    • advertiserId: é o anunciante que será associado à campanha.
    • name: precisa ser exclusivo em todas as campanhas do anunciante.
    • defaultLandingPageId: é uma página de destino que os usuários serão direcionados quando clicarem em um anúncio da campanha, caso essa página não tenha uma página atribuída a ele. É possível procurar páginas de destino existentes chamando advertiserLandingPages.list ou criar uma nova chamando advertiserLandingPages.insert.
    • Datas de início e de término: precisam estar no futuro e podem ter a precisão de um dia. Consulte o boletim de datas e horários nas Informações gerais de codificação para mais detalhes. As datas de anúncios individuais podem exceder a data de término para permitir que um editor tente cumprir um contrato para um número especificado de ações, caso ele não tenha sido preenchido até a data de término determinada da campanha.
    # 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. Chame campaigns.insert() para salvar a campanha.

    request = service.campaigns().insert(profileId=profile_id, body=campaign)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. Crie um objeto Campaign e defina as propriedades obrigatórias:

    • advertiserId: é o anunciante que será associado à campanha.
    • name: precisa ser exclusivo em todas as campanhas do anunciante.
    • defaultLandingPageId: é uma página de destino que os usuários serão direcionados quando clicarem em um anúncio da campanha, caso essa página não tenha uma página atribuída a ele. É possível procurar páginas de destino existentes chamando advertiserLandingPages.list ou criar uma nova chamando advertiserLandingPages.insert.
    • Datas de início e de término: precisam estar no futuro e podem ter a precisão de um dia. Consulte o boletim de datas e horários nas Informações gerais de codificação para mais detalhes. As datas de anúncios individuais podem exceder a data de término para permitir que um editor tente cumprir um contrato para um número especificado de ações, caso ele não tenha sido preenchido até a data de término determinada da campanha.
    # 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. Chame campaigns.insert() para salvar a campanha.

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

Criar uma veiculação

C#

  1. Crie um objeto Placement e defina as propriedades de canal necessárias (incluindo campaignId e siteId). Além disso, defina com precisão o tipo e o tamanho do canal que você negociou com seu site.
    // 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. Crie um novo objeto PricingSchedule para atribuir à posição.
    // 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. Salve o objeto Placement chamando placements.insert(). Guarde o ID retornado se quiser usá-lo para atribuir a um anúncio ou criativo.
    // Insert the placement.
    Placement result = service.Placements.Insert(placement, profileId).Execute();
    

Java

  1. Crie um objeto Placement e defina as propriedades de canal necessárias (incluindo campaignId e siteId). Além disso, defina com precisão o tipo e o tamanho do canal que você negociou com seu site.
    // 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. Crie um novo objeto PricingSchedule para atribuir à posição.
    // 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. Salve o objeto Placement chamando placements.insert(). Guarde o ID retornado se quiser usá-lo para atribuir a um anúncio ou criativo.
    // Insert the placement.
    Placement result = reporting.placements().insert(profileId, placement).execute();
    

PHP

  1. Crie um objeto Placement e defina as propriedades de canal necessárias (incluindo campaignId e siteId). Além disso, defina com precisão o tipo e o tamanho do canal que você negociou com seu site.
    $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. Crie um novo objeto PricingSchedule para atribuir à posição.
    // 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. Salve o objeto Placement chamando placements.insert(). Guarde o ID retornado se quiser usá-lo para atribuir a um anúncio ou criativo.
    // Insert the placement.
    $result = $this->service->placements->insert(
        $values['user_profile_id'],
        $placement
    );
    

Python

  1. Crie um objeto Placement e defina as propriedades de canal necessárias (incluindo campaignId e siteId). Além disso, defina com precisão o tipo e o tamanho do canal que você negociou com seu site.
    # 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. Crie um novo objeto PricingSchedule para atribuir à posição.
    # Set the pricing schedule for the placement.
    placement['pricingSchedule'] = {
        'startDate': campaign['startDate'],
        'endDate': campaign['endDate'],
        'pricingType': 'PRICING_TYPE_CPM'
    }
    
  3. Salve o objeto Placement chamando placements.insert(). Guarde o ID retornado se quiser usá-lo para atribuir a um anúncio ou criativo.
    request = service.placements().insert(profileId=profile_id, body=placement)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. Crie um objeto Placement e defina as propriedades de canal necessárias (incluindo campaignId e siteId). Além disso, defina com precisão o tipo e o tamanho do canal que você negociou com seu site.
    # 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. Crie um novo objeto PricingSchedule para atribuir à posição.
    # 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. Salve o objeto Placement chamando placements.insert(). Guarde o ID retornado se quiser usá-lo para atribuir a um anúncio ou criativo.
    # Insert the placement strategy.
    result = service.insert_placement(profile_id, placement)
    

Fazer o upload de recursos

É possível fazer o upload de diversos tipos de recursos por um processo conhecido como upload de mídia. Embora esse processo seja semelhante em todos os tipos de criativos, alguns deles podem exigir que propriedades específicas sejam transmitidas como metadados para serem usados corretamente.

C#

  1. Crie um objeto assetIdentifier e defina as propriedades obrigatórias. Todos os recursos, independentemente do tipo ou da maneira como forem usados, precisam especificar um assetIdentifier. Ao atribuir o recurso a um criativo, esse objeto será usado para buscar o recurso. As seguintes propriedades são obrigatórias:

    • A propriedade name, que será o nome do recurso no servidor. O nome deve incluir uma extensão que indique o tipo de arquivo, como .png ou .gif, e será exposto ao navegador como o nome do recurso, mas não precisará ser o mesmo que o nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. Verifique o valor de retorno para ver se ele foi alterado.
    • A propriedade type, que identifica o tipo do recurso. Essa propriedade determinará com quais tipos de criativos esse recurso poderá ser associado.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.Name = Path.GetFileName(assetFile);
    assetId.Type = assetType;
    
  2. Faça upload do arquivo chamando creativeAssets.insert(). Faça um upload de várias partes, transmitindo o assetIdentifier e o conteúdo do arquivo como parte da mesma solicitação. Se bem-sucedido, um recurso CreativeAsset será retornado, com um assetIdentifier que você usará para atribuir esse recurso a um criativo.

    // 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. Crie um objeto assetIdentifier e defina as propriedades obrigatórias. Todos os recursos, independentemente do tipo ou da maneira como forem usados, precisam especificar um assetIdentifier. Ao atribuir o recurso a um criativo, esse objeto será usado para buscar o recurso. As seguintes propriedades são obrigatórias:

    • A propriedade name, que será o nome do recurso no servidor. O nome deve incluir uma extensão que indique o tipo de arquivo, como .png ou .gif, e será exposto ao navegador como o nome do recurso, mas não precisará ser o mesmo que o nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. Verifique o valor de retorno para ver se ele foi alterado.
    • A propriedade type, que identifica o tipo do recurso. Essa propriedade determinará com quais tipos de criativos esse recurso poderá ser associado.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.setName(assetName);
    assetId.setType(assetType);
    
  2. Faça upload do arquivo chamando creativeAssets.insert(). Faça um upload de várias partes, transmitindo o assetIdentifier e o conteúdo do arquivo como parte da mesma solicitação. Se bem-sucedido, um recurso CreativeAsset será retornado, com um assetIdentifier que você usará para atribuir esse recurso a um criativo.

    // 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. Crie um objeto assetIdentifier e defina as propriedades obrigatórias. Todos os recursos, independentemente do tipo ou da maneira como forem usados, precisam especificar um assetIdentifier. Ao atribuir o recurso a um criativo, esse objeto será usado para buscar o recurso. As seguintes propriedades são obrigatórias:

    • A propriedade name, que será o nome do recurso no servidor. O nome deve incluir uma extensão que indique o tipo de arquivo, como .png ou .gif, e será exposto ao navegador como o nome do recurso, mas não precisará ser o mesmo que o nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. Verifique o valor de retorno para ver se ele foi alterado.
    • A propriedade type, que identifica o tipo do recurso. Essa propriedade determinará com quais tipos de criativos esse recurso poderá ser associado.
    $assetId = new Google_Service_Dfareporting_CreativeAssetId();
    $assetId->setName($asset['name']);
    $assetId->setType($type);
    
  2. Faça upload do arquivo chamando creativeAssets.insert(). Faça um upload de várias partes, transmitindo o assetIdentifier e o conteúdo do arquivo como parte da mesma solicitação. Se bem-sucedido, um recurso CreativeAsset será retornado, com um assetIdentifier que você usará para atribuir esse recurso a um criativo.

    $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. Crie um objeto assetIdentifier e defina as propriedades obrigatórias. Todos os recursos, independentemente do tipo ou da maneira como forem usados, precisam especificar um assetIdentifier. Ao atribuir o recurso a um criativo, esse objeto será usado para buscar o recurso. As seguintes propriedades são obrigatórias:

    • A propriedade name, que será o nome do recurso no servidor. O nome deve incluir uma extensão que indique o tipo de arquivo, como .png ou .gif, e será exposto ao navegador como o nome do recurso, mas não precisará ser o mesmo que o nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. Verifique o valor de retorno para ver se ele foi alterado.
    • A propriedade type, que identifica o tipo do recurso. Essa propriedade determinará com quais tipos de criativos esse recurso poderá ser associado.
    # Construct the creative asset metadata
    creative_asset = {'assetIdentifier': {'name': asset_name, 'type': asset_type}}
    
  2. Faça upload do arquivo chamando creativeAssets.insert(). Faça um upload de várias partes, transmitindo o assetIdentifier e o conteúdo do arquivo como parte da mesma solicitação. Se bem-sucedido, um recurso CreativeAsset será retornado, com um assetIdentifier que você usará para atribuir esse recurso a um criativo.

    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. Crie um objeto assetIdentifier e defina as propriedades obrigatórias. Todos os recursos, independentemente do tipo ou da maneira como forem usados, precisam especificar um assetIdentifier. Ao atribuir o recurso a um criativo, esse objeto será usado para buscar o recurso. As seguintes propriedades são obrigatórias:

    • A propriedade name, que será o nome do recurso no servidor. O nome deve incluir uma extensão que indique o tipo de arquivo, como .png ou .gif, e será exposto ao navegador como o nome do recurso, mas não precisará ser o mesmo que o nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. Verifique o valor de retorno para ver se ele foi alterado.
    • A propriedade type, que identifica o tipo do recurso. Essa propriedade determinará com quais tipos de criativos esse recurso poderá ser associado.
    # 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. Faça upload do arquivo chamando creativeAssets.insert(). Faça um upload de várias partes, transmitindo o assetIdentifier e o conteúdo do arquivo como parte da mesma solicitação. Se bem-sucedido, um recurso CreativeAsset será retornado, com um assetIdentifier que você usará para atribuir esse recurso a um criativo.

    # 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
    )
    

Gerar um criativo

Um objeto Creative une um recurso existente. Dependendo de como você usará os criativos na página de host, será possível criar objetos Creative de diferentes tipos de criativos. Consulte a documentação de referência para determinar o tipo mais adequado para você.

O exemplo a seguir demonstra como gerar um novo criativo de exibição HTML5.

C#

  1. Faça o upload dos recursos. Criativos diferentes exigem tipos e quantidades diferentes de recursos. Consulte Fazer upload de recursos para mais detalhes. Sempre que fizer o upload de um recurso, você receberá uma resposta assetIdenfitier. Em vez de usar um ID tradicional, você usará o tipo e o nome do arquivo armazenado para fazer referência a esses recursos no seu criativo.
  2. Gere um criativo e atribua os valores adequados. Instancie um Creative e defina o type adequado. Não é possível mudar o tipo de um objeto Creative depois de salvá-lo. Especifique os recursos com AssetIdentifier e 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. Salve o criativo. Para fazer isso, chame creatives.insert(). É necessário especificar um ID de anunciante para associar ao criativo.
    Creative result = service.Creatives.Insert(creative, profileId).Execute();
    
  4. (Opcional) Associe o criativo a uma campanha. Para fazer isso, chame campaignCreativeAssociations.insert(), transmitindo os IDs da campanha e do criativo.
    // 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. Faça o upload dos recursos. Criativos diferentes exigem tipos e quantidades diferentes de recursos. Consulte Fazer upload de recursos para mais detalhes. Sempre que fizer o upload de um recurso, você receberá uma resposta assetIdenfitier. Em vez de usar um ID tradicional, você usará o tipo e o nome do arquivo armazenado para fazer referência a esses recursos no seu criativo.
  2. Gere um criativo e atribua os valores adequados. Instancie um Creative e defina o type adequado. Não é possível mudar o tipo de um objeto Creative depois de salvá-lo. Especifique os recursos com AssetIdentifier e 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. Salve o criativo. Para fazer isso, chame creatives.insert(). É necessário especificar um ID de anunciante para associar ao criativo.
    Creative result = reporting.creatives().insert(profileId, creative).execute();
    
  4. (Opcional) Associe o criativo a uma campanha. Para fazer isso, chame campaignCreativeAssociations.insert(), transmitindo os IDs da campanha e do criativo.
    // 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. Faça o upload dos recursos. Criativos diferentes exigem tipos e quantidades diferentes de recursos. Consulte Fazer upload de recursos para mais detalhes. Sempre que fizer o upload de um recurso, você receberá uma resposta assetIdenfitier. Em vez de usar um ID tradicional, você usará o tipo e o nome do arquivo armazenado para fazer referência a esses recursos no seu criativo.
  2. Gere um criativo e atribua os valores adequados. Instancie um Creative e defina o type adequado. Não é possível mudar o tipo de um objeto Creative depois de salvá-lo. Especifique os recursos com AssetIdentifier e 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. Salve o criativo. Para fazer isso, chame creatives.insert(). É necessário especificar um ID de anunciante para associar ao criativo.
    $result = $this->service->creatives->insert(
        $values['user_profile_id'],
        $creative
    );
    
  4. (Opcional) Associe o criativo a uma campanha. Para fazer isso, chame campaignCreativeAssociations.insert(), transmitindo os IDs da campanha e do criativo.
    $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. Faça o upload dos recursos. Criativos diferentes exigem tipos e quantidades diferentes de recursos. Consulte Fazer upload de recursos para mais detalhes. Sempre que fizer o upload de um recurso, você receberá uma resposta assetIdenfitier. Em vez de usar um ID tradicional, você usará o tipo e o nome do arquivo armazenado para fazer referência a esses recursos no seu criativo.
  2. Gere um criativo e atribua os valores adequados. Instancie um Creative e defina o type adequado. Não é possível mudar o tipo de um objeto Creative depois de salvá-lo. Especifique os recursos com AssetIdentifier e 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. Salve o criativo. Para fazer isso, chame creatives.insert(). É necessário especificar um ID de anunciante para associar ao criativo.
    request = service.creatives().insert(profileId=profile_id, body=creative)
    
    # Execute request and print response.
    response = request.execute()
    
  4. (Opcional) Associe o criativo a uma campanha. Para fazer isso, chame campaignCreativeAssociations.insert(), transmitindo os IDs da campanha e do criativo.
    # 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. Faça o upload dos recursos. Criativos diferentes exigem tipos e quantidades diferentes de recursos. Consulte Fazer upload de recursos para mais detalhes. Sempre que fizer o upload de um recurso, você receberá uma resposta assetIdenfitier. Em vez de usar um ID tradicional, você usará o tipo e o nome do arquivo armazenado para fazer referência a esses recursos no seu criativo.
  2. Gere um criativo e atribua os valores adequados. Instancie um Creative e defina o type adequado. Não é possível mudar o tipo de um objeto Creative depois de salvá-lo. Especifique os recursos com AssetIdentifier e 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. Salve o criativo. Para fazer isso, chame creatives.insert(). É necessário especificar um ID de anunciante para associar ao criativo.
    # Insert the creative.
    result = service.insert_creative(profile_id, creative)
    
  4. (Opcional) Associe o criativo a uma campanha. Para fazer isso, chame campaignCreativeAssociations.insert(), transmitindo os IDs da campanha e do criativo.
    # 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)
    

Criar um anúncio

Um Ad é o vínculo entre uma Creative e uma Placement. Um Ad pode ser vinculado a uma ou mais posições e ter um ou mais criativos.

É possível criar um Ad explícita ou implicitamente.

explicitamente;

C#

  1. Crie um objeto CreativeAssignment para cada criativo associado a esse anúncio. Defina o campo CreativeAssignment.active como verdadeiro.
    // 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. Crie um objeto CreativeRotation para armazenar os CreativeAssignments. Se estiver criando um grupo de rotação, certifique-se de definir os outros campos obrigatórios de rotação de criativos.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.CreativeAssignments = new List<CreativeAssignment>() {
        creativeAssignment
    };
    
  3. Crie um objeto PlacementAssignment para cada posição a que esse anúncio será associado. Defina o campo PlacementAssignment.active como verdadeiro.
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.Active = true;
    placementAssignment.PlacementId = placementId;
    
  4. Crie um objeto Ad. Defina ocreativeRotação no campo creativeRotation do objeto Ad e as posiçõesAssignments na matriz placementAssignments do 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. Salve o anúncio chamando ads.insert().
    // Insert the rotation group.
    Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();
    

Java

  1. Crie um objeto CreativeAssignment para cada criativo associado a esse anúncio. Defina o campo CreativeAssignment.active como verdadeiro.
    // 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. Crie um objeto CreativeRotation para armazenar os CreativeAssignments. Se estiver criando um grupo de rotação, certifique-se de definir os outros campos obrigatórios de rotação de criativos.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.setCreativeAssignments(ImmutableList.of(creativeAssignment));
    
  3. Crie um objeto PlacementAssignment para cada posição a que esse anúncio será associado. Defina o campo PlacementAssignment.active como verdadeiro.
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.setActive(true);
    placementAssignment.setPlacementId(placementId);
    
  4. Crie um objeto Ad. Defina ocreativeRotação no campo creativeRotation do objeto Ad e as posiçõesAssignments na matriz placementAssignments do 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. Salve o anúncio chamando ads.insert().
    // Insert the rotation group.
    Ad result = reporting.ads().insert(profileId, rotationGroup).execute();
    

PHP

  1. Crie um objeto CreativeAssignment para cada criativo associado a esse anúncio. Defina o campo CreativeAssignment.active como verdadeiro.
    // 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. Crie um objeto CreativeRotation para armazenar os CreativeAssignments. Se estiver criando um grupo de rotação, certifique-se de definir os outros campos obrigatórios de rotação de criativos.
    // Create a creative rotation.
    $creativeRotation = new Google_Service_Dfareporting_CreativeRotation();
    $creativeRotation->setCreativeAssignments([$creativeAssignment]);
    
  3. Crie um objeto PlacementAssignment para cada posição a que esse anúncio será associado. Defina o campo PlacementAssignment.active como verdadeiro.
    // Create a placement assignment.
    $placementAssignment =
        new Google_Service_Dfareporting_PlacementAssignment();
    $placementAssignment->setActive(true);
    $placementAssignment->setPlacementId($values['placement_id']);
    
  4. Crie um objeto Ad. Defina ocreativeRotação no campo creativeRotation do objeto Ad e as posiçõesAssignments na matriz placementAssignments do 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. Salve o anúncio chamando ads.insert().
    $result = $this->service->ads->insert($values['user_profile_id'], $ad);
    

Python

  1. Crie um objeto CreativeAssignment para cada criativo associado a esse anúncio. Defina o campo CreativeAssignment.active como verdadeiro.
    # Construct creative assignment.
    creative_assignment = {
        'active': 'true',
        'creativeId': creative_id,
        'clickThroughUrl': {
            'defaultLandingPage': 'true'
        }
    }
    
  2. Crie um objeto CreativeRotation para armazenar os CreativeAssignments. Se estiver criando um grupo de rotação, certifique-se de definir os outros campos obrigatórios de rotação de criativos.
    # Construct creative rotation.
    creative_rotation = {
        'creativeAssignments': [creative_assignment],
        'type': 'CREATIVE_ROTATION_TYPE_RANDOM',
        'weightCalculationStrategy': 'WEIGHT_STRATEGY_OPTIMIZED'
    }
    
  3. Crie um objeto PlacementAssignment para cada posição a que esse anúncio será associado. Defina o campo PlacementAssignment.active como verdadeiro.
    # Construct placement assignment.
    placement_assignment = {
        'active': 'true',
        'placementId': placement_id,
    }
    
  4. Crie um objeto Ad. Defina ocreativeRotação no campo creativeRotation do objeto Ad e as posiçõesAssignments na matriz placementAssignments do 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. Salve o anúncio chamando ads.insert().
    request = service.ads().insert(profileId=profile_id, body=ad)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. Crie um objeto CreativeAssignment para cada criativo associado a esse anúncio. Defina o campo CreativeAssignment.active como verdadeiro.
    # 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. Crie um objeto CreativeRotation para armazenar os CreativeAssignments. Se estiver criando um grupo de rotação, certifique-se de definir os outros campos obrigatórios de rotação de criativos.
    # 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. Crie um objeto PlacementAssignment para cada posição a que esse anúncio será associado. Defina o campo PlacementAssignment.active como verdadeiro.
    # Construct placement assignment.
    placement_assignment =
      DfareportingUtils::API_NAMESPACE::PlacementAssignment.new(
        active: true,
        placement_id: placement_id
      )
    
  4. Crie um objeto Ad. Defina ocreativeRotação no campo creativeRotation do objeto Ad e as posiçõesAssignments na matriz placementAssignments do 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. Salve o anúncio chamando ads.insert().
    result = service.insert_ad(profile_id, ad)
    

Implicitamente

C#

  1. Crie e salve um Placement.
  2. Crie e salve um Creative.
  3. Associe o Creative ao mesmo Campaign usado para Placement chamando campaignCreativeAssociations.insert(). Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e à posição.
    // 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. Crie e salve um Placement.
  2. Crie e salve um Creative.
  3. Associe o Creative ao mesmo Campaign usado para Placement chamando campaignCreativeAssociations.insert(). Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e à posição.
    // 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. Crie e salve um Placement.
  2. Crie e salve um Creative.
  3. Associe o Creative ao mesmo Campaign usado para Placement chamando campaignCreativeAssociations.insert(). Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e à posição.
    $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. Crie e salve um Placement.
  2. Crie e salve um Creative.
  3. Associe o Creative ao mesmo Campaign usado para Placement chamando campaignCreativeAssociations.insert(). Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e à posição.
    # 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. Crie e salve um Placement.
  2. Crie e salve um Creative.
  3. Associe o Creative ao mesmo Campaign usado para Placement chamando campaignCreativeAssociations.insert(). Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e à posição.
    # 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)
    

Criar um anúncio implicitamente poupa a etapa extra de criar um Ad. Isso só poderá ser feito se nenhum anúncio default do tamanho especificado existir na sua campanha.

Pesquisar objetos

Pesquise objetos chamando a operação list() exposta pelo serviço que define o objeto a ser encontrado. Para isso, especifique os critérios opcionais adequados ao tipo de objeto. Por exemplo, para pesquisar objetos Ad, chame ads.list(). Os critérios opcionais expõem um conjunto de propriedades adequadas a esse objeto. Preencha quantas propriedades quiser pesquisar. A pesquisa retornará somente objetos que atendem a todos os seus critérios. Não é possível fazer uma pesquisa que corresponda a um critério específico. As strings aceitam o caractere curinga *, não diferenciam maiúsculas de minúsculas e têm correspondência dentro de strings maiores.

Para melhorar o desempenho, respostas parciais podem ser solicitadas usando o parâmetro fields. Isso instrui o servidor a retornar somente os campos que você especificar, e não a representação completa do recurso. Você encontra mais informações sobre esse tópico no guia Dicas de desempenho.

Paging

Às vezes, não é desejável recuperar todos os resultados de uma solicitação list(). Por exemplo, talvez você só tenha interesse nos 10 anúncios mais recentes de um grupo de milhares. Para ajudar com isso, muitos métodos list() permitem solicitar menos resultados com um processo conhecido como paginação.

Os métodos compatíveis com paginação retornam subconjuntos de resultados em grupos chamados páginas. O número máximo de resultados por página é 1.000 (o padrão). Para alterar o número de resultados por página, defina maxResults e percorra as páginas usando o nextPageToken retornado na resposta:

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

Gerar tags do Floodlight

As tags do Floodlight são tags HTML incorporadas em uma página e usadas para acompanhar as ações do usuário (por exemplo, compras) no site. Para gerar tags do Floodlight, você precisa de um FloodlightActivity que pertença a um FloodlightActivityGroup:

C#

  1. Crie um novo grupo de atividades do Floodlight, transmitindo valores para name, type e floodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.Name = groupName;
    floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId;
    floodlightActivityGroup.Type = "COUNTER";
    
  2. Para salvar o grupo de atividades do Floodlight, chame floodlightActivityGroups.insert(), que retornará o ID do novo grupo.
    // Insert the activity group.
    FloodlightActivityGroup result =
        service.FloodlightActivityGroups.Insert(floodlightActivityGroup, profileId).Execute();
    
  3. Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, bem como todos os outros campos obrigatórios.
    // 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. Salve a nova atividade chamando floodlightActivities.insert(), que retornará o ID dela.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        service.FloodlightActivities.Insert(activity, profileId).Execute();
    
  5. Gere as tags chamando floodlightActivities.generatetag() com o floodlightActivityId da nova atividade. Envie as tags ao webmaster no site do anunciante.
    // Generate the floodlight activity tag.
    FloodlightActivitiesResource.GeneratetagRequest request =
        service.FloodlightActivities.Generatetag(profileId);
    request.FloodlightActivityId = activityId;
    
    FloodlightActivitiesGenerateTagResponse response = request.Execute();
    

Java

  1. Crie um novo grupo de atividades do Floodlight, transmitindo valores para name, type e floodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.setName(groupName);
    floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId);
    floodlightActivityGroup.setType("COUNTER");
    
  2. Para salvar o grupo de atividades do Floodlight, chame floodlightActivityGroups.insert(), que retornará o ID do novo grupo.
    // Insert the activity group.
    FloodlightActivityGroup result =
        reporting.floodlightActivityGroups().insert(profileId, floodlightActivityGroup).execute();
    
  3. Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, bem como todos os outros campos obrigatórios.
    // 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. Salve a nova atividade chamando floodlightActivities.insert(), que retornará o ID dela.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        reporting.floodlightActivities().insert(profileId, activity).execute();
    
  5. Gere as tags chamando floodlightActivities.generatetag() com o floodlightActivityId da nova atividade. Envie as tags ao webmaster no site do anunciante.
    // Generate the floodlight activity tag.
    Generatetag request = reporting.floodlightActivities().generatetag(profileId);
    request.setFloodlightActivityId(activityId);
    
    FloodlightActivitiesGenerateTagResponse response = request.execute();
    

PHP

  1. Crie um novo grupo de atividades do Floodlight, transmitindo valores para name, type e floodlightConfigurationId.
    $group = new Google_Service_Dfareporting_FloodlightActivityGroup();
    $group->setFloodlightConfigurationId($values['configuration_id']);
    $group->setName($values['group_name']);
    $group->setType('COUNTER');
    
  2. Para salvar o grupo de atividades do Floodlight, chame floodlightActivityGroups.insert(), que retornará o ID do novo grupo.
    $result = $this->service->floodlightActivityGroups->insert(
        $values['user_profile_id'],
        $group
    );
    
  3. Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, bem como todos os outros campos obrigatórios.
    $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. Salve a nova atividade chamando floodlightActivities.insert(), que retornará o ID dela.
    $result = $this->service->floodlightActivities->insert(
        $values['user_profile_id'],
        $activity
    );
    
  5. Gere as tags chamando floodlightActivities.generatetag() com o floodlightActivityId da nova atividade. Envie as tags ao webmaster no site do anunciante.
    $result = $this->service->floodlightActivities->generatetag(
        $values['user_profile_id'],
        ['floodlightActivityId' => $values['activity_id']]
    );
    

Python

  1. Crie um novo grupo de atividades do Floodlight, transmitindo valores para name, type e floodlightConfigurationId.
    # Construct and save floodlight activity group.
    activity_group = {
        'name': 'Test Floodlight Activity Group',
        'floodlightConfigurationId': floodlight_config_id,
        'type': 'COUNTER'
    }
    
  2. Para salvar o grupo de atividades do Floodlight, chame floodlightActivityGroups.insert(), que retornará o ID do novo grupo.
    request = service.floodlightActivityGroups().insert(
        profileId=profile_id, body=activity_group)
    
  3. Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, bem como todos os outros campos obrigatórios.
    # 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. Salve a nova atividade chamando floodlightActivities.insert(), que retornará o ID dela.
    request = service.floodlightActivities().insert(
        profileId=profile_id, body=floodlight_activity)
    
  5. Gere as tags chamando floodlightActivities.generatetag() com o floodlightActivityId da nova atividade. Envie as tags ao webmaster no site do anunciante.
    # Construct the request.
    request = service.floodlightActivities().generatetag(
        profileId=profile_id, floodlightActivityId=activity_id)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. Crie um novo grupo de atividades do Floodlight, transmitindo valores para name, type e 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 salvar o grupo de atividades do Floodlight, chame floodlightActivityGroups.insert(), que retornará o ID do novo grupo.
    # Insert the floodlight activity group.
    result = service.insert_floodlight_activity_group(profile_id, activity_group)
    
  3. Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, bem como todos os outros campos obrigatórios.
    # 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. Salve a nova atividade chamando floodlightActivities.insert(), que retornará o ID dela.
    # Insert the floodlight activity.
    result = service.insert_floodlight_activity(profile_id, activity)
    
  5. Gere as tags chamando floodlightActivities.generatetag() com o floodlightActivityId da nova atividade. Envie as tags ao webmaster no site do anunciante.
    # Construct the request.
    result = service.generatetag_floodlight_activity(profile_id,
      floodlight_activity_id: activity_id)
    

Gerar tags de posicionamento

A última etapa é gerar tags HTML que serão enviadas ao editor para exibir seus anúncios. Para gerar as tags usando a API, faça uma solicitação para placements.generatetags(), especificando um conjunto de placementIds e 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])