Google Ads API'yi kullanarak çevrimdışı tıklama dönüşümlerini Google Ads'e yükleyebilir, ardından Google Ads kullanıcı arayüzündeki Yüklemeler dönüşüm kaynağıyla ve ardından Tıklamalardan elde edilen dönüşümler ile eşleyebilirsiniz. Tıklamaları dönüşümlerle ilişkilendirme konusunda daha fazla esneklik sağlar. Telefonla veya bir satış temsilcisi aracılığıyla, çevrimdışı dünyada satış sağlayan reklamları izleyebilirsiniz.
Kimlik parametreleri
Google Ads'in her Google reklamının her gösterimi için sağladığı benzersiz kimlik olan GCLID'yi yakalamak ve depolamak için web sitenizi ve potansiyel müşteri izleme sistemini etkinleştirmeniz gerekir.
Tıklama dönüşümleri Google Ads kullanıcı arayüzüne yüklenirse
otomatik etiketleme otomatik olarak etkinleştirilir. Böylece web siteniz GCLID'yi bir URL parametresi olarak almaya başlar.
Ancak Google Ads API kullanılırken bu durumla olmaz. Bu nedenle, Customer
özelliğinin auto_tagging_enabled
özelliğini güncelleyerek otomatik etiketlemeyi etkinleştirmeniz gerekir.
iOS 14'ten başlayarak tıklamalar, gclid
parametresi yerine bir wbraid
parametresi (web dönüşümleriyle ilişkili tıklamalar için) veya bir gbraid
parametresi (uygulama dönüşümleriyle ilişkili tıklamalar için) içerebilir.
Belirli bir ClickConversion
için wbraid
, gbraid
, gclid
ve user_identifiers
kombinasyonlarını belirlerken aşağıdaki kısıtlamaları göz önünde bulundurun:
Hem
wbraid
hem degbraid
sağlanması şu hatayla sonuçlanır:GBRAID_WBRAID_BOTH_SET
.wbraid
veyagbraid
belirtilirkengclid
veyauser_identifiers
değeri belirtilirse hata verilir:VALUE_MUST_BE_UNSET
.Ne
wbraid
ne degbraid
sağlanıyor ancakgclid
veuser_identifiers
sağlanıyor:gclid
önceliklidir.
Ayrıca, özel dönüşüm değişkenleri wbraid
veya gbraid
ile birlikte desteklenmez. Bu nedenle, hataya custom_variables
sonuçlarını dahil ederken wbraid
veya gbraid
sağlama: VALUE_MUST_BE_UNSET
.
Kod örneği
gclid
, gbraid
veya wbraid
tanımlayıcısını ileterek çevrimdışı tıklama dönüşümlerinizi bir dönüşüm işlemiyle ilişkilendirmeniz gerekir. Ayrıca, dönüşüm tarihini, dönüşüm işlemi kaynak adını ve isteğe bağlı olarak dönüşüm değerini ve para birimini ConversionUploadService
öğesine sağlayın:
Java
private void runExample( GoogleAdsClient googleAdsClient, long customerId, long conversionActionId, String gclid, String gbraid, String wbraid, String conversionDateTime, Double conversionValue, Long conversionCustomVariableId, String conversionCustomVariableValue, String orderId) { // Verifies that exactly one of gclid, gbraid, and wbraid is specified, as required. // See https://developers.google.com/google-ads/api/docs/conversions/upload-clicks for details. long numberOfIdsSpecified = Arrays.asList(gclid, gbraid, wbraid).stream().filter(idField -> idField != null).count(); if (numberOfIdsSpecified != 1) { throw new IllegalArgumentException( "Exactly 1 of gclid, gbraid, or wbraid is required, but " + numberOfIdsSpecified + " ID values were provided"); } // Constructs the conversion action resource name from the customer and conversion action IDs. String conversionActionResourceName = ResourceNames.conversionAction(customerId, conversionActionId); // Creates the click conversion. ClickConversion.Builder clickConversionBuilder = ClickConversion.newBuilder() .setConversionAction(conversionActionResourceName) .setConversionDateTime(conversionDateTime) .setConversionValue(conversionValue) .setCurrencyCode("USD"); // Sets the single specified ID field. if (gclid != null) { clickConversionBuilder.setGclid(gclid); } else if (gbraid != null) { clickConversionBuilder.setGbraid(gbraid); } else { clickConversionBuilder.setWbraid(wbraid); } if (conversionCustomVariableId != null && conversionCustomVariableValue != null) { // Sets the custom variable and value, if provided. clickConversionBuilder.addCustomVariables( CustomVariable.newBuilder() .setConversionCustomVariable( ResourceNames.conversionCustomVariable(customerId, conversionCustomVariableId)) .setValue(conversionCustomVariableValue)); } if (orderId != null) { // Sets the order ID (unique transaction ID), if provided. An order ID is required in order to // upload enhancements as shown in the UploadConversionEnhancement example. clickConversionBuilder.setOrderId(orderId); } ClickConversion clickConversion = clickConversionBuilder.build(); // Creates the conversion upload service client. try (ConversionUploadServiceClient conversionUploadServiceClient = googleAdsClient.getLatestVersion().createConversionUploadServiceClient()) { // Uploads the click conversion. Partial failure should always be set to true. UploadClickConversionsResponse response = conversionUploadServiceClient.uploadClickConversions( UploadClickConversionsRequest.newBuilder() .setCustomerId(Long.toString(customerId)) .addConversions(clickConversion) // Enables partial failure (must be true). .setPartialFailure(true) .build()); // Prints any partial errors returned. if (response.hasPartialFailureError()) { GoogleAdsFailure googleAdsFailure = ErrorUtils.getInstance().getGoogleAdsFailure(response.getPartialFailureError()); googleAdsFailure .getErrorsList() .forEach(e -> System.out.println("Partial failure occurred: " + e.getMessage())); } // Prints the result. ClickConversionResult result = response.getResults(0); // Only prints valid results. if (result.hasGclid()) { System.out.printf( "Uploaded conversion that occurred at '%s' from Google Click ID '%s' to '%s'.%n", result.getConversionDateTime(), result.getGclid(), result.getConversionAction()); } } }
C#
public void Run(GoogleAdsClient client, long customerId, long conversionActionId, string gclid, string gbraid, string wbraid, string conversionTime, double conversionValue) { // Get the ConversionActionService. ConversionUploadServiceClient conversionUploadService = client.GetService(Services.V13.ConversionUploadService); // Creates a click conversion by specifying currency as USD. ClickConversion clickConversion = new ClickConversion() { ConversionAction = ResourceNames.ConversionAction(customerId, conversionActionId), ConversionValue = conversionValue, ConversionDateTime = conversionTime, CurrencyCode = "USD" }; // Verifies that exactly one of gclid, gbraid, and wbraid is specified, as required. // See https://developers.google.com/google-ads/api/docs/conversions/upload-clicks // for details. string[] ids = { gclid, gbraid, wbraid }; int idCount = ids.Where(id => !string.IsNullOrEmpty(id)).Count(); if (idCount != 1) { throw new ArgumentException($"Exactly 1 of gclid, gbraid, or wbraid is " + $"required, but {idCount} ID values were provided"); } // Sets the single specified ID field. if (!string.IsNullOrEmpty(gclid)) { clickConversion.Gclid = gclid; } else if (!string.IsNullOrEmpty(wbraid)) { clickConversion.Wbraid = wbraid; } else if (!string.IsNullOrEmpty(gbraid)) { clickConversion.Gbraid = gbraid; } try { // Issues a request to upload the click conversion. UploadClickConversionsResponse response = conversionUploadService.UploadClickConversions( new UploadClickConversionsRequest() { CustomerId = customerId.ToString(), Conversions = { clickConversion }, PartialFailure = true, ValidateOnly = false }); // Prints the result. ClickConversionResult uploadedClickConversion = response.Results[0]; Console.WriteLine($"Uploaded conversion that occurred at " + $"'{uploadedClickConversion.ConversionDateTime}' from Google " + $"Click ID '{uploadedClickConversion.Gclid}' to " + $"'{uploadedClickConversion.ConversionAction}'."); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
2.999
public static function runExample( GoogleAdsClient $googleAdsClient, int $customerId, int $conversionActionId, ?string $gclid, ?string $gbraid, ?string $wbraid, string $conversionDateTime, float $conversionValue, ?string $conversionCustomVariableId, ?string $conversionCustomVariableValue ) { // Verifies that exactly one of gclid, gbraid, and wbraid is specified, as required. // See https://developers.google.com/google-ads/api/docs/conversions/upload-clicks for details. $nonNullFields = array_filter( [$gclid, $gbraid, $wbraid], function ($field) { return !is_null($field); } ); if (count($nonNullFields) !== 1) { throw new \UnexpectedValueException( sprintf( "Exactly 1 of gclid, gbraid or wbraid is required, but %d ID values were " . "provided", count($nonNullFields) ) ); } // Creates a click conversion by specifying currency as USD. $clickConversion = new ClickConversion([ 'conversion_action' => ResourceNames::forConversionAction($customerId, $conversionActionId), 'conversion_value' => $conversionValue, 'conversion_date_time' => $conversionDateTime, 'currency_code' => 'USD' ]); // Sets the single specified ID field. if (!is_null($gclid)) { $clickConversion->setGclid($gclid); } elseif (!is_null($gbraid)) { $clickConversion->setGbraid($gbraid); } else { $clickConversion->setWbraid($wbraid); } if (!is_null($conversionCustomVariableId) && !is_null($conversionCustomVariableValue)) { $clickConversion->setCustomVariables([new CustomVariable([ 'conversion_custom_variable' => ResourceNames::forConversionCustomVariable( $customerId, $conversionCustomVariableId ), 'value' => $conversionCustomVariableValue ])]); } // Issues a request to upload the click conversion. $conversionUploadServiceClient = $googleAdsClient->getConversionUploadServiceClient(); /** @var UploadClickConversionsResponse $response */ $response = $conversionUploadServiceClient->uploadClickConversions( $customerId, [$clickConversion], true ); // Prints the status message if any partial failure error is returned. // Note: The details of each partial failure error are not printed here, you can refer to // the example HandlePartialFailure.php to learn more. if ($response->hasPartialFailureError()) { printf( "Partial failures occurred: '%s'.%s", $response->getPartialFailureError()->getMessage(), PHP_EOL ); } else { // Prints the result if exists. /** @var ClickConversionResult $uploadedClickConversion */ $uploadedClickConversion = $response->getResults()[0]; printf( "Uploaded click conversion that occurred at '%s' from Google Click ID '%s' " . "to '%s'.%s", $uploadedClickConversion->getConversionDateTime(), $uploadedClickConversion->getGclid(), $uploadedClickConversion->getConversionAction(), PHP_EOL ); } }
Python
def main( client, customer_id, conversion_action_id, gclid, conversion_date_time, conversion_value, conversion_custom_variable_id, conversion_custom_variable_value, gbraid, wbraid, ): """Creates a click conversion with a default currency of USD. Args: client: An initialized GoogleAdsClient instance. customer_id: The client customer ID string. conversion_action_id: The ID of the conversion action to upload to. gclid: The Google Click Identifier ID. If set, the wbraid and gbraid parameters must be None. conversion_date_time: The the date and time of the conversion (should be after the click time). The format is 'yyyy-mm-dd hh:mm:ss+|-hh:mm', e.g. '2021-01-01 12:32:45-08:00'. conversion_value: The conversion value in the desired currency. conversion_custom_variable_id: The ID of the conversion custom variable to associate with the upload. conversion_custom_variable_value: The str value of the conversion custom variable to associate with the upload. gbraid: The GBRAID for the iOS app conversion. If set, the gclid and wbraid parameters must be None. wbraid: The WBRAID for the iOS app conversion. If set, the gclid and gbraid parameters must be None. """ click_conversion = client.get_type("ClickConversion") conversion_upload_service = client.get_service("ConversionUploadService") conversion_action_service = client.get_service("ConversionActionService") click_conversion.conversion_action = conversion_action_service.conversion_action_path( customer_id, conversion_action_id ) # Sets the single specified ID field. if gclid: click_conversion.gclid = gclid elif gbraid: click_conversion.gbraid = gbraid else: click_conversion.wbraid = wbraid click_conversion.conversion_value = float(conversion_value) click_conversion.conversion_date_time = conversion_date_time click_conversion.currency_code = "USD" if conversion_custom_variable_id and conversion_custom_variable_value: conversion_custom_variable = client.get_type("CustomVariable") conversion_custom_variable.conversion_custom_variable = conversion_upload_service.conversion_custom_variable_path( customer_id, conversion_custom_variable_id ) conversion_custom_variable.value = conversion_custom_variable_value click_conversion.custom_variables.append(conversion_custom_variable) request = client.get_type("UploadClickConversionsRequest") request.customer_id = customer_id request.conversions.append(click_conversion) request.partial_failure = True conversion_upload_response = conversion_upload_service.upload_click_conversions( request=request, ) uploaded_click_conversion = conversion_upload_response.results[0] print( f"Uploaded conversion that occurred at " f'"{uploaded_click_conversion.conversion_date_time}" from ' f'Google Click ID "{uploaded_click_conversion.gclid}" ' f'to "{uploaded_click_conversion.conversion_action}"' )
Ruby
def upload_offline_conversion( customer_id, conversion_action_id, gclid, gbraid, wbraid, conversion_date_time, conversion_value, conversion_custom_variable_id, conversion_custom_variable_value) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Verifies that exactly one of gclid, gbraid, and wbraid is specified, as required. # See https://developers.google.com/google-ads/api/docs/conversions/upload-clicks for details. identifiers_specified = [gclid, gbraid, wbraid].reject {|v| v.nil?}.count if identifiers_specified != 1 raise "Must specify exactly one of GCLID, GBRAID, and WBRAID. " \ "#{identifiers_specified} values were provided." end click_conversion = client.resource.click_conversion do |cc| cc.conversion_action = client.path.conversion_action(customer_id, conversion_action_id) # Sets the single specified ID field. if !gclid.nil? cc.gclid = gclid elsif !gbraid.nil? cc.gbraid = gbraid else cc.wbraid = wbraid end cc.conversion_value = conversion_value.to_f cc.conversion_date_time = conversion_date_time cc.currency_code = 'USD' if conversion_custom_variable_id && conversion_custom_variable_value cc.custom_variables << client.resource.custom_variable do |cv| cv.conversion_custom_variable = client.path.conversion_custom_variable( customer_id, conversion_custom_variable_id) cv.value = conversion_custom_variable_value end end end response = client.service.conversion_upload.upload_click_conversions( customer_id: customer_id, conversions: [click_conversion], partial_failure: true, ) if response.partial_failure_error.nil? result = response.results.first puts "Uploaded conversion that occurred at #{result.conversion_date_time} " \ "from Google Click ID #{result.gclid} to #{result.conversion_action}." else failures = client.decode_partial_failure_error(response.partial_failure_error) puts "Request failed. Failure details:" failures.each do |failure| failure.errors.each do |error| puts "\t#{error.error_code.error_code}: #{error.message}" end end end end
Perl
sub upload_offline_conversion { my ( $api_client, $customer_id, $conversion_action_id, $gclid, $gbraid, $wbraid, $conversion_date_time, $conversion_value, $conversion_custom_variable_id, $conversion_custom_variable_value, $order_id ) = @_; # Verify that exactly one of gclid, gbraid, and wbraid is specified, as required. # See https://developers.google.com/google-ads/api/docs/conversions/upload-clicks for details. my $number_of_ids_specified = grep { defined $_ } ($gclid, $gbraid, $wbraid); if ($number_of_ids_specified != 1) { die sprintf "Exactly 1 of gclid, gbraid, or wbraid is required, " . "but %d ID values were provided.\n", $number_of_ids_specified; } # Create a click conversion by specifying currency as USD. my $click_conversion = Google::Ads::GoogleAds::V13::Services::ConversionUploadService::ClickConversion ->new({ conversionAction => Google::Ads::GoogleAds::V13::Utils::ResourceNames::conversion_action( $customer_id, $conversion_action_id ), conversionDateTime => $conversion_date_time, conversionValue => $conversion_value, currencyCode => "USD" }); # Set the single specified ID field. if (defined $gclid) { $click_conversion->{gclid} = $gclid; } elsif (defined $gbraid) { $click_conversion->{gbraid} = $gbraid; } else { $click_conversion->{wbraid} = $wbraid; } if ($conversion_custom_variable_id && $conversion_custom_variable_value) { $click_conversion->{customVariables} = [ Google::Ads::GoogleAds::V13::Services::ConversionUploadService::CustomVariable ->new({ conversionCustomVariable => Google::Ads::GoogleAds::V13::Utils::ResourceNames::conversion_custom_variable( $customer_id, $conversion_custom_variable_id ), value => $conversion_custom_variable_value })]; } if (defined $order_id) { # Set the order ID (unique transaction ID), if provided. An order ID is # required in order to upload enhancements as shown in the # upload_conversion_enhancement.pl example. $click_conversion->{orderId} = $order_id; } # Issue a request to upload the click conversion. my $upload_click_conversions_response = $api_client->ConversionUploadService()->upload_click_conversions({ customerId => $customer_id, conversions => [$click_conversion], partialFailure => "true" }); # Print any partial errors returned. if ($upload_click_conversions_response->{partialFailureError}) { printf "Partial error encountered: '%s'.\n", $upload_click_conversions_response->{partialFailureError}{message}; } # Print the result if valid. my $uploaded_click_conversion = $upload_click_conversions_response->{results}[0]; if (%$uploaded_click_conversion) { printf "Uploaded conversion that occurred at '%s' from Google Click ID '%s' " . "to the conversion action with resource name '%s'.\n", $uploaded_click_conversion->{conversionDateTime}, $uploaded_click_conversion->{gclid}, $uploaded_click_conversion->{conversionAction}; } return 1; }
Harici olarak ilişkilendirilen dönüşümleri içe aktar
Dönüşümleri izlemek için üçüncü taraf araçlar veya yerel çözümler kullanıyorsanız dönüşüm kredisinin yalnızca bir kısmını Google Ads'e verebilirsiniz. Bazen bir dönüşümün kredisini birden fazla tıklamaya dağıtmak da isteyebilirsiniz. Harici olarak ilişkilendirilen dönüşüm içe aktarma özelliği, her bir tıklamaya atanmış kesirli kredi içeren dönüşümleri yüklemenize olanak tanır.
Kesirli kredi yüklemek için upload_offline_conversion kod örneğini izlemeniz ve ClickConversion
oluştururken ExternalAttributionData
için external_attribution_model
ve external_attribution_credit
özelliklerini belirtmeniz gerekir.
Alışveriş sepeti verilerini dönüşümlere dahil etme
Aşağıdaki özelliklerden oluşan bir ClickConversion
için alışveriş sepeti bilgilerini cart_data
alanına ekleyebilirsiniz:
merchant_id
: İlişkili Merchant Center hesabının kimliği.feed_country_code
: Merchant Center feed'inin ISO 3166 iki karakterlik bölge kodu.feed_language_code
: Merchant Center feed'inin ISO 639-1 dil kodudur.local_transaction_cost
:ClickConversion
genelindecurrency_code
tutarındaki işlem düzeyindeki tüm indirimlerin toplamı.items
: Alışveriş sepetindeki öğeler.
items
uygulamasındaki her öğe aşağıdaki özelliklerden oluşur:
product_id
: Ürünün kimliği; bazen teklif kimliği veya öğe kimliği olarak da adlandırılır.quantity
: Öğenin miktarıdır.unit_price
: Öğenin birim fiyatı.
ClickConversion'ı yükle
ClickConversion
yüklerken karşılanması gereken birkaç koşul vardır.
ConversionUploadError.INVALID_CONVERSION_ACTION
hatasını önlemek için conversion_action
özelliği şu özelliklere sahip bir ConversionAction
özelliğine işaret etmelidir:
ConversionActionType
UPLOAD_CLICKS
.ConversionAction
öğesininstatus
değeriENABLED
.ConversionAction
, tıklamanın Google Ads hesabının etkin dönüşüm hesabında bulunur.- Dönüşüm izleme, tıklama sırasında tıklamanın Google Ads hesabının etkin dönüşüm hesabında etkinleştirilmiştir.
UploadClickConversionsRequest
içincustomer_id
, her bir tıklama dönüşümüne aitowner_customer
öğesininconversion_action
kimliği olmalıdır.
Ayrıca, aşağıdaki koşulların da karşılanması gerekir:
UploadClickConversionsRequest
'nincustomer_id
değeri, tıklamanın Google Ads hesabındaki etkin dönüşüm izleme hesabının müşteri kimliği olmalıdır. Aksi takdirde, dönüşüm yüklemesiConversionUploadError.INVALID_CUSTOMER_FOR_CLICK
hatasıyla sonuçlanır.ConversionUploadError.CONVERSION_PRECEDES_GCLID
hatasını önlemek içinconversion_date_time
gösterimden sonra olmalıdır.ConversionUploadError.EXPIRED_GCLID
hatasını önlemek içinconversion_date_time
,ConversionAction
için belirttiğinizclick_through_lookback_window_days
öğesinden önce olmalıdır.conversion_value
, sıfırdan büyük veya sıfıra eşit olmalıdır.conversion_date_time
öğesinde bir saat dilimi belirtilmelidir ve biçimyyyy-mm-dd HH:mm:ss+|-HH:mm
şeklinde olmalıdır. Örneğin:2022-01-01 19:32:45-05:00
(yaz saati uygulaması yok sayılır) .Saat dilimi, geçerli bir değere ait olabilir: Hesabın saat dilimiyle eşleşmesi gerekmez. Ancak yüklenen dönüşüm verilerinizi Google Ads kullanıcı arayüzündeki verilerle karşılaştırmayı planlıyorsanız dönüşüm sayılarının eşleşmesi için Google Ads hesabınızla aynı saat dilimini kullanmanızı öneririz.
ClickConversion Oluşturma
ClickConversion
oluştururken göz önünde bulundurulması gereken bazı noktalar:
UploadClickConversionsRequest
öğesininpartial_failure
özelliği her zamantrue
değerine ayarlanmalıdır. Geçerli ve başarısız işlemleri eşzamanlı olarak işlerken kısmi arızalara yönelik yönergeleri uygulayın.Yinelenen bir dönüşüm (yani daha önce yüklenmiş
gclid
,conversion_date_time
veconversion_action
içeren birClickConversion
) yüklersenizCLICK_CONVERSION_ALREADY_EXISTS
hatası döndürülür.Tek bir istek aynı dönüşüm için birden çok işlem içeriyorsa
DUPLICATE_CLICK_CONVERSION_IN_REQUEST
hatası döndürülür.Yüklenen dönüşümler, yükleme isteğinin veya
ClickConversion
öğesininconversion_date_time
tarihine değil, orijinal tıklamanın gösterim raporuna yansıtılır.Bir dönüşüm yükleme isteğine yanıt olarak
TOO_RECENT_CONVERSION_ACTION
veyaTOO_RECENT_EVENT
yanıt mesajıyla karşılaşırsanız başarısız satırları yeniden denemeden önce işlem oluşturulduktan veya etkinlikten sonra en az 6 saat bekleyin.İçe aktarılan dönüşüm istatistiklerinin son tıklama ilişkilendirmesi için Google Ads hesabınızda görünmesi 3 saate kadar sürebilir. Diğer arama ilişkilendirme modelleri için 3 saatten uzun sürebilir.
Birden fazla hesap için tıklama dönüşümü yüklerken ortak bir yönetici hesabının
customer_id
özelliğini belirtebilir ve birden fazla hesaptan GCLID içeren dönüşümler ekleyebilirsiniz. Bir dönüşüm, GCLID'nin kaynağına göre uygun hesapla ilişkilendirilir.Bu yaklaşım yalnızca aşağıdaki koşulların her ikisi de sağlanıyorsa başarılı olur:
- GCLID'nin müşteri hesabının etkin dönüşüm hesabı, isteğin
customer_id
bölümünde belirtilen yöneticiye ayarlanır. ClickConversion
öğesininconversion_action
değeri, isteğincustomer_id
dosyasında belirtilen yöneticiye aittir.
- GCLID'nin müşteri hesabının etkin dönüşüm hesabı, isteğin
Hesaplar arası dönüşüm izleme etkinken tıklama dönüşümleri yüklenirken dönüşüm işlemi, GCLID ile ilişkilendirilmiş hesapta değil, yönetici hesabında olmalıdır.
Gelişmiş dönüşümler için birinci taraf veri düzenlemeleri yüklemeyi planlıyorsanız her
ClickConversion
için birorder_id
sağlamanız gerekir.