Bu kılavuzda, Campaign Manager 360 API Conversions
hizmetini kullanarak dönüşümleri düzenleme hakkında ayrıntılı talimatlar yer alır. Devam etmeden önce, çevrimdışı dönüşümlere giriş yapmak ve bu kılavuzda açıklanan kavramları öğrenmek için Genel Bakış sayfasını incelemeniz önerilir.
Başlamadan önce
Bu düzenleme iş akışı, mevcut online ve çevrimdışı dönüşümlerin quantity
ve value
kadarını değiştirmenize olanak tanır. Bunu yapmak için düzenlenecek dönüşümleri benzersiz şekilde tanımlayan değerler sağlamanız gerekir. Düzenlediğiniz dönüşümlerin türüne bağlı olarak bu değerleri farklı şekillerde alırsınız:
Online dönüşümleri tanımlamak için gereken değerler Veri Aktarımı'ndan elde edilebilir.
Çevrimdışı dönüşümleri tanımlamak için gereken değerler, başarılı
batchinsert
isteklerininConversionsBatchInsertResponse
kadarı döndürülür.
Her iki türdeki bir dönüşümü başarılı bir şekilde düzenlediğinizde ConversionsBatchUpdateResponse
, sonraki düzenlemeleri gerçekleştirmek için gereken değerleri içerir.
Dönüşüm kaynaklarını yapılandırın
Düzenleme iş akışının ilk adımı, bir veya daha fazla Conversion
kaynak nesnesi oluşturmaktır.
Düzenlenecek bir dönüşümü tanımlamak için aşağıdaki alanlar kullanılır. Bu alanlar zorunludur ve mevcut bir dönüşümle tam olarak eşleşmelidir.
Alan | Açıklama |
---|---|
|
Dönüşümü oluşturan şifrelenmiş kullanıcı kimliği, Google tıklama kimliği, görüntülü reklam tıklama kimliği, eşleşme kimliği veya mobil cihaz kimliği. |
floodlightActivityId |
Dönüşümün ilişkilendirildiği Floodlight etkinliği. |
floodlightConfigurationId |
Belirtilen etkinlik tarafından kullanılan Floodlight yapılandırması. |
ordinal |
Dönüşümle ilişkili tekilleştirme tanımlayıcısı. |
timestampMicros |
Unix döneminden bu yana geçen, mikrosaniye cinsinden dönüşümün zaman damgası. |
Düzenleyebileceğiniz alanlar aşağıda listelenmiştir. Bu alanlar zorunludur ve sağladığınız değerler, düzenlenen dönüşümdeki mevcut değerlerin üzerine yazar.
Alan | Açıklama |
---|---|
quantity |
Dönüşümle ilişkili öğe sayısı. |
value |
Dönüşümden elde edilen gelirin tutarı. |
Referans belgelerinde belirtilen diğer tüm alanlar desteklenmez ve değiştirilemez. Düzenleme isteğinize desteklenmeyen alanlar eklenmesi hataya neden olur. Düzenlenen dönüşüm, desteklenmeyen alanlar için önceden oluşturulmuş değerler içeriyorsa bu değerler otomatik olarak korunur.
Aşağıdaki örnekte, basit bir dönüşüm kaynağı nesnesinin nasıl oluşturulacağı gösterilmektedir:
C#
// Find the Floodlight configuration ID based on the provided activity ID. FloodlightActivity floodlightActivity = service.FloodlightActivities.Get(profileId, floodlightActivityId).Execute(); long floodlightConfigurationId = (long) floodlightActivity.FloodlightConfigurationId; // Construct the conversion object with values that identify the conversion to update. Conversion conversion = new Conversion(); conversion.EncryptedUserId = conversionUserId; conversion.FloodlightActivityId = floodlightActivityId; conversion.FloodlightConfigurationId = floodlightConfigurationId; conversion.Ordinal = conversionOrdinal; conversion.TimestampMicros = conversionTimestamp; // Set the fields to be updated. These fields are required; to preserve a value from the // existing conversion, it must be copied over manually. conversion.Quantity = newQuantity; conversion.Value = newValue;
Java
// Create a conversion object populated with values that identify the conversion to update. Conversion conversion = new Conversion(); conversion.setEncryptedUserId(encryptedUserId); conversion.setFloodlightActivityId(floodlightActivityId); conversion.setFloodlightConfigurationId(floodlightConfigurationId); conversion.setOrdinal(ordinal); conversion.setTimestampMicros(timestampMicros); // Set the fields to be updated. These fields are required; to preserve a value from the // existing conversion, it must be copied over manually. conversion.setQuantity(newQuantity); conversion.setValue(newValue);
2.999
// Find Floodlight configuration ID based on provided activity ID. $activity = $this->service->floodlightActivities->get( $values['user_profile_id'], $values['floodlight_activity_id'] ); $floodlightConfigId = $activity->getFloodlightConfigurationId(); // Create a conversion object with values that identify the conversion to // update. $conversion = new Google_Service_Dfareporting_Conversion(); $conversion->setEncryptedUserId($values['encrypted_user_id']); $conversion->setFloodlightActivityId($values['floodlight_activity_id']); $conversion->setFloodlightConfigurationId($floodlightConfigId); $conversion->setOrdinal($values['ordinal']); $conversion->setTimestampMicros($values['timestamp']); // Set the fields to be updated. These fields are required; to preserve a // value from the existing conversion, it must be copied over manually. $conversion->setQuantity($values['new_quantity']); $conversion->setValue($values['new_value']);
Python
# Construct the conversion object with values that identify the conversion # to update. conversion = { 'encryptedUserId': encrypted_user_id, 'floodlightActivityId': floodlight_activity_id, 'floodlightConfigurationId': floodlight_config_id, 'ordinal': ordinal, 'timestampMicros': timestamp } # Set the fields to be updated. These fields are required; to preserve a # value from the existing conversion, it must be copied over manually. conversion['quantity'] = new_quantity conversion['value'] = new_value
Ruby
# Look up the Floodlight configuration ID based on activity ID. floodlight_activity = service.get_floodlight_activity(profile_id, existing_conversion[:floodlight_activity_id]) floodlight_config_id = floodlight_activity.floodlight_configuration_id # Construct the conversion with values that identify the conversion to # update. conversion = DfareportingUtils::API_NAMESPACE::Conversion.new( encrypted_user_id: existing_conversion[:encrypted_user_id], floodlight_activity_id: existing_conversion[:floodlight_activity_id], floodlight_configuration_id: floodlight_config_id, ordinal: existing_conversion[:ordinal], timestamp_micros: existing_conversion[:timestamp] ) # Set the fields to be updated. These fields are required; to preserve a # value from the existing conversion, it must be copied over manually. conversion.quantity = new_quantity conversion.value = new_value
Şifreleme bilgilerini belirtin
Düzenlenen dönüşümler şifrelenmiş kullanıcı kimlikleriyle ilişkilendirilmişse düzenleme isteğinin bir parçası olarak bu verilerin nasıl şifrelendiğiyle ilgili bilgi vermeniz gerekir. Ayrıntılar için Dönüşümleri Yükleme kılavuzunu inceleyin.
Gerektiğinde, bu değerleri belirten bir EncryptionInfo
nesnesi oluşturmak, düzenleme iş akışının ikinci adımıdır:
C#
// Create the encryption info. EncryptionInfo encryptionInfo = new EncryptionInfo(); encryptionInfo.EncryptionEntityId = encryptionEntityId; encryptionInfo.EncryptionEntityType = encryptionEntityType; encryptionInfo.EncryptionSource = encryptionSource;
Java
// Create the encryption info. EncryptionInfo encryptionInfo = new EncryptionInfo(); encryptionInfo.setEncryptionEntityId(encryptionEntityId); encryptionInfo.setEncryptionEntityType(encryptionEntityType); encryptionInfo.setEncryptionSource(encryptionSource);
2.999
$encryptionInfo = new Google_Service_Dfareporting_EncryptionInfo(); $encryptionInfo->setEncryptionEntityId($values['encryption_entity_id']); $encryptionInfo->setEncryptionEntityType($values['encryption_entity_type']); $encryptionInfo->setEncryptionSource($values['encryption_source']);
Python
# Construct the encryption info. encryption_info = { 'encryptionEntityId': encryption_entity_id, 'encryptionEntityType': encryption_entity_type, 'encryptionSource': encryption_source }
Ruby
# Construct the encryption info. encryption_info = DfareportingUtils::API_NAMESPACE::EncryptionInfo.new( encryption_entity_id: encryption[:entity_id], encryption_entity_type: encryption[:entity_type], encryption_source: encryption[:source] )
Güncelleme isteği oluştur
Bu süreçteki son adım, bir batchupdate
çağrısıyla dönüşümleri düzenlemektir. Bu yöntem, bir ConversionsBatchUpdateRequest
nesnesini kabul eder. Nesne, ilişkili şifreleme bilgileriyle (gerekirse) düzenlenecek dönüşüm grubunu birleştirir:
C#
// Insert the conversion. ConversionsBatchUpdateRequest request = new ConversionsBatchUpdateRequest(); request.Conversions = new List<Conversion>() { conversion }; request.EncryptionInfo = encryptionInfo; ConversionsBatchUpdateResponse response = service.Conversions.Batchupdate(request, profileId).Execute();
Java
ConversionsBatchUpdateRequest request = new ConversionsBatchUpdateRequest(); request.setConversions(ImmutableList.of(conversion)); request.setEncryptionInfo(encryptionInfo); ConversionsBatchUpdateResponse response = reporting.conversions() .batchupdate(profileId, request).execute();
2.999
$batch = new Google_Service_Dfareporting_ConversionsBatchUpdateRequest(); $batch->setConversions([$conversion]); $batch->setEncryptionInfo($encryptionInfo); $result = $this->service->conversions->batchupdate( $values['user_profile_id'], $batch );
Python
# Update the conversion. request_body = { 'conversions': [conversion], 'encryptionInfo': encryption_info } request = service.conversions().batchupdate( profileId=profile_id, body=request_body) response = request.execute()
Ruby
# Construct the batch update request. batch_update_request = DfareportingUtils::API_NAMESPACE::ConversionsBatchUpdateRequest.new( conversions: [conversion], encryption_info: encryption_info ) # Update the conversion. result = service.batchupdate_conversion(profile_id, batch_update_request)
Campaign Manager 360'ın, tüm grubu "ya hep ya hiç" işlemiyle güncellemek yerine, isteğinizdeki her dönüşümü en iyi çaba doğrultusunda düzenlemeye çalıştığını unutmayın. Bir gruptaki bazı dönüşümler güncellenemediğinde, bazı dönüşümler yine de başarıyla güncellenebilir. Bu nedenle, her bir dönüşümün durumunu belirlemek için, döndürülen ConversionsBatchUpdateResponse
özelliğini incelemeniz önerilir:
C#
// Handle the batchinsert response. if (!response.HasFailures.Value) { Console.WriteLine("Successfully updated conversion for encrypted user ID {0}.", conversionUserId); } else { Console.WriteLine("Error(s) updating conversion for encrypted user ID {0}:", conversionUserId); ConversionStatus status = response.Status[0]; foreach(ConversionError error in status.Errors) { Console.WriteLine("\t[{0}]: {1}", error.Code, error.Message); } }
Java
if (!response.getHasFailures()) { System.out.printf("Successfully updated conversion for encrypted user ID %s.%n", encryptedUserId); } else { System.out.printf("Error(s) updating conversion for encrypted user ID %s:%n", encryptedUserId); // Retrieve the conversion status and report any errors found. If multiple conversions // were included in the original request, the response would contain a status for each. ConversionStatus status = response.getStatus().get(0); for (ConversionError error : status.getErrors()) { System.out.printf("\t[%s]: %s.%n", error.getCode(), error.getMessage()); } }
2.999
if (!$result->getHasFailures()) { printf( 'Successfully updated conversion for encrypted user ID %s.', $values['encrypted_user_id'] ); } else { printf( 'Error(s) updating conversion for encrypted user ID %s:<br><br>', $values['encrypted_user_id'] ); $status = $result->getStatus()[0]; foreach ($status->getErrors() as $error) { printf('[%s] %s<br>', $error->getCode(), $error->getMessage()); } }
Python
if not response['hasFailures']: print('Successfully updated conversion for encrypted user ID %s.' % encrypted_user_id) else: print('Error(s) updating conversion for encrypted user ID %s.' % encrypted_user_id) status = response['status'][0] for error in status['errors']: print '\t[%s]: %s' % (error['code'], error['message'])
Ruby
if result.has_failures puts format('Error(s) updating conversion for encrypted user ID %s.', existing_conversion[:encrypted_user_id]) status = result.status[0] status.errors.each do |error| puts format("\t[%s]: %s", error.code, error.message) end else puts format('Successfully updated conversion for encrypted user ID %s.', existing_conversion[:encrypted_user_id]) end
Yukarıda görüldüğü gibi, yanıtın status
alanı, orijinal isteğe dahil edilen her dönüşüm için bir ConversionStatus
nesnesi içerir. Yalnızca güncellenemeyen dönüşümlerle ilgileniyorsanız hasFailures
alanı, sağlanan gruptaki herhangi bir dönüşümün başarısız olup olmadığını hızlıca belirlemek için kullanılabilir.