Kaynak hedeflemenin yönetimi, Display & Video 360 API'sinin temel özelliklerinden biridir. Hedefleme, birden fazla kaynak türüne atanabilir ve çeşitli diğer kaynakları ve kimlik alanlarını kullanır. Bu sayfada, Display & Video 360 API Atanmış Hedefleme Seçenekleri hizmetlerini kullanmaya başlarken dikkat etmeniz gereken sınırlamalar ve uygulamanız gereken en iyi uygulamalar ayrıntılı olarak açıklanmaktadır.
Hedefleme devralımından yararlanma
Bazı kaynaklara atanan hedefleme, alt kaynakları tarafından devralınabilir. Bir alt kaynak tarafından devralınan hedefleme seçenekleri alınabilir ancak alt kaynak düzeyinde düzenlenemez. Bu sayede marka güvenliği ayarlarının ve diğer hedeflemelerin bir iş ortağının veya reklamverenin tamamında uygulanması sağlanır.
Devralınan yolunu aşağıdaki şemada görebilirsiniz:
Şemada belirtildiği gibi, bazı hedefleme seviyeleri yalnızca hedefleme türlerinin bir alt kümesini destekler. Bu, bazı hedefleme seçeneklerinin daha yüksek düzeylerde ayarlanıp devralınamayacağı, bunun yerine daha düşük bir düzeyde ayarlanması gerektiği anlamına gelir.
YouTube ve İş Ortakları kaynaklarında devralma
Hedefleme devralma, Display & Video 360 API'deki YouTube ve İş Ortakları kaynaklarına yansıtılmaz. Reklam grupları tarafından devralınan hedefleme AdGroup
seviyesinde alınamaz ve üst kaynaklara atanan YouTube hedeflemesi alt kaynaklar tarafından devralınmaz.
Bir reklam grubunun tüm işlevsel hedefleme ayarlarını almak için reklam grubu, üst satır öğesi ve üst reklamveren için atanan hedefleme seçeneklerini almanız gerekir.
Satır öğesi oluşturulurken atanan hedeflemeye dikkat edin
Devralınan hedefleme seçenekleri dışındaki çoğu hedefleme, yalnızca bir satır öğesi oluşturulduktan sonra atanabilir. Ancak, satır öğesi oluşturulurken satır öğelerine atanan varsayılan bir değer alt kümesi olan birkaç hedefleme türü vardır. Bu hedefleme türleri şunlardır:
Mevcut hedefleme seçenekleri oluşturmaya veya mevcut olmayan atanmış hedefleme seçeneklerini silmeye çalıştığınızda hata alırsınız. Bu nedenle, satır öğeleriniz oluşturulduktan sonra atanmış hedefleme paketinin tamamının farkında olmanızı öneririz. Bir satır öğesine hedefleme türleri arasında atanan hedeflemeyi almanız gerekiyorsa advertisers.lineItems.bulkListAssignedTargetingOptions
değerini kullanın.
Ayrıca, kaynağa bu tür bir hedefleme seçeneği atanmamışsa bazı ayarlar varsayılan olarak ayarlanır. Örneğin, bir kaynağın TARGETING_TYPE_AUTHORIZED_SELLER_STATUS
hedefleme seçeneği tanımlanmamışsa "Doğrudan Satıcılar ve Bayiler" durumunu kullandığı anlamına gelir.
Otomatik "varsayılan hedefleme" beklemeyin
Display & Video 360'ta kampanya veya kampanya siparişi düzeyinde ayarlanan hedefleme, alt satır öğelerine hemen aktarılmaz. Bu hedefleme "varsayılan hedefleme" olarak bilinir ve kullanıcı arayüzünde daha sonra oluşturulan satır öğelerine uygulanan bir hedefleme şablonu olarak kullanılır.
Display & Video 360 API'de varsayılan hedefleme, yeni oluşturulan satır öğelerine otomatik olarak uygulanmaz. Temel satır öğesi oluşturma işlemi, kampanya veya kampanya siparişi düzeyindeki hedeflemeyi kopyalamamaktadır. Bu durumda, hedefleme, atanmış hedefleme seçeneği oluşturma veya toplu düzenleme yöntemleri aracılığıyla satır öğelerine ayrı ayrı uygulanmalıdır.
Özel yöntemler istisna olabilir. Örneğin, advertisers.lineItems.generateDefault
aracılığıyla oluşturulan satır öğeleri, atanan hedefleme dahil olmak üzere ayarları üst kampanya siparişlerinden kopyalar.
Benzer şekilde, kopyalama yoluyla oluşturulan satır öğelerine orijinal satır öğesiyle aynı hedefleme atanır.
YouTube ve İş Ortakları hedeflemesi değiştirilemez
Özellikle YouTube ve İş Ortakları kampanyaları için hedefleme, Display & Video 360 API kullanılarak güncellenemez.
YouTube ve İş Ortakları hedeflemesi, doğrudan YouTube ve İş Ortakları satır öğelerine ve reklam gruplarına atanan tüm hedeflemenin yanı sıra aşağıdaki hedefleme türlerinin tümünden oluşur:
TARGETING_TYPE_SESSION_POSITION
TARGETING_TYPE_YOUTUBE_CHANNEL
TARGETING_TYPE_YOUTUBE_VIDEO
Bu hedefleme, doğrudan Display & Video 360 kullanıcı arayüzü kullanılarak veya yapılandırılmış veri dosyası yükleyerek güncellenebilir.
Tek bir seçenekle kitle hedefleme atama
Çoğu hedefleme türü için hedefleme seçenekleri ayrı ayrı atanır. Kitle grubu hedefleme bu modüler kurala uymaz. Bunun yerine, reklam yayınlarken dahil edilecek ve hariç tutulacak kitlelerin kimliklerini listeleyen tek bir, yapılandırılabilir kitle grubu hedefleme ayrıntıları nesnesi içinde atanır. Bu kitle grubu seçeneği için atandıktan sonra assignedTargetingOptionId
her zaman "audienceGroup" olur.
Bu tasarım, kitle grubu hedeflemesinde yapılacak tüm değişikliklerin, önce atanmış mevcut kitle grubu hedefleme seçeneğini silerek ve ardından istenen değişiklikleri içeren yeni bir kitle grubu hedefleme seçeneği oluşturarak yapılması gerektiği anlamına gelir. Bu işlem, advertisers.lineItems.bulkEditAssignedTargetingOptions
kullanılarak tek bir istekle yapılabilir.
Ek Google kitlelerini olumlu yönde hedeflemek için kitle hedeflemenin nasıl güncelleneceğine dair bir örnek aşağıda verilmiştir:
Java
long advertiserId = advertiser-id; long lineItemId = line-item-id List<Long> addedGoogleAudienceIds = Arrays.asList(google-audience-id-to-add,...); // Build Google audience targeting settings objects to add to audience // targeting. ArrayList<GoogleAudienceTargetingSetting> newGoogleAudienceSettings = new ArrayList<GoogleAudienceTargetingSetting>(); // Convert list of Google Audience IDs into list of settings. for (Long googleAudienceId : addedGoogleAudienceIds) { newGoogleAudienceSettings.add(new GoogleAudienceTargetingSetting() .setGoogleAudienceId(googleAudienceId)); } // Create relevant bulk edit request objects. BulkEditLineItemAssignedTargetingOptionsRequest requestContent = new BulkEditLineItemAssignedTargetingOptionsRequest(); AudienceGroupAssignedTargetingOptionDetails updatedAudienceGroupDetails; ArrayList<DeleteAssignedTargetingOptionsRequest> audienceGroupDeleteRequests = new ArrayList<DeleteAssignedTargetingOptionsRequest>(); try { // Retrieve existing audience group targeting. AssignedTargetingOption existingAudienceGroupTargetingOption = service .advertisers() .lineItems() .targetingTypes() .assignedTargetingOptions() .get( advertiserId, lineItemId, "TARGETING_TYPE_AUDIENCE_GROUP", "audienceGroup" ).execute(); // Extract existing audience group targeting details. updatedAudienceGroupDetails = existingAudienceGroupTargetingOption.getAudienceGroupDetails(); // Build and add delete request for existing audience group targeting. ArrayList<String> deleteAudienceGroupAssignedTargetingIds = new ArrayList<String>(); deleteAudienceGroupAssignedTargetingIds.add("audienceGroup"); audienceGroupDeleteRequests .add(new DeleteAssignedTargetingOptionsRequest() .setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP") .setAssignedTargetingOptionIds( deleteAudienceGroupAssignedTargetingIds ) ); } catch (GoogleJsonResponseException e) { updatedAudienceGroupDetails = new AudienceGroupAssignedTargetingOptionDetails(); } // Set delete requests in edit request. requestContent.setDeleteRequests(audienceGroupDeleteRequests); // Construct new group of Google Audiences to include in targeting. GoogleAudienceGroup updatedIncludedGoogleAudienceGroup = updatedAudienceGroupDetails.getIncludedGoogleAudienceGroup(); if (updatedIncludedGoogleAudienceGroup != null) { List<GoogleAudienceTargetingSetting> updatedGoogleAudienceSettings = updatedIncludedGoogleAudienceGroup.getSettings(); updatedGoogleAudienceSettings.addAll(newGoogleAudienceSettings); updatedIncludedGoogleAudienceGroup .setSettings(updatedGoogleAudienceSettings); } else { updatedIncludedGoogleAudienceGroup = new GoogleAudienceGroup(); updatedIncludedGoogleAudienceGroup.setSettings(newGoogleAudienceSettings); } // Add new Google Audience group to audience group targeting details. updatedAudienceGroupDetails .setIncludedGoogleAudienceGroup(updatedIncludedGoogleAudienceGroup); // Create new targeting option to assign. AssignedTargetingOption newAudienceGroupTargeting = new AssignedTargetingOption(); newAudienceGroupTargeting .setAudienceGroupDetails(updatedAudienceGroupDetails); // Build audience group targeting create request and add to list of create // requests. ArrayList<AssignedTargetingOption> createAudienceGroupAssignedTargetingOptions = new ArrayList<AssignedTargetingOption>(); createAudienceGroupAssignedTargetingOptions.add(newAudienceGroupTargeting); ArrayList<CreateAssignedTargetingOptionsRequest> targetingCreateRequests = new ArrayList<CreateAssignedTargetingOptionsRequest>(); targetingCreateRequests.add(new CreateAssignedTargetingOptionsRequest() .setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP") .setAssignedTargetingOptions( createAudienceGroupAssignedTargetingOptions ) ); // Set create requests in edit request. requestContent.setCreateRequests(targetingCreateRequests); // Configure and execute the bulk list request. BulkEditLineItemAssignedTargetingOptionsResponse response = service.advertisers().lineItems() .bulkEditLineItemAssignedTargetingOptions( advertiserId, lineItemId, requestContent).execute();
Python
advertiser_id = advertiser-id line_item_id = line-item-id added_google_audiences = [google-audience-id-to-add,...] # Build Google audience targeting settings objects to create. new_google_audience_targeting_settings = [] for google_audience_id in added_google_audiences: new_google_audience_targeting_settings.append( {'googleAudienceId': google_audience_id} ) # Retrieve any existing line item audience targeting. retrieved_audience_targeting = service.advertisers().lineItems( ).targetingTypes().assignedTargetingOptions().get( advertiserId=advertiser_id, lineItemId=line_item_id, targetingType="TARGETING_TYPE_AUDIENCE_GROUP", assignedTargetingOptionId="audienceGroup" ).execute() updated_audience_group_details = {} # Copy over any existing audience targeting. if 'audienceGroupDetails' in retrieved_audience_targeting: updated_audience_group_details = retrieved_audience_targeting[ 'audienceGroupDetails'] # Append the new Google audience IDs to any existing positive Google # audience targeting. if 'includedGoogleAudienceGroup' in updated_audience_group_details: updated_audience_group_details[ 'includedGoogleAudienceGroup']['settings'].extend( new_google_audience_targeting_settings) else: updated_audience_group_details['includedGoogleAudienceGroup'] = { 'settings': new_google_audience_targeting_settings } # Build bulk edit request. bulk_edit_request = { 'deleteRequests': [ { 'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP", 'assignedTargetingOptionIds': [ "audienceGroup" ] } ], 'createRequests': [ { 'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP", 'assignedTargetingOptions': [ {'audienceGroupDetails': updated_audience_group_details} ] } ] } # Update the audience targeting updated_audience_targeting = service.advertisers().lineItems( ).bulkEditLineItemAssignedTargetingOptions( advertiserId=advertiser_id, lineItemId=line_item_id, body=bulk_edit_request ).execute()
PHP
$advertiserId = advertiser-id; $lineItemId = line-item-id; $addedGoogleAudienceIds = array(google-audience-id-to-add,...); // Convert list of Google Audience IDs into list of Google audience // settings. $newGoogleAudienceSettings = array(); foreach ($addedGoogleAudienceIds as $googleAudienceId) { $newSetting = new Google_Service_DisplayVideo_GoogleAudienceTargetingSetting(); $newSetting->setGoogleAudienceId($googleAudienceId); $newGoogleAudienceSettings[] = $newSetting; } // Create a bulk edit request. $requestBody = new Google_Service_DisplayVideo_BulkEditLineItemAssignedTargetingOptionsRequest(); $audienceGroupDeleteRequests = array(); try { // Retrieve existing audience group targeting. $existingAudienceGroupTargetingOption = $this ->service ->advertisers_lineItems_targetingTypes_assignedTargetingOptions ->get( $advertiserId, $lineItemId, 'TARGETING_TYPE_AUDIENCE_GROUP', 'audienceGroup' ); // Extract existing audience group targeting details. $updatedAudienceGroupDetails = $existingAudienceGroupTargetingOption ->getAudienceGroupDetails(); // Build and add delete request for existing audience group // targeting. $deleteAudienceGroupAssignedTargetingIds = array(); $deleteAudienceGroupAssignedTargetingIds[] = "audienceGroup"; $audienceGroupDeleteRequest = new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest(); $audienceGroupDeleteRequest ->setTargetingType('TARGETING_TYPE_AUDIENCE_GROUP'); $audienceGroupDeleteRequest ->setAssignedTargetingOptionIds( $deleteAudienceGroupAssignedTargetingIds ); $audienceGroupDeleteRequests[] = $audienceGroupDeleteRequest; } catch (\Exception $e) { $updatedAudienceGroupDetails = new Google_Service_DisplayVideo_AudienceGroupAssignedTargetingOptionDetails(); } // Set delete requests in edit request. $requestBody->setDeleteRequests($audienceGroupDeleteRequests); // Construct new group of Google audiences to include in targeting. $updatedIncludedGoogleAudienceGroup = $updatedAudienceGroupDetails ->getIncludedGoogleAudienceGroup(); if (!empty($updatedIncludedGoogleAudienceGroup)) { // Get existing settings. $updatedGoogleAudienceSettings = $updatedIncludedGoogleAudienceGroup->getSettings(); // Add new Google audiences to existing list. $updatedGoogleAudienceSettings = array_merge( $updatedGoogleAudienceSettings, $newGoogleAudienceSettings ); // Set updated Google audience list. $updatedIncludedGoogleAudienceGroup ->setSettings($updatedGoogleAudienceSettings); } else { // Create new Google audience group. $updatedIncludedGoogleAudienceGroup = new Google_Service_DisplayVideo_GoogleAudienceGroup(); // Set list of new Google audiences for targeting. $updatedIncludedGoogleAudienceGroup ->setSettings($newGoogleAudienceSettings); } // Add new Google Audience group to audience group targeting details. $updatedAudienceGroupDetails ->setIncludedGoogleAudienceGroup( $updatedIncludedGoogleAudienceGroup ); // Create new targeting option to assign. $newAudienceGroupTargeting = new Google_Service_DisplayVideo_AssignedTargetingOption(); $newAudienceGroupTargeting ->setAudienceGroupDetails($updatedAudienceGroupDetails); // Build audience group targeting create request and add to list of // create requests. $createAudienceGroupAssignedTargetingOptions = array(); $createAudienceGroupAssignedTargetingOptions[] = $newAudienceGroupTargeting; $createAudienceGroupTargetingRequest = new Google_Service_DisplayVideo_CreateAssignedTargetingOptionsRequest(); $createAudienceGroupTargetingRequest->setTargetingType( "TARGETING_TYPE_AUDIENCE_GROUP" ); $createAudienceGroupTargetingRequest->setAssignedTargetingOptions( $createAudienceGroupAssignedTargetingOptions ); $createRequests[] = $createAudienceGroupTargetingRequest; // Set create requests in edit request. $requestBody->setCreateRequests($createRequests); // Call the API, editing the assigned targeting options for the // identified line item. $response = $this ->service ->advertisers_lineItems ->bulkEditLineItemAssignedTargetingOptions( $advertiserId, $lineItemId, $requestBody );
Hedefleme seçeneklerinin desteğinin sonlandırılmasına hazırlıklı olun
Hedefleme seçenekleri statik değildir ve zaman zaman bunların desteği sonlandırılabilir. Desteği sonlandırılan hedefleme seçenekleri, satır öğesinin reklam yayınını etkilemez. Desteği sonlandırıldıktan sonra bu seçenekler mevcut satır öğelerinden kaldırılır ve bu seçenekleri almaya veya atamaya çalışan istekler hatalarla sonuçlanır.
Bu hataları önlemek için saklanan hedefleme seçeneği kimliklerini düzenli olarak kontrol etmenizi öneririz. Kotayı korumak için sık kullanılan kimlikleri önbelleğe almanızı öneririz. Ancak kimlikleri depolamak, bir hedefleme seçeneğinin desteğinin sonlandırıldığını fark edememeniz anlamına gelir. Bu nedenle, depolanan tüm hedefleme seçeneği kimliklerini almak ve Display & Video 360 tarafından hâlâ desteklenip desteklenmediğini onaylamak için düzenli olarak targetingOptions.targetingTypes.get
işlevini kullanmanız gerekir.
Önceki ve gelecekteki önemli kullanımdan kaldırma işlemleriyle ilgili ayrıntılar için Kullanımdan Kaldırılacak Özellikler sayfamıza göz atın.
Aynı satır öğesini güncelleyen eşzamanlı istekler göndermeyin
Birden fazla eşzamanlı istek kullanarak tek bir satır öğesi için ayarları veya atanan hedeflemeyi güncellemeye çalışmak hata döndürür. Geçerli istekler şunlardır:
advertisers.lineItems.bulkEditAssignedTargetingOptions
advertisers.lineItems.bulkUpdate
advertisers.lineItems.patch
advertisers.lineItems.targetingTypes.assignedTargetingOptions.create
advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
Tek bir satır öğesi için aynı anda birden fazla atanmış hedefleme seçeneği eklemeniz veya kaldırmanız gerekiyorsa tek bir advertisers.lineItems.bulkEditAssignedTargetingOptions
isteği kullanmanız gerekir. Bir satır öğesinin ayarlarını ve hedeflemesini güncellemek istiyorsanız patch
veya bulkUpdate
isteğini ve ilgili hedefleme isteğini sıraya ekleyin. Böylece, ilk istek yanıt verene kadar ikinci istek gönderilmez.