Esta página descreve como executar algumas das tarefas de tráfego mais comuns usando a API de relatórios e tráfego do DCM/DFA.
Dicas gerais de codificação
- Propriedades e parâmetros obrigatórios e opcionais: consulte a documentação de referência para saber se uma propriedade ou um parâmetro são obrigatórios para uma chamada de API.
- Pesquisas de nomes com caractere curinga: use o asterisco (*) como curinga ao pesquisar nomes de objetos. Um asterisco corresponde a zero ou mais de qualquer caractere. A API também suporta uma pesquisa implícita de substring, de modo que uma pesquisa por "abc" vai pesquisar implicitamente "*abc*".
- Comparação entre atualizar e corrigir: para modificar um objeto, há duas opções:
- 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 nesse objeto. Caso contrário, os campos ausentes na solicitação de atualização não serão definidos.
- Corrigir: ao corrigir, somente os campos especificados serão substituídos na inserção. Nesse caso, você pode criar um novo objeto, atribuir a ele o mesmo ID do objeto a ser atualizado, definir os campos a serem 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 seus próprios tamanhos personalizados a essa lista. - Datas e horas: é 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 datas e horários são exibidos no fuso horário configurado (horário dos Estados Unidos/Nova York, por padrão).
Criar um anunciante
C#
-
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";
-
Chame
advertisers.insert()
para salvar o anunciante.// Create the advertiser. Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();
Java
-
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");
-
Chame
advertisers.insert()
para salvar o anunciante.// Create the advertiser. Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();
PHP
-
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');
-
Chame
advertisers.insert()
para salvar o anunciante.$result = $this->service->advertisers->insert( $values['user_profile_id'], $advertiser );
Python
-
Crie um objeto
Advertiser
e defina as propriedades obrigatórias de nome e status.# Construct and save advertiser. advertiser = { 'name': 'Test Advertiser', 'status': 'APPROVED' }
-
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
-
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' )
-
Chame
advertisers.insert()
para salvar o anunciante.# Insert the advertiser. result = service.insert_advertiser(profile_id, advertiser)
Criar uma campanha
C#
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 à qual os usuários serão direcionados ao clicar em um anúncio dessa campanha, caso não haja uma página atribuída a esse anúncio. ChameadvertiserLandingPages.list
para pesquisar páginas de destino existentes ouadvertiserLandingPages.insert
crie uma nova. - Datas de início e de término: precisam ser posteriores à data atual e podem ter a precisão de um dia. Consulte as datas e o boletim de 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 preencher um contrato para um número específico 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));
-
Chame
campaigns.insert()
para salvar a campanha.// Insert the campaign. Campaign result = service.Campaigns.Insert(campaign, profileId).Execute();
Java
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 à qual os usuários serão direcionados ao clicar em um anúncio dessa campanha, caso não haja uma página atribuída a esse anúncio. ChameadvertiserLandingPages.list
para pesquisar páginas de destino existentes ouadvertiserLandingPages.insert
crie uma nova. - Datas de início e de término: precisam ser posteriores à data atual e podem ter a precisão de um dia. Consulte as datas e o boletim de 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 preencher um contrato para um número específico 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);
-
Chame
campaigns.insert()
para salvar a campanha.// Insert the campaign. Campaign result = reporting.campaigns().insert(profileId, campaign).execute();
PHP
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 à qual os usuários serão direcionados ao clicar em um anúncio dessa campanha, caso não haja uma página atribuída a esse anúncio. ChameadvertiserLandingPages.list
para pesquisar páginas de destino existentes ouadvertiserLandingPages.insert
crie uma nova. - Datas de início e de término: precisam ser posteriores à data atual e podem ter a precisão de um dia. Consulte as datas e o boletim de 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 preencher um contrato para um número específico 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'));
-
Chame
campaigns.insert()
para salvar a campanha.$result = $this->service->campaigns->insert( $values['user_profile_id'], $campaign );
Python
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 à qual os usuários serão direcionados ao clicar em um anúncio dessa campanha, caso não haja uma página atribuída a esse anúncio. ChameadvertiserLandingPages.list
para pesquisar páginas de destino existentes ouadvertiserLandingPages.insert
crie uma nova. - Datas de início e de término: precisam ser posteriores à data atual e podem ter a precisão de um dia. Consulte as datas e o boletim de 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 preencher um contrato para um número específico 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' }
-
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
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 à qual os usuários serão direcionados ao clicar em um anúncio dessa campanha, caso não haja uma página atribuída a esse anúncio. ChameadvertiserLandingPages.list
para pesquisar páginas de destino existentes ouadvertiserLandingPages.insert
crie uma nova. - Datas de início e de término: precisam ser posteriores à data atual e podem ter a precisão de um dia. Consulte as datas e o boletim de 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 preencher um contrato para um número específico 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' )
-
Chame
campaigns.insert()
para salvar a campanha.# Insert the campaign. result = service.insert_campaign(profile_id, campaign)
Criar uma veiculação
C#
-
Crie um objeto
Placement
e defina as propriedades de posição necessárias (incluindocampaignId
esiteId
). 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;
-
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;
-
Salve o objeto
Placement
chamandoplacements.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
-
Crie um objeto
Placement
e defina as propriedades de posição necessárias (incluindocampaignId
esiteId
). 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);
-
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);
-
Salve o objeto
Placement
chamandoplacements.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
-
Crie um objeto
Placement
e defina as propriedades de posição necessárias (incluindocampaignId
esiteId
). 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);
-
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);
-
Salve o objeto
Placement
chamandoplacements.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
-
Crie um objeto
Placement
e defina as propriedades de posição necessárias (incluindocampaignId
esiteId
). 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'] }
-
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' }
-
Salve o objeto
Placement
chamandoplacements.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
-
Crie um objeto
Placement
e defina as propriedades de posição necessárias (incluindocampaignId
esiteId
). 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'] )
-
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 )
-
Salve o objeto
Placement
chamandoplacements.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 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 podem exigir que propriedades específicas sejam transmitidas como metadados para que sejam usados corretamente.
C#
Crie um objeto
assetIdentifier
e defina as propriedades obrigatórias. Independentemente do tipo e da forma de uso, todos os recursos precisam especificar umassetIdentifier
. Ao atribuir o recurso a um criativo, esse objeto será usado para fazer referência ao recurso. As propriedades a seguir 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 precisa ser igual ao nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. verifique o valor retornado 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;
-
A propriedade
Faça upload do arquivo chamando
creativeAssets.insert()
. Execute um upload de várias partes, transmitindo oassetIdentifier
e o conteúdo do arquivo como parte da mesma solicitação. Se for bem-sucedido, um recursoCreativeAsset
será retornado, com umassetIdentifier
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
Crie um objeto
assetIdentifier
e defina as propriedades obrigatórias. Independentemente do tipo e da forma de uso, todos os recursos precisam especificar umassetIdentifier
. Ao atribuir o recurso a um criativo, esse objeto será usado para fazer referência ao recurso. As propriedades a seguir 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 precisa ser igual ao nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. verifique o valor retornado 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);
-
A propriedade
Faça upload do arquivo chamando
creativeAssets.insert()
. Execute um upload de várias partes, transmitindo oassetIdentifier
e o conteúdo do arquivo como parte da mesma solicitação. Se for bem-sucedido, um recursoCreativeAsset
será retornado, com umassetIdentifier
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
Crie um objeto
assetIdentifier
e defina as propriedades obrigatórias. Independentemente do tipo e da forma de uso, todos os recursos precisam especificar umassetIdentifier
. Ao atribuir o recurso a um criativo, esse objeto será usado para fazer referência ao recurso. As propriedades a seguir 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 precisa ser igual ao nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. verifique o valor retornado 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);
-
A propriedade
Faça upload do arquivo chamando
creativeAssets.insert()
. Execute um upload de várias partes, transmitindo oassetIdentifier
e o conteúdo do arquivo como parte da mesma solicitação. Se for bem-sucedido, um recursoCreativeAsset
será retornado, com umassetIdentifier
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
Crie um objeto
assetIdentifier
e defina as propriedades obrigatórias. Independentemente do tipo e da forma de uso, todos os recursos precisam especificar umassetIdentifier
. Ao atribuir o recurso a um criativo, esse objeto será usado para fazer referência ao recurso. As propriedades a seguir 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 precisa ser igual ao nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. verifique o valor retornado 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}}
-
A propriedade
Faça upload do arquivo chamando
creativeAssets.insert()
. Execute um upload de várias partes, transmitindo oassetIdentifier
e o conteúdo do arquivo como parte da mesma solicitação. Se for bem-sucedido, um recursoCreativeAsset
será retornado, com umassetIdentifier
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
Crie um objeto
assetIdentifier
e defina as propriedades obrigatórias. Independentemente do tipo e da forma de uso, todos os recursos precisam especificar umassetIdentifier
. Ao atribuir o recurso a um criativo, esse objeto será usado para fazer referência ao recurso. As propriedades a seguir 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 precisa ser igual ao nome do arquivo original. Esse nome pode ser alterado pelo Campaign Manager 360 para torná-lo exclusivo no servidor. verifique o valor retornado 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 ) )
-
A propriedade
Faça upload do arquivo chamando
creativeAssets.insert()
. Execute um upload de várias partes, transmitindo oassetIdentifier
e o conteúdo do arquivo como parte da mesma solicitação. Se for bem-sucedido, um recursoCreativeAsset
será retornado, com umassetIdentifier
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
envolve 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 qual é o tipo apropriado para você.
O exemplo a seguir demonstra como gerar um novo criativo de display HTML5.
C#
-
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 upload de um recurso, você vai receber um
assetIdenfitier
na resposta. você usará o nome e o tipo do arquivo armazenado para fazer referência a esses recursos no criativo em vez de um código tradicional. -
Gere um criativo e atribua valores adequados. Instancie um
Creative
e defina otype
adequado. não é possível mudar o tipo de um objetoCreative
depois de salvá-lo. Especifique os recursos porAssetIdentifier
erole
.// 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 };
-
Salve o criativo. Para fazer isso, chame
creatives.insert()
. É necessário especificar um ID de anunciante para associar a este criativo.Creative result = service.Creatives.Insert(creative, profileId).Execute();
-
(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
-
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 upload de um recurso, você vai receber um
assetIdenfitier
na resposta. você usará o nome e o tipo do arquivo armazenado para fazer referência a esses recursos no criativo em vez de um código tradicional. -
Gere um criativo e atribua valores adequados. Instancie um
Creative
e defina otype
adequado. não é possível mudar o tipo de um objetoCreative
depois de salvá-lo. Especifique os recursos porAssetIdentifier
erole
.// 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));
-
Salve o criativo. Para fazer isso, chame
creatives.insert()
. É necessário especificar um ID de anunciante para associar a este criativo.Creative result = reporting.creatives().insert(profileId, creative).execute();
-
(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
-
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 upload de um recurso, você vai receber um
assetIdenfitier
na resposta. você usará o nome e o tipo do arquivo armazenado para fazer referência a esses recursos no criativo em vez de um código tradicional. -
Gere um criativo e atribua valores adequados. Instancie um
Creative
e defina otype
adequado. não é possível mudar o tipo de um objetoCreative
depois de salvá-lo. Especifique os recursos porAssetIdentifier
erole
.$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]);
-
Salve o criativo. Para fazer isso, chame
creatives.insert()
. É necessário especificar um ID de anunciante para associar a este criativo.$result = $this->service->creatives->insert( $values['user_profile_id'], $creative );
-
(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
-
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 upload de um recurso, você vai receber um
assetIdenfitier
na resposta. você usará o nome e o tipo do arquivo armazenado para fazer referência a esses recursos no criativo em vez de um código tradicional. -
Gere um criativo e atribua valores adequados. Instancie um
Creative
e defina otype
adequado. não é possível mudar o tipo de um objetoCreative
depois de salvá-lo. Especifique os recursos porAssetIdentifier
erole
.# 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' }
-
Salve o criativo. Para fazer isso, chame
creatives.insert()
. É necessário especificar um ID de anunciante para associar a este criativo.request = service.creatives().insert(profileId=profile_id, body=creative) # Execute request and print response. response = request.execute()
-
(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
-
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 upload de um recurso, você vai receber um
assetIdenfitier
na resposta. você usará o nome e o tipo do arquivo armazenado para fazer referência a esses recursos no criativo em vez de um código tradicional. -
Gere um criativo e atribua valores adequados. Instancie um
Creative
e defina otype
adequado. não é possível mudar o tipo de um objetoCreative
depois de salvá-lo. Especifique os recursos porAssetIdentifier
erole
.# 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' )
-
Salve o criativo. Para fazer isso, chame
creatives.insert()
. É necessário especificar um ID de anunciante para associar a este criativo.# Insert the creative. result = service.insert_creative(profile_id, creative)
-
(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 um Creative
e um Placement
. Um Ad
pode ser vinculado a uma ou mais posições e manter um ou mais criativos.
É possível criar um Ad
explícita ou implicitamente.
explicitamente
C#
-
Crie um objeto
CreativeAssignment
para cada criativo associado a esse anúncio. Defina o campoCreativeAssignment.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;
-
Crie um objeto
CreativeRotation
para armazenar asCreativeAssignment
s. Se você estiver criando um grupo de rotação, assegure-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 };
-
Crie um objeto
PlacementAssignment
para cada posição associada a esse anúncio. Defina o campoPlacementAssignment.active
como verdadeiro.// Create a placement assignment. PlacementAssignment placementAssignment = new PlacementAssignment(); placementAssignment.Active = true; placementAssignment.PlacementId = placementId;
-
Crie um objeto
Ad
. Defina o CreativeRotação no campocreativeRotation
do objetoAd
e a veiculaçãoAssignments para a matrizplacementAssignments
do objetoAd
.// Create a delivery schedule. DeliverySchedule deliverySchedule = new DeliverySchedule(); deliverySchedule.ImpressionRatio = 1; deliverySchedule.Priority = "AD_PRIORITY_01"; DateTime startDate = DateTime.Now; DateTime endDate = Convert.ToDateTime(campaign.EndDate); // Create a rotation group. Ad rotationGroup = new Ad(); rotationGroup.Active = true; rotationGroup.CampaignId = campaignId; rotationGroup.CreativeRotation = creativeRotation; rotationGroup.DeliverySchedule = deliverySchedule; rotationGroup.StartTime = startDate; rotationGroup.EndTime = endDate; rotationGroup.Name = adName; rotationGroup.PlacementAssignments = new List<PlacementAssignment>() { placementAssignment }; rotationGroup.Type = "AD_SERVING_STANDARD_AD";
-
Salve o anúncio chamando
ads.insert()
.// Insert the rotation group. Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();
Java
-
Crie um objeto
CreativeAssignment
para cada criativo associado a esse anúncio. Defina o campoCreativeAssignment.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);
-
Crie um objeto
CreativeRotation
para armazenar asCreativeAssignment
s. Se você estiver criando um grupo de rotação, assegure-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));
-
Crie um objeto
PlacementAssignment
para cada posição associada a esse anúncio. Defina o campoPlacementAssignment.active
como verdadeiro.// Create a placement assignment. PlacementAssignment placementAssignment = new PlacementAssignment(); placementAssignment.setActive(true); placementAssignment.setPlacementId(placementId);
-
Crie um objeto
Ad
. Defina o CreativeRotação no campocreativeRotation
do objetoAd
e a veiculaçãoAssignments para a matrizplacementAssignments
do objetoAd
.// Create a delivery schedule. DeliverySchedule deliverySchedule = new DeliverySchedule(); deliverySchedule.setImpressionRatio(1L); deliverySchedule.setPriority("AD_PRIORITY_01"); DateTime startDate = new DateTime(new Date()); DateTime endDate = new DateTime(campaign.getEndDate().getValue()); // Create a rotation group. Ad rotationGroup = new Ad(); rotationGroup.setActive(true); rotationGroup.setCampaignId(campaignId); rotationGroup.setCreativeRotation(creativeRotation); rotationGroup.setDeliverySchedule(deliverySchedule); rotationGroup.setStartTime(startDate); rotationGroup.setEndTime(endDate); rotationGroup.setName(adName); rotationGroup.setPlacementAssignments(ImmutableList.of(placementAssignment)); rotationGroup.setType("AD_SERVING_STANDARD_AD");
-
Salve o anúncio chamando
ads.insert()
.// Insert the rotation group. Ad result = reporting.ads().insert(profileId, rotationGroup).execute();
PHP
-
Crie um objeto
CreativeAssignment
para cada criativo associado a esse anúncio. Defina o campoCreativeAssignment.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);
-
Crie um objeto
CreativeRotation
para armazenar asCreativeAssignment
s. Se você estiver criando um grupo de rotação, assegure-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]);
-
Crie um objeto
PlacementAssignment
para cada posição associada a esse anúncio. Defina o campoPlacementAssignment.active
como verdadeiro.// Create a placement assignment. $placementAssignment = new Google_Service_Dfareporting_PlacementAssignment(); $placementAssignment->setActive(true); $placementAssignment->setPlacementId($values['placement_id']);
-
Crie um objeto
Ad
. Defina o CreativeRotação no campocreativeRotation
do objetoAd
e a veiculaçãoAssignments para a matrizplacementAssignments
do objetoAd
.// Create a delivery schedule. $deliverySchedule = new Google_Service_Dfareporting_DeliverySchedule(); $deliverySchedule->setImpressionRatio(1); $deliverySchedule->SetPriority('AD_PRIORITY_01'); $startDate = new DateTime('today'); $endDate = new DateTime($campaign->getEndDate()); // Create a rotation group. $ad = new Google_Service_Dfareporting_Ad(); $ad->setActive(true); $ad->setCampaignId($values['campaign_id']); $ad->setCreativeRotation($creativeRotation); $ad->setDeliverySchedule($deliverySchedule); $ad->setStartTime($startDate->format('Y-m-d') . 'T23:59:59Z'); $ad->setEndTime($endDate->format('Y-m-d') . 'T00:00:00Z'); $ad->setName($values['ad_name']); $ad->setPlacementAssignments([$placementAssignment]); $ad->setType('AD_SERVING_STANDARD_AD');
-
Salve o anúncio chamando
ads.insert()
.$result = $this->service->ads->insert($values['user_profile_id'], $ad);
Python
-
Crie um objeto
CreativeAssignment
para cada criativo associado a esse anúncio. Defina o campoCreativeAssignment.active
como verdadeiro.# Construct creative assignment. creative_assignment = { 'active': 'true', 'creativeId': creative_id, 'clickThroughUrl': { 'defaultLandingPage': 'true' } }
-
Crie um objeto
CreativeRotation
para armazenar asCreativeAssignment
s. Se você estiver criando um grupo de rotação, assegure-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' }
-
Crie um objeto
PlacementAssignment
para cada posição associada a esse anúncio. Defina o campoPlacementAssignment.active
como verdadeiro.# Construct placement assignment. placement_assignment = { 'active': 'true', 'placementId': placement_id, }
-
Crie um objeto
Ad
. Defina o CreativeRotação no campocreativeRotation
do objetoAd
e a veiculaçãoAssignments para a matrizplacementAssignments
do objetoAd
.# Construct delivery schedule. delivery_schedule = { 'impressionRatio': '1', 'priority': 'AD_PRIORITY_01' } # Construct and save ad. ad = { 'active': 'true', 'campaignId': campaign_id, 'creativeRotation': creative_rotation, 'deliverySchedule': delivery_schedule, 'endTime': '%sT00:00:00Z' % campaign['endDate'], 'name': 'Test Rotation Group', 'placementAssignments': [placement_assignment], 'startTime': '%sT23:59:59Z' % time.strftime('%Y-%m-%d'), 'type': 'AD_SERVING_STANDARD_AD' }
-
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
-
Crie um objeto
CreativeAssignment
para cada criativo associado a esse anúncio. Defina o campoCreativeAssignment.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 ) )
-
Crie um objeto
CreativeRotation
para armazenar asCreativeAssignment
s. Se você estiver criando um grupo de rotação, assegure-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' )
-
Crie um objeto
PlacementAssignment
para cada posição associada a esse anúncio. Defina o campoPlacementAssignment.active
como verdadeiro.# Construct placement assignment. placement_assignment = DfareportingUtils::API_NAMESPACE::PlacementAssignment.new( active: true, placement_id: placement_id )
-
Crie um objeto
Ad
. Defina o CreativeRotação no campocreativeRotation
do objetoAd
e a veiculaçãoAssignments para a matrizplacementAssignments
do objetoAd
.# Construct delivery schedule. delivery_schedule = DfareportingUtils::API_NAMESPACE::DeliverySchedule.new( impression_ratio: 1, priority: 'AD_PRIORITY_01' ) # Construct and save ad. ad = DfareportingUtils::API_NAMESPACE::Ad.new( active: true, campaign_id: campaign_id, creative_rotation: creative_rotation, delivery_schedule: delivery_schedule, end_time: format('%sT00:00:00Z', campaign.end_date), name: 'Example Rotation Group', placement_assignments: [placement_assignment], start_time: format('%sT23:59:59Z', Time.now.strftime('%Y-%m-%d')), type: 'AD_SERVING_STANDARD_AD' )
-
Salve o anúncio chamando
ads.insert()
.result = service.insert_ad(profile_id, ad)
Implicitamente
C#
-
Crie e salve um
Placement
. -
Crie e salve um
Creative
. -
Associe
Creative
ao mesmoCampaign
usado paraPlacement
chamandocampaignCreativeAssociations.insert()
. Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e ao canal.// 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
-
Crie e salve um
Placement
. -
Crie e salve um
Creative
. -
Associe
Creative
ao mesmoCampaign
usado paraPlacement
chamandocampaignCreativeAssociations.insert()
. Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e ao canal.// 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
-
Crie e salve um
Placement
. -
Crie e salve um
Creative
. -
Associe
Creative
ao mesmoCampaign
usado paraPlacement
chamandocampaignCreativeAssociations.insert()
. Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e ao canal.$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
-
Crie e salve um
Placement
. -
Crie e salve um
Creative
. -
Associe
Creative
ao mesmoCampaign
usado paraPlacement
chamandocampaignCreativeAssociations.insert()
. Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e ao canal.# 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
-
Crie e salve um
Placement
. -
Crie e salve um
Creative
. -
Associe
Creative
ao mesmoCampaign
usado paraPlacement
chamandocampaignCreativeAssociations.insert()
. Consulte a etapa 4 na seção Como gerar um criativo. Isso criará um anúncio default associado ao criativo e ao canal.# 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 para esse tipo de objeto. Por exemplo, para pesquisar objetos "Ad", chame ads.list()
. Os critérios opcionais expõem um conjunto de propriedades apropriadas para 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 qualquer critério. As strings oferecem suporte ao caractere curinga *, não diferenciam maiúsculas de minúsculas e têm correspondência dentro de strings maiores.
Para melhorar o desempenho, é possível solicitar respostas parciais 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. Mais informações sobre esse tópico podem ser encontradas 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ê tenha interesse somente nos 10 anúncios mais novos de um pool de milhares. Para ajudar nisso, 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 (padrão). É possível alterar o número de resultados por página definindo maxResults
. Além disso, você pode iterar pelas 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 rastrear as ações do usuário (por exemplo, compras) em um site. Para gerar tags do Floodlight, você precisa de um FloodlightActivity
.
que pertence a um FloodlightActivityGroup
:
C#
-
Crie um novo grupo de atividades do Floodlight e transmita os valores de
name
,type
efloodlightConfigurationId
.// Create the floodlight activity group. FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup(); floodlightActivityGroup.Name = groupName; floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId; floodlightActivityGroup.Type = "COUNTER";
-
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();
-
Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, assim 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;
-
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();
-
Gere as tags chamando
floodlightActivities.generatetag()
com ofloodlightActivityId
da nova atividade. Envie as tags para o 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
-
Crie um novo grupo de atividades do Floodlight e transmita os valores de
name
,type
efloodlightConfigurationId
.// Create the floodlight activity group. FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup(); floodlightActivityGroup.setName(groupName); floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId); floodlightActivityGroup.setType("COUNTER");
-
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();
-
Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, assim 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");
-
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();
-
Gere as tags chamando
floodlightActivities.generatetag()
com ofloodlightActivityId
da nova atividade. Envie as tags para o webmaster no site do anunciante.// Generate the floodlight activity tag. Generatetag request = reporting.floodlightActivities().generatetag(profileId); request.setFloodlightActivityId(activityId); FloodlightActivitiesGenerateTagResponse response = request.execute();
PHP
-
Crie um novo grupo de atividades do Floodlight e transmita os valores de
name
,type
efloodlightConfigurationId
.$group = new Google_Service_Dfareporting_FloodlightActivityGroup(); $group->setFloodlightConfigurationId($values['configuration_id']); $group->setName($values['group_name']); $group->setType('COUNTER');
-
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 );
-
Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, assim 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']);
-
Salve a nova atividade chamando
floodlightActivities.insert()
, que retornará o ID dela.$result = $this->service->floodlightActivities->insert( $values['user_profile_id'], $activity );
-
Gere as tags chamando
floodlightActivities.generatetag()
com ofloodlightActivityId
da nova atividade. Envie as tags para o webmaster no site do anunciante.$result = $this->service->floodlightActivities->generatetag( $values['user_profile_id'], ['floodlightActivityId' => $values['activity_id']] );
Python
-
Crie um novo grupo de atividades do Floodlight e transmita os valores de
name
,type
efloodlightConfigurationId
.# Construct and save floodlight activity group. activity_group = { 'name': 'Test Floodlight Activity Group', 'floodlightConfigurationId': floodlight_config_id, 'type': 'COUNTER' }
-
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)
-
Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, assim 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' }
-
Salve a nova atividade chamando
floodlightActivities.insert()
, que retornará o ID dela.request = service.floodlightActivities().insert( profileId=profile_id, body=floodlight_activity)
-
Gere as tags chamando
floodlightActivities.generatetag()
com ofloodlightActivityId
da nova atividade. Envie as tags para o 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
-
Crie um novo grupo de atividades do Floodlight e transmita os valores de
name
,type
efloodlightConfigurationId
.# 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' )
-
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)
-
Crie uma nova atividade do Floodlight e atribua a ela o ID do grupo de atividades do Floodlight recém-criado, assim 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)) )
-
Salve a nova atividade chamando
floodlightActivities.insert()
, que retornará o ID dela.# Insert the floodlight activity. result = service.insert_floodlight_activity(profile_id, activity)
-
Gere as tags chamando
floodlightActivities.generatetag()
com ofloodlightActivityId
da nova atividade. Envie as tags para o 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 pela 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])