مهام الزيارات الشائعة

وتوضّح هذه الصفحة كيفية تنفيذ بعض مهام عدد الزيارات الأكثر شيوعًا باستخدام واجهة برمجة التطبيقات DCM/DFA Reporting و Trafficking API.

نصائح عامة حول الترميز

  • السمات والمَعلمات المطلوبة والاختيارية: يمكنك الاطّلاع على المستندات المرجعية لمعرفة ما إذا كان الموقع الإلكتروني أو المَعلمة مطلوبَين لطلب بيانات من واجهة برمجة التطبيقات.
  • عمليات البحث عن اسم حرف البدل - يمكنك استخدام حرف البدل النجمي (*) عند البحث عن أسماء الكائنات. علامة النجمة تطابق صفرًا أو أكثر من أي حرف. تتيح واجهة برمجة التطبيقات أيضًا إجراء بحث ضمني للسلسلة الفرعية، لذا سيؤدي البحث عن "abc" ضمنيًا إلى البحث عن "*abc*".
  • التحديث مقابل التصحيح: لتعديل عنصر حالي، لديك خياران:
    1. التعديل: عند تعديل عنصر، سيتم استبدال جميع الحقول عند الإدراج. من المهم تحميل العنصر الذي تريد تعديله وإجراء أي تغييرات عليه. وبخلاف ذلك، سيتم إلغاء ضبط أي حقول غير متوفّرة في طلب التعديل.
    2. التصحيح - عند التصحيح، سيتم استبدال الحقول المحددة فقط عند الإدراج. في هذه الحالة، يمكنك إنشاء كائن جديد، وتعيين رقم تعريف الكائن المطلوب تحديثه، وتعيين الحقول المراد تحديثها، وتنفيذ طلب التصحيح.
  • المقاسات - يتم تمثيل الأبعاد المادية بعنصر Size محدّد من خلال خدمة المقاسات. يوفر الحساب مجموعة من الأحجام القياسية، ويمكنك إضافة أحجامك المخصصة إلى هذه القائمة.
  • التواريخ والأوقات: يمكنك حفظ التواريخ/الأوقات بتنسيق RFC 3339 باستخدام المناطق الزمنية المحلية، وتكون جميع القيم التي تعرضها واجهة برمجة التطبيقات بالتوقيت العالمي المنسّق (UTC). يختلف هذا عن الموقع الإلكتروني الذي يعرض التواريخ والأوقات حسب المنطقة الزمنية التي تم ضبطها (توقيت أمريكا/نيويورك بشكل تلقائي).

إنشاء معلن

C#

  1. أنشِئ عنصر Advertiser واضبط سمتَي الاسم والحالة المطلوبتَين.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.Name = advertiserName;
    advertiser.Status = "APPROVED";
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    // Create the advertiser.
    Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();
    

Java

  1. أنشِئ عنصر Advertiser واضبط سمتَي الاسم والحالة المطلوبتَين.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.setName(advertiserName);
    advertiser.setStatus("APPROVED");
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    // Create the advertiser.
    Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();
    

PHP

  1. أنشِئ عنصر Advertiser واضبط سمتَي الاسم والحالة المطلوبتَين.
    $advertiser = new Google_Service_Dfareporting_Advertiser();
    $advertiser->setName($values['advertiser_name']);
    $advertiser->setStatus('APPROVED');
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    $result = $this->service->advertisers->insert(
        $values['user_profile_id'],
        $advertiser
    );
    

Python

  1. أنشِئ عنصر Advertiser واضبط سمتَي الاسم والحالة المطلوبتَين.
    # Construct and save advertiser.
    advertiser = {
        'name': 'Test Advertiser',
        'status': 'APPROVED'
    }
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    request = service.advertisers().insert(
        profileId=profile_id, body=advertiser)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشِئ عنصر Advertiser واضبط سمتَي الاسم والحالة المطلوبتَين.
    # Create a new advertiser resource to insert.
    advertiser = DfareportingUtils::API_NAMESPACE::Advertiser.new(
      name: format('Example Advertiser #%s', SecureRandom.hex(3)),
      status: 'APPROVED'
    )
    
  2. يمكنك الاتصال بالرقم advertisers.insert() لحفظ المعلن.
    # Insert the advertiser.
    result = service.insert_advertiser(profile_id, advertiser)
    

إنشاء حملة

C#

  1. أنشِئ عنصر "Campaign" وحدِّد سماته المطلوبة:

    • advertiserId: المعلِن المطلوب ربط هذه الحملة به
    • name: يجب أن يكون هذا الخيار فريدًا على مستوى جميع الحملات الخاصة بهذا المعلِن.
    • defaultLandingPageId - صفحة مقصودة سيتم توجيه المستخدِمين إليها عند نقرهم على إعلان في هذه الحملة، في حال لم يتمّ تخصيص إعلان لذلك الإعلان يمكنك البحث عن صفحات مقصودة حالية عن طريق الاتصال برقم advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال الاتصال بالرقم advertiserLandingPages.insert.
    • تاريخ البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. راجِع الرموز النقطية للوقت والتاريخ في معلومات عامة حول الترميز لمزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، إذا لم يتم ملؤه قبل تاريخ انتهاء الحملة المحدّد.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId);
    
    // Create the campaign structure.
    Campaign campaign = new Campaign();
    campaign.Name = campaignName;
    campaign.AdvertiserId = advertiserId;
    campaign.Archived = false;
    campaign.DefaultLandingPageId = defaultLandingPage.Id;
    
    // Set the campaign start date. This example uses today's date.
    campaign.StartDate =
        DfaReportingDateConverterUtil.convertToDateString(DateTime.Now);
    
    // Set the campaign end date. This example uses one month from today's date.
    campaign.EndDate =
        DfaReportingDateConverterUtil.convertToDateString(DateTime.Now.AddMonths(1));
    
  2. اتصل بالرقم campaigns.insert() لحفظ الحملة.

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

Java

  1. أنشِئ عنصر "Campaign" وحدِّد سماته المطلوبة:

    • advertiserId: المعلِن المطلوب ربط هذه الحملة به
    • name: يجب أن يكون هذا الخيار فريدًا على مستوى جميع الحملات الخاصة بهذا المعلِن.
    • defaultLandingPageId - صفحة مقصودة سيتم توجيه المستخدِمين إليها عند نقرهم على إعلان في هذه الحملة، في حال لم يتمّ تخصيص إعلان لذلك الإعلان يمكنك البحث عن صفحات مقصودة حالية عن طريق الاتصال برقم advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال الاتصال بالرقم advertiserLandingPages.insert.
    • تاريخ البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. راجِع الرموز النقطية للوقت والتاريخ في معلومات عامة حول الترميز لمزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، إذا لم يتم ملؤه قبل تاريخ انتهاء الحملة المحدّد.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId);
    
    // Create the campaign structure.
    Campaign campaign = new Campaign();
    campaign.setName(campaignName);
    campaign.setAdvertiserId(advertiserId);
    campaign.setArchived(false);
    campaign.setDefaultLandingPageId(defaultLandingPage.getId());
    
    // Set the campaign start date. This example uses today's date.
    Calendar today = Calendar.getInstance();
    DateTime startDate = new DateTime(true, today.getTimeInMillis(), null);
    campaign.setStartDate(startDate);
    
    // Set the campaign end date. This example uses one month from today's date.
    Calendar nextMonth = Calendar.getInstance();
    nextMonth.add(Calendar.MONTH, 1);
    DateTime endDate = new DateTime(true, nextMonth.getTimeInMillis(), null);
    campaign.setEndDate(endDate);
    
  2. اتصل بالرقم campaigns.insert() لحفظ الحملة.

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

PHP

  1. أنشِئ عنصر "Campaign" وحدِّد سماته المطلوبة:

    • advertiserId: المعلِن المطلوب ربط هذه الحملة به
    • name: يجب أن يكون هذا الخيار فريدًا على مستوى جميع الحملات الخاصة بهذا المعلِن.
    • defaultLandingPageId - صفحة مقصودة سيتم توجيه المستخدِمين إليها عند نقرهم على إعلان في هذه الحملة، في حال لم يتمّ تخصيص إعلان لذلك الإعلان يمكنك البحث عن صفحات مقصودة حالية عن طريق الاتصال برقم advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال الاتصال بالرقم advertiserLandingPages.insert.
    • تاريخ البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. راجِع الرموز النقطية للوقت والتاريخ في معلومات عامة حول الترميز لمزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، إذا لم يتم ملؤه قبل تاريخ انتهاء الحملة المحدّد.
    $startDate = new DateTime('today');
    $endDate = new DateTime('+1 month');
    
    $campaign = new Google_Service_Dfareporting_Campaign();
    $campaign->setAdvertiserId($values['advertiser_id']);
    $campaign->setDefaultLandingPageId($values['default_landing_page_id']);
    $campaign->setName($values['campaign_name']);
    $campaign->setStartDate($startDate->format('Y-m-d'));
    $campaign->setEndDate($endDate->format('Y-m-d'));
    
  2. اتصل بالرقم campaigns.insert() لحفظ الحملة.

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

Python

  1. أنشِئ عنصر "Campaign" وحدِّد سماته المطلوبة:

    • advertiserId: المعلِن المطلوب ربط هذه الحملة به
    • name: يجب أن يكون هذا الخيار فريدًا على مستوى جميع الحملات الخاصة بهذا المعلِن.
    • defaultLandingPageId - صفحة مقصودة سيتم توجيه المستخدِمين إليها عند نقرهم على إعلان في هذه الحملة، في حال لم يتمّ تخصيص إعلان لذلك الإعلان يمكنك البحث عن صفحات مقصودة حالية عن طريق الاتصال برقم advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال الاتصال بالرقم advertiserLandingPages.insert.
    • تاريخ البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. راجِع الرموز النقطية للوقت والتاريخ في معلومات عامة حول الترميز لمزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، إذا لم يتم ملؤه قبل تاريخ انتهاء الحملة المحدّد.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
                                                       advertiser_id)
    
    # Construct and save campaign.
    campaign = {
        'name': 'Test Campaign #%s' % uuid.uuid4(),
        'advertiserId': advertiser_id,
        'archived': 'false',
        'defaultLandingPageId': default_landing_page['id'],
        'startDate': '2015-01-01',
        'endDate': '2020-01-01'
    }
    
  2. اتصل بالرقم campaigns.insert() لحفظ الحملة.

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

Ruby

  1. أنشِئ عنصر "Campaign" وحدِّد سماته المطلوبة:

    • advertiserId: المعلِن المطلوب ربط هذه الحملة به
    • name: يجب أن يكون هذا الخيار فريدًا على مستوى جميع الحملات الخاصة بهذا المعلِن.
    • defaultLandingPageId - صفحة مقصودة سيتم توجيه المستخدِمين إليها عند نقرهم على إعلان في هذه الحملة، في حال لم يتمّ تخصيص إعلان لذلك الإعلان يمكنك البحث عن صفحات مقصودة حالية عن طريق الاتصال برقم advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال الاتصال بالرقم advertiserLandingPages.insert.
    • تاريخ البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين حتى اليوم. راجِع الرموز النقطية للوقت والتاريخ في معلومات عامة حول الترميز لمزيد من التفاصيل. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة الوفاء بعقد لعدد محدّد من الإجراءات، إذا لم يتم ملؤه قبل تاريخ انتهاء الحملة المحدّد.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
      advertiser_id)
    
    # Create a new campaign resource to insert.
    campaign = DfareportingUtils::API_NAMESPACE::Campaign.new(
      advertiser_id: advertiser_id,
      archived: false,
      default_landing_page_id: default_landing_page.id,
      name: format('Example Campaign #%s', SecureRandom.hex(3)),
      start_date: '2014-01-01',
      end_date: '2020-01-01'
    )
    
  2. اتصل بالرقم campaigns.insert() لحفظ الحملة.

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

إنشاء موضع إعلان

C#

  1. أنشِئ عنصر Placement وحدِّد سمات الموضع المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك الإلكتروني.
    // Create the placement.
    Placement placement = new Placement();
    placement.Name = placementName;
    placement.CampaignId = campaignId;
    placement.Compatibility = "DISPLAY";
    placement.PaymentSource = "PLACEMENT_AGENCY_PAID";
    placement.SiteId = dfaSiteId;
    placement.TagFormats = new List<string>() { "PLACEMENT_TAG_STANDARD" };
    
    // Set the size of the placement.
    Size size = new Size();
    size.Id = sizeId;
    placement.Size = size;
    
  2. أنشئ كائن PricingSchedule جديدًا لتعيينه للموضع.
    // Set the pricing schedule for the placement.
    PricingSchedule pricingSchedule = new PricingSchedule();
    pricingSchedule.EndDate = campaign.EndDate;
    pricingSchedule.PricingType = "PRICING_TYPE_CPM";
    pricingSchedule.StartDate = campaign.StartDate;
    placement.PricingSchedule = pricingSchedule;
    
  3. احفظ الكائن Placement من خلال طلب placements.insert(). احرص على تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتخصيصه لإعلان أو تصميم إعلان.
    // Insert the placement.
    Placement result = service.Placements.Insert(placement, profileId).Execute();
    

Java

  1. أنشِئ عنصر Placement وحدِّد سمات الموضع المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك الإلكتروني.
    // Create the placement.
    Placement placement = new Placement();
    placement.setName(placementName);
    placement.setCampaignId(campaignId);
    placement.setCompatibility("DISPLAY");
    placement.setPaymentSource("PLACEMENT_AGENCY_PAID");
    placement.setSiteId(dfaSiteId);
    placement.setTagFormats(ImmutableList.of("PLACEMENT_TAG_STANDARD"));
    
    // Set the size of the placement.
    Size size = new Size();
    size.setId(sizeId);
    placement.setSize(size);
    
  2. أنشئ كائن PricingSchedule جديدًا لتعيينه للموضع.
    // Set the pricing schedule for the placement.
    PricingSchedule pricingSchedule = new PricingSchedule();
    pricingSchedule.setEndDate(campaign.getEndDate());
    pricingSchedule.setPricingType("PRICING_TYPE_CPM");
    pricingSchedule.setStartDate(campaign.getStartDate());
    placement.setPricingSchedule(pricingSchedule);
    
  3. احفظ الكائن Placement من خلال طلب placements.insert(). احرص على تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتخصيصه لإعلان أو تصميم إعلان.
    // Insert the placement.
    Placement result = reporting.placements().insert(profileId, placement).execute();
    

PHP

  1. أنشِئ عنصر Placement وحدِّد سمات الموضع المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك الإلكتروني.
    $placement = new Google_Service_Dfareporting_Placement();
    $placement->setCampaignId($values['campaign_id']);
    $placement->setCompatibility('DISPLAY');
    $placement->setName($values['placement_name']);
    $placement->setPaymentSource('PLACEMENT_AGENCY_PAID');
    $placement->setSiteId($values['site_id']);
    $placement->setTagFormats(['PLACEMENT_TAG_STANDARD']);
    
    // Set the size of the placement.
    $size = new Google_Service_Dfareporting_Size();
    $size->setId($values['size_id']);
    $placement->setSize($size);
    
  2. أنشئ كائن PricingSchedule جديدًا لتعيينه للموضع.
    // Set the pricing schedule for the placement.
    $pricingSchedule = new Google_Service_Dfareporting_PricingSchedule();
    $pricingSchedule->setEndDate($campaign->getEndDate());
    $pricingSchedule->setPricingType('PRICING_TYPE_CPM');
    $pricingSchedule->setStartDate($campaign->getStartDate());
    $placement->setPricingSchedule($pricingSchedule);
    
  3. احفظ الكائن Placement من خلال طلب placements.insert(). احرص على تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتخصيصه لإعلان أو تصميم إعلان.
    // Insert the placement.
    $result = $this->service->placements->insert(
        $values['user_profile_id'],
        $placement
    );
    

Python

  1. أنشِئ عنصر Placement وحدِّد سمات الموضع المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك الإلكتروني.
    # Construct and save placement.
    placement = {
        'name': 'Test Placement',
        'campaignId': campaign_id,
        'compatibility': 'DISPLAY',
        'siteId': site_id,
        'size': {
            'height': '1',
            'width': '1'
        },
        'paymentSource': 'PLACEMENT_AGENCY_PAID',
        'tagFormats': ['PLACEMENT_TAG_STANDARD']
    }
    
  2. أنشئ كائن PricingSchedule جديدًا لتعيينه للموضع.
    # Set the pricing schedule for the placement.
    placement['pricingSchedule'] = {
        'startDate': campaign['startDate'],
        'endDate': campaign['endDate'],
        'pricingType': 'PRICING_TYPE_CPM'
    }
    
  3. احفظ الكائن Placement من خلال طلب placements.insert(). احرص على تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتخصيصه لإعلان أو تصميم إعلان.
    request = service.placements().insert(profileId=profile_id, body=placement)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشِئ عنصر Placement وحدِّد سمات الموضع المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع الموضع وحجمه بدقة للموضع الذي تفاوضت عليه مع موقعك الإلكتروني.
    # Create a new placement resource to insert.
    placement = DfareportingUtils::API_NAMESPACE::Placement.new(
      campaign_id: campaign_id,
      compatibility: 'DISPLAY',
      name: 'Example Placement',
      payment_source: 'PLACEMENT_AGENCY_PAID',
      site_id: site_id,
      size: DfareportingUtils::API_NAMESPACE::Size.new(
        height: 1,
        width: 1
      ),
      tag_formats: ['PLACEMENT_TAG_STANDARD']
    )
    
  2. أنشئ كائن PricingSchedule جديدًا لتعيينه للموضع.
    # Set the pricing schedule for the placement.
    placement.pricing_schedule =
      DfareportingUtils::API_NAMESPACE::PricingSchedule.new(
        end_date: campaign.end_date,
        pricing_type: 'PRICING_TYPE_CPM',
        start_date: campaign.start_date
      )
    
  3. احفظ الكائن Placement من خلال طلب placements.insert(). احرص على تخزين رقم التعريف المعروض إذا كنت تريد استخدامه لتخصيصه لإعلان أو تصميم إعلان.
    # Insert the placement strategy.
    result = service.insert_placement(profile_id, placement)
    

تحميل مواد العرض

يمكنك تحميل أنواع عديدة من مواد العرض عبر عملية تُعرف باسم تحميل الوسائط. وعلى الرغم من تشابه هذه العملية مع جميع أنواع تصميمات الإعلانات، قد تتطلب بعض الأنواع تمرير خصائص معيّنة كبيانات وصفية حتى يتم استخدامها بشكل صحيح.

C#

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. جميع مواد العرض مطلوبة لتحديد assetIdentifier، بغض النظر عن نوعها أو كيفية استخدامها. عند تعيين مادة العرض إلى تصميم إعلان، سيتم استخدام هذا الكائن للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّه قد يغيّر "مدير الحملة 360" هذا الاسم ليصبح فريدًا على الخادم. تحقّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها أم لا.
    • السمة type التي تحدد نوع مادة العرض ستحدد هذه السمة أنواع تصميمات الإعلانات التي يمكن أن ترتبط بها مادة العرض هذه.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.Name = Path.GetFileName(assetFile);
    assetId.Type = assetType;
    
  2. تحميل الملف عن طريق الاتصال بـ creativeAssets.insert(). نفِّذ تحميلًا متعدد الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال إتمام الإجراء، سيتم عرض مورد CreativeAsset مع إضافة assetIdentifier التي ستستخدمها لتعيين مادة العرض هذه إلى تصميم إعلان.

    // Prepare an input stream.
    FileStream assetContent = new FileStream(assetFile, FileMode.Open, FileAccess.Read);
    
    
    CreativeAssetMetadata metaData = new CreativeAssetMetadata();
    metaData.AssetIdentifier = assetId;
    
    // Insert the creative.
    String mimeType = determineMimeType(assetFile, assetType);
    CreativeAssetsResource.InsertMediaUpload request =
        Service.CreativeAssets.Insert(metaData, ProfileId, AdvertiserId, assetContent, mimeType);
    
    IUploadProgress progress = request.Upload();
    if (UploadStatus.Failed.Equals(progress.Status)) {
        throw progress.Exception;
    }
    

Java

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. جميع مواد العرض مطلوبة لتحديد assetIdentifier، بغض النظر عن نوعها أو كيفية استخدامها. عند تعيين مادة العرض إلى تصميم إعلان، سيتم استخدام هذا الكائن للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّه قد يغيّر "مدير الحملة 360" هذا الاسم ليصبح فريدًا على الخادم. تحقّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها أم لا.
    • السمة type التي تحدد نوع مادة العرض ستحدد هذه السمة أنواع تصميمات الإعلانات التي يمكن أن ترتبط بها مادة العرض هذه.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.setName(assetName);
    assetId.setType(assetType);
    
  2. تحميل الملف عن طريق الاتصال بـ creativeAssets.insert(). نفِّذ تحميلًا متعدد الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال إتمام الإجراء، سيتم عرض مورد CreativeAsset مع إضافة assetIdentifier التي ستستخدمها لتعيين مادة العرض هذه إلى تصميم إعلان.

    // Open the asset file.
    File file = new File(assetFile);
    
    // Prepare an input stream.
    String contentType = getMimeType(assetFile);
    InputStreamContent assetContent =
        new InputStreamContent(contentType, new BufferedInputStream(new FileInputStream(file)));
    assetContent.setLength(file.length());
    
    
    CreativeAssetMetadata metaData = new CreativeAssetMetadata();
    metaData.setAssetIdentifier(assetId);
    
    // Insert the creative.
    CreativeAssetMetadata result = reporting.creativeAssets()
        .insert(profileId, advertiserId, metaData, assetContent).execute();
    

PHP

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. جميع مواد العرض مطلوبة لتحديد assetIdentifier، بغض النظر عن نوعها أو كيفية استخدامها. عند تعيين مادة العرض إلى تصميم إعلان، سيتم استخدام هذا الكائن للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّه قد يغيّر "مدير الحملة 360" هذا الاسم ليصبح فريدًا على الخادم. تحقّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها أم لا.
    • السمة type التي تحدد نوع مادة العرض ستحدد هذه السمة أنواع تصميمات الإعلانات التي يمكن أن ترتبط بها مادة العرض هذه.
    $assetId = new Google_Service_Dfareporting_CreativeAssetId();
    $assetId->setName($asset['name']);
    $assetId->setType($type);
    
  2. تحميل الملف عن طريق الاتصال بـ creativeAssets.insert(). نفِّذ تحميلًا متعدد الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال إتمام الإجراء، سيتم عرض مورد CreativeAsset مع إضافة assetIdentifier التي ستستخدمها لتعيين مادة العرض هذه إلى تصميم إعلان.

    $metadata = new Google_Service_Dfareporting_CreativeAssetMetadata();
    $metadata->setAssetIdentifier($assetId);
    
    $result = $service->creativeAssets->insert(
        $userProfileId,
        $advertiserId,
        $metadata,
        ['data' => file_get_contents($asset['tmp_name']),
         'mimeType' => $asset['type'],
         'uploadType' => 'multipart']
    );
    

Python

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. جميع مواد العرض مطلوبة لتحديد assetIdentifier، بغض النظر عن نوعها أو كيفية استخدامها. عند تعيين مادة العرض إلى تصميم إعلان، سيتم استخدام هذا الكائن للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّه قد يغيّر "مدير الحملة 360" هذا الاسم ليصبح فريدًا على الخادم. تحقّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها أم لا.
    • السمة type التي تحدد نوع مادة العرض ستحدد هذه السمة أنواع تصميمات الإعلانات التي يمكن أن ترتبط بها مادة العرض هذه.
    # Construct the creative asset metadata
    creative_asset = {'assetIdentifier': {'name': asset_name, 'type': asset_type}}
    
  2. تحميل الملف عن طريق الاتصال بـ creativeAssets.insert(). نفِّذ تحميلًا متعدد الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال إتمام الإجراء، سيتم عرض مورد CreativeAsset مع إضافة assetIdentifier التي ستستخدمها لتعيين مادة العرض هذه إلى تصميم إعلان.

    media = MediaFileUpload(path_to_asset_file)
    if not media.mimetype():
      media = MediaFileUpload(path_to_asset_file, 'application/octet-stream')
    
    response = service.creativeAssets().insert(
        advertiserId=advertiser_id,
        profileId=profile_id,
        media_body=media,
        body=creative_asset).execute()
    

Ruby

  1. أنشِئ كائن assetIdentifierواضبط السمات المطلوبة. جميع مواد العرض مطلوبة لتحديد assetIdentifier، بغض النظر عن نوعها أو كيفية استخدامها. عند تعيين مادة العرض إلى تصميم إعلان، سيتم استخدام هذا الكائن للإشارة إلى مادة العرض. السمات التالية مطلوبة:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل .png أو .gif، وسيظهر للمتصفّح باسم مادة العرض، ولكن ليس من الضروري أن يكون مطابقًا لاسم الملف الأصلي. تجدر الإشارة إلى أنّه قد يغيّر "مدير الحملة 360" هذا الاسم ليصبح فريدًا على الخادم. تحقّق من القيمة المعروضة لمعرفة ما إذا تم تغييرها أم لا.
    • السمة type التي تحدد نوع مادة العرض ستحدد هذه السمة أنواع تصميمات الإعلانات التي يمكن أن ترتبط بها مادة العرض هذه.
    # Construct the creative asset metadata
    creative_asset = DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
      asset_identifier: DfareportingUtils::API_NAMESPACE::CreativeAssetId.new(
        name: asset_name,
        type: asset_type
      )
    )
    
  2. تحميل الملف عن طريق الاتصال بـ creativeAssets.insert(). نفِّذ تحميلًا متعدد الأجزاء، مع تمرير assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال إتمام الإجراء، سيتم عرض مورد CreativeAsset مع إضافة assetIdentifier التي ستستخدمها لتعيين مادة العرض هذه إلى تصميم إعلان.

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

إنشاء تصميم إعلان

يشمل العنصر Creative مادة عرض حالية. استنادًا إلى الطريقة التي ستستخدم بها تصميمات الإعلانات على صفحة المضيف، يمكنك إنشاء عناصر Creative بأنواع مختلفة من تصميمات الإعلانات. راجِع المستندات المرجعية لتحديد النوع المناسب لك.

يوضح المثال التالي كيفية إنشاء تصميم إعلان صوري جديد بتنسيق HTML5.

C#

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. يُرجى مراجعة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستحصل على رد assetIdenfitier. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في موادك الإبداعية، بدلاً من استخدام المعرّف التقليدي.
  2. إنشاء تصميم إعلان وتحديد القيم المناسبة يمكنك إنشاء مثيل Creative وضبط type المناسب، ولا يمكنك تغيير نوع كائن Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole الخاصة بها.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId);
    
    // Create the creative structure.
    Creative creative = new Creative();
    creative.AdvertiserId = advertiserId;
    creative.Name = "Test HTML5 display creative";
    creative.Size = new Size() { Id = sizeId };
    creative.Type = "DISPLAY";
    
    // Upload the HTML5 asset.
    CreativeAssetUtils assetUtils = new CreativeAssetUtils(service, profileId, advertiserId);
    CreativeAssetId html5AssetId =
        assetUtils.uploadAsset(pathToHtml5AssetFile, "HTML").AssetIdentifier;
    
    CreativeAsset html5Asset = new CreativeAsset();
    html5Asset.AssetIdentifier = html5AssetId;
    html5Asset.Role = "PRIMARY";
    
    // Upload the backup image asset.
    CreativeAssetId imageAssetId =
        assetUtils.uploadAsset(pathToImageAssetFile, "HTML_IMAGE").AssetIdentifier;
    
    CreativeAsset imageAsset = new CreativeAsset();
    imageAsset.AssetIdentifier = imageAssetId;
    imageAsset.Role = "BACKUP_IMAGE";
    
    // Add the creative assets.
    creative.CreativeAssets = new List<CreativeAsset>() { html5Asset, imageAsset };
    
    // Configure the bacup image.
    creative.BackupImageClickThroughUrl = new CreativeClickThroughUrl() {
      LandingPageId = defaultLandingPage.Id
    };
    creative.BackupImageReportingLabel = "backup";
    creative.BackupImageTargetWindow = new TargetWindow() { TargetWindowOption = "NEW_WINDOW" };
    
    // Add a click tag.
    ClickTag clickTag = new ClickTag();
    clickTag.Name = "clickTag";
    clickTag.EventName = "exit";
    clickTag.ClickThroughUrl = new CreativeClickThroughUrl() {
      LandingPageId = defaultLandingPage.Id
    };
    creative.ClickTags = new List<ClickTag>() { clickTag };
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بـ creatives.insert(). يجب تحديد الرقم التعريفي للمعلِن الذي يمكن استخدامه لربط هذا التصميم.
    Creative result = service.Creatives.Insert(creative, profileId).Execute();
    
  4. (اختياري) اربط تصميم الإعلان بحملة. يمكن إجراء ذلك عن طريق طلب الرقم campaignCreativeAssociations.insert()، وتمرير أرقام تعريف الحملات وتصميمات الإعلانات.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.CreativeId = creativeId;
    
    // Insert the association.
    CampaignCreativeAssociation result =
        service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();
    

Java

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. يُرجى مراجعة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستحصل على رد assetIdenfitier. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في موادك الإبداعية، بدلاً من استخدام المعرّف التقليدي.
  2. إنشاء تصميم إعلان وتحديد القيم المناسبة يمكنك إنشاء مثيل Creative وضبط type المناسب، ولا يمكنك تغيير نوع كائن Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole الخاصة بها.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId);
    
    // Create the creative structure.
    Creative creative = new Creative();
    creative.setAdvertiserId(advertiserId);
    creative.setName("Test HTML5 display creative");
    creative.setSize(new Size().setId(sizeId));
    creative.setType("DISPLAY");
    
    // Upload the HTML5 asset.
    CreativeAssetId html5AssetId = CreativeAssetUtils.uploadAsset(reporting, profileId,
        advertiserId, HTML5_ASSET_NAME, PATH_TO_HTML5_ASSET_FILE, "HTML").getAssetIdentifier();
    
    CreativeAsset html5Asset =
        new CreativeAsset().setAssetIdentifier(html5AssetId).setRole("PRIMARY");
    
    // Upload the backup image asset (note: asset type must be set to HTML_IMAGE).
    CreativeAssetId imageAssetId = CreativeAssetUtils.uploadAsset(reporting, profileId,
        advertiserId, IMAGE_ASSET_NAME, PATH_TO_IMAGE_ASSET_FILE, "HTML_IMAGE")
        .getAssetIdentifier();
    
    CreativeAsset backupImageAsset =
        new CreativeAsset().setAssetIdentifier(imageAssetId).setRole("BACKUP_IMAGE");
    
    // Add the creative assets.
    creative.setCreativeAssets(ImmutableList.of(html5Asset, backupImageAsset));
    
    // Configure the backup image.
    creative.setBackupImageClickThroughUrl(
        new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId()));
    creative.setBackupImageReportingLabel("backup");
    creative.setBackupImageTargetWindow(new TargetWindow().setTargetWindowOption("NEW_WINDOW"));
    
    // Add a click tag.
    ClickTag clickTag =
        new ClickTag().setName("clickTag").setEventName("exit").setClickThroughUrl(
            new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId()));
    creative.setClickTags(ImmutableList.of(clickTag));
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بـ creatives.insert(). يجب تحديد الرقم التعريفي للمعلِن الذي يمكن استخدامه لربط هذا التصميم.
    Creative result = reporting.creatives().insert(profileId, creative).execute();
    
  4. (اختياري) اربط تصميم الإعلان بحملة. يمكن إجراء ذلك عن طريق طلب الرقم campaignCreativeAssociations.insert()، وتمرير أرقام تعريف الحملات وتصميمات الإعلانات.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.setCreativeId(creativeId);
    
    // Insert the association.
    CampaignCreativeAssociation result = reporting
        .campaignCreativeAssociations().insert(profileId, campaignId, association)
        .execute();
    

PHP

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. يُرجى مراجعة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستحصل على رد assetIdenfitier. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في موادك الإبداعية، بدلاً من استخدام المعرّف التقليدي.
  2. إنشاء تصميم إعلان وتحديد القيم المناسبة يمكنك إنشاء مثيل Creative وضبط type المناسب، ولا يمكنك تغيير نوع كائن Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole الخاصة بها.
    $creative = new Google_Service_Dfareporting_Creative();
    $creative->setAdvertiserId($values['advertiser_id']);
    $creative->setAutoAdvanceImages(true);
    $creative->setName('Test HTML5 display creative');
    $creative->setType('DISPLAY');
    
    $size = new Google_Service_Dfareporting_Size();
    $size->setId($values['size_id']);
    $creative->setSize($size);
    
    // Upload the HTML5 asset.
    $html = uploadAsset(
        $this->service,
        $values['user_profile_id'],
        $values['advertiser_id'],
        $values['html_asset_file'],
        'HTML'
    );
    
    $htmlAsset = new Google_Service_Dfareporting_CreativeAsset();
    $htmlAsset->setAssetIdentifier($html->getAssetIdentifier());
    $htmlAsset->setRole('PRIMARY');
    
    // Upload the backup image asset.
    $image = uploadAsset(
        $this->service,
        $values['user_profile_id'],
        $values['advertiser_id'],
        $values['image_asset_file'],
        'HTML_IMAGE'
    );
    
    $imageAsset = new Google_Service_Dfareporting_CreativeAsset();
    $imageAsset->setAssetIdentifier($image->getAssetIdentifier());
    $imageAsset->setRole('BACKUP_IMAGE');
    
    // Add the creative assets.
    $creative->setCreativeAssets([$htmlAsset, $imageAsset]);
    
    // Configure the default click-through URL.
    $clickThroughUrl =
        new Google_Service_Dfareporting_CreativeClickThroughUrl();
    $clickThroughUrl->setLandingPageId($values['landing_page_id']);
    
    // Configure the backup image.
    $creative->setBackupImageClickThroughUrl($clickThroughUrl);
    $creative->setBackupImageReportingLabel('backup');
    
    $targetWindow = new Google_Service_Dfareporting_TargetWindow();
    $targetWindow->setTargetWindowOption('NEW_WINDOW');
    $creative->setBackupImageTargetWindow($targetWindow);
    
    // Add a click tag.
    $clickTag = new Google_Service_Dfareporting_ClickTag();
    $clickTag->setName('clickTag');
    $clickTag->setEventName('exit');
    $clickTag->setClickThroughUrl($clickThroughUrl);
    $creative->setClickTags([$clickTag]);
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بـ creatives.insert(). يجب تحديد الرقم التعريفي للمعلِن الذي يمكن استخدامه لربط هذا التصميم.
    $result = $this->service->creatives->insert(
        $values['user_profile_id'],
        $creative
    );
    
  4. (اختياري) اربط تصميم الإعلان بحملة. يمكن إجراء ذلك عن طريق طلب الرقم campaignCreativeAssociations.insert()، وتمرير أرقام تعريف الحملات وتصميمات الإعلانات.
    $association =
        new Google_Service_Dfareporting_CampaignCreativeAssociation();
    $association->setCreativeId($values['creative_id']);
    
    $result = $this->service->campaignCreativeAssociations->insert(
        $values['user_profile_id'],
        $values['campaign_id'],
        $association
    );
    

Python

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. يُرجى مراجعة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستحصل على رد assetIdenfitier. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في موادك الإبداعية، بدلاً من استخدام المعرّف التقليدي.
  2. إنشاء تصميم إعلان وتحديد القيم المناسبة يمكنك إنشاء مثيل Creative وضبط type المناسب، ولا يمكنك تغيير نوع كائن Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole الخاصة بها.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
                                                       advertiser_id)
    
    # Upload the HTML5 asset
    html5_asset_id = upload_creative_asset(service, profile_id, advertiser_id,
                                           html5_asset_name,
                                           path_to_html5_asset_file, 'HTML')
    
    # Upload the backup image asset
    backup_image_asset_id = upload_creative_asset(
        service, profile_id, advertiser_id, backup_image_name,
        path_to_backup_image_file, 'HTML_IMAGE')
    
    # Construct the creative structure.
    creative = {
        'advertiserId': advertiser_id,
        'backupImageClickThroughUrl': {
            'landingPageId': default_landing_page['id']
        },
        'backupImageReportingLabel': 'backup_image_exit',
        'backupImageTargetWindow': {'targetWindowOption': 'NEW_WINDOW'},
        'clickTags': [{
            'eventName': 'exit',
            'name': 'click_tag',
            'clickThroughUrl': {'landingPageId': default_landing_page['id']}
        }],
        'creativeAssets': [
            {'assetIdentifier': html5_asset_id, 'role': 'PRIMARY'},
            {'assetIdentifier': backup_image_asset_id, 'role': 'BACKUP_IMAGE'}
        ],
        'name': 'Test HTML5 display creative',
        'size': {'id': size_id},
        'type': 'DISPLAY'
    }
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بـ creatives.insert(). يجب تحديد الرقم التعريفي للمعلِن الذي يمكن استخدامه لربط هذا التصميم.
    request = service.creatives().insert(profileId=profile_id, body=creative)
    
    # Execute request and print response.
    response = request.execute()
    
  4. (اختياري) اربط تصميم الإعلان بحملة. يمكن إجراء ذلك عن طريق طلب الرقم campaignCreativeAssociations.insert()، وتمرير أرقام تعريف الحملات وتصميمات الإعلانات.
    # Construct the request.
    association = {
        'creativeId': creative_id
    }
    
    request = service.campaignCreativeAssociations().insert(
        profileId=profile_id, campaignId=campaign_id, body=association)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. يُرجى مراجعة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستحصل على رد assetIdenfitier. ستستخدم اسم الملف المخزّن ونوعه للإشارة إلى مواد العرض هذه في موادك الإبداعية، بدلاً من استخدام المعرّف التقليدي.
  2. إنشاء تصميم إعلان وتحديد القيم المناسبة يمكنك إنشاء مثيل Creative وضبط type المناسب، ولا يمكنك تغيير نوع كائن Creative بعد حفظه. حدِّد مواد العرض من خلال AssetIdentifier وrole الخاصة بها.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
      advertiser_id)
    
    # Upload the HTML5 asset.
    html5_asset_id = util.upload_asset(advertiser_id, path_to_html5_asset_file,
      'HTML').asset_identifier
    
    # Upload the backup image asset.
    backup_image_asset_id = util.upload_asset(advertiser_id,
      path_to_backup_image_file, 'HTML_IMAGE').asset_identifier
    
    # Construct the creative structure.
    creative = DfareportingUtils::API_NAMESPACE::Creative.new(
      advertiser_id: advertiser_id,
      backup_image_click_through_url:
        DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new(
          landing_page_id: default_landing_page.id
        ),
      backup_image_reporting_label: 'backup',
      backup_image_target_window:
        DfareportingUtils::API_NAMESPACE::TargetWindow.new(
          target_window_option: 'NEW_WINDOW'
        ),
      click_tags: [
        DfareportingUtils::API_NAMESPACE::ClickTag.new(
          event_name: 'exit',
          name: 'click_tag',
          click_through_url:
            DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new(
              landing_page_id: default_landing_page.id
            )
        )
      ],
      creative_assets: [
        DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
          asset_identifier: html5_asset_id,
          role: 'PRIMARY'
        ),
        DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
          asset_identifier: backup_image_asset_id,
          role: 'BACKUP_IMAGE'
        )
      ],
      name: 'Example HTML5 display creative',
      size: DfareportingUtils::API_NAMESPACE::Size.new(id: size_id),
      type: 'DISPLAY'
    )
    
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال الاتصال بـ creatives.insert(). يجب تحديد الرقم التعريفي للمعلِن الذي يمكن استخدامه لربط هذا التصميم.
    # Insert the creative.
    result = service.insert_creative(profile_id, creative)
    
  4. (اختياري) اربط تصميم الإعلان بحملة. يمكن إجراء ذلك عن طريق طلب الرقم campaignCreativeAssociations.insert()، وتمرير أرقام تعريف الحملات وتصميمات الإعلانات.
    # 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)
    

إنشاء إعلان

السمة Ad هي الرابط بين Creative وPlacement. يمكن ربط Ad بموضع إعلان واحد أو أكثر، ويحتوي على تصميم إعلان واحد أو أكثر.

يمكنك إنشاء Ad بشكل صريح أو ضمني.

صريح

C#

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
    clickThroughUrl.DefaultLandingPage = true;
    
    // Create a creative assignment.
    CreativeAssignment creativeAssignment = new CreativeAssignment();
    creativeAssignment.Active = true;
    creativeAssignment.CreativeId = creativeId;
    creativeAssignment.ClickThroughUrl = clickThroughUrl;
    
  2. أنشئ كائن CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض إعلانات بالتناوب، تأكَّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.CreativeAssignments = new List<CreativeAssignment>() {
        creativeAssignment
    };
    
  3. أنشئ عنصر PlacementAssignment لكل موضع يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.Active = true;
    placementAssignment.PlacementId = placementId;
    
  4. أنشِئ كائن Ad. اضبط دالة CreativeRotation على الحقل creativeRotation للعنصر Ad ودالة PlacementAssignments في مصفوفة placementAssignments الخاصة بالعنصر Ad.
    // Create a delivery schedule.
    DeliverySchedule deliverySchedule = new DeliverySchedule();
    deliverySchedule.ImpressionRatio = 1;
    deliverySchedule.Priority = "AD_PRIORITY_01";
    
    DateTime startDate = DateTime.Now;
    DateTime endDate = Convert.ToDateTime(campaign.EndDate);
    
    // Create a rotation group.
    Ad rotationGroup = new Ad();
    rotationGroup.Active = true;
    rotationGroup.CampaignId = campaignId;
    rotationGroup.CreativeRotation = creativeRotation;
    rotationGroup.DeliverySchedule = deliverySchedule;
    rotationGroup.StartTime = startDate;
    rotationGroup.EndTime = endDate;
    rotationGroup.Name = adName;
    rotationGroup.PlacementAssignments = new List<PlacementAssignment>() {
        placementAssignment
    };
    rotationGroup.Type = "AD_SERVING_STANDARD_AD";
    
  5. احفظ الإعلان عن طريق الاتصال بالرقم ads.insert().
    // Insert the rotation group.
    Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();
    

Java

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
    clickThroughUrl.setDefaultLandingPage(true);
    
    // Create a creative assignment.
    CreativeAssignment creativeAssignment = new CreativeAssignment();
    creativeAssignment.setActive(true);
    creativeAssignment.setCreativeId(creativeId);
    creativeAssignment.setClickThroughUrl(clickThroughUrl);
    
  2. أنشئ كائن CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض إعلانات بالتناوب، تأكَّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.setCreativeAssignments(ImmutableList.of(creativeAssignment));
    
  3. أنشئ عنصر PlacementAssignment لكل موضع يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.setActive(true);
    placementAssignment.setPlacementId(placementId);
    
  4. أنشِئ كائن Ad. اضبط دالة CreativeRotation على الحقل creativeRotation للعنصر Ad ودالة PlacementAssignments في مصفوفة placementAssignments الخاصة بالعنصر Ad.
    // Create a delivery schedule.
    DeliverySchedule deliverySchedule = new DeliverySchedule();
    deliverySchedule.setImpressionRatio(1L);
    deliverySchedule.setPriority("AD_PRIORITY_01");
    
    DateTime startDate = new DateTime(new Date());
    DateTime endDate = new DateTime(campaign.getEndDate().getValue());
    
    // Create a rotation group.
    Ad rotationGroup = new Ad();
    rotationGroup.setActive(true);
    rotationGroup.setCampaignId(campaignId);
    rotationGroup.setCreativeRotation(creativeRotation);
    rotationGroup.setDeliverySchedule(deliverySchedule);
    rotationGroup.setStartTime(startDate);
    rotationGroup.setEndTime(endDate);
    rotationGroup.setName(adName);
    rotationGroup.setPlacementAssignments(ImmutableList.of(placementAssignment));
    rotationGroup.setType("AD_SERVING_STANDARD_AD");
    
  5. احفظ الإعلان عن طريق الاتصال بالرقم ads.insert().
    // Insert the rotation group.
    Ad result = reporting.ads().insert(profileId, rotationGroup).execute();
    

PHP

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    $url = new Google_Service_Dfareporting_ClickThroughUrl();
    $url->setDefaultLandingPage(true);
    
    // Create a creative assignment.
    $creativeAssignment =
        new Google_Service_Dfareporting_CreativeAssignment();
    $creativeAssignment->setActive(true);
    $creativeAssignment->setCreativeId($values['creative_id']);
    $creativeAssignment->setClickThroughUrl($url);
    
  2. أنشئ كائن CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض إعلانات بالتناوب، تأكَّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    // Create a creative rotation.
    $creativeRotation = new Google_Service_Dfareporting_CreativeRotation();
    $creativeRotation->setCreativeAssignments([$creativeAssignment]);
    
  3. أنشئ عنصر PlacementAssignment لكل موضع يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    $placementAssignment =
        new Google_Service_Dfareporting_PlacementAssignment();
    $placementAssignment->setActive(true);
    $placementAssignment->setPlacementId($values['placement_id']);
    
  4. أنشِئ كائن Ad. اضبط دالة CreativeRotation على الحقل creativeRotation للعنصر Ad ودالة PlacementAssignments في مصفوفة placementAssignments الخاصة بالعنصر Ad.
    // Create a delivery schedule.
    $deliverySchedule = new Google_Service_Dfareporting_DeliverySchedule();
    $deliverySchedule->setImpressionRatio(1);
    $deliverySchedule->SetPriority('AD_PRIORITY_01');
    
    $startDate = new DateTime('today');
    $endDate = new DateTime($campaign->getEndDate());
    
    // Create a rotation group.
    $ad = new Google_Service_Dfareporting_Ad();
    $ad->setActive(true);
    $ad->setCampaignId($values['campaign_id']);
    $ad->setCreativeRotation($creativeRotation);
    $ad->setDeliverySchedule($deliverySchedule);
    $ad->setStartTime($startDate->format('Y-m-d') . 'T23:59:59Z');
    $ad->setEndTime($endDate->format('Y-m-d') . 'T00:00:00Z');
    $ad->setName($values['ad_name']);
    $ad->setPlacementAssignments([$placementAssignment]);
    $ad->setType('AD_SERVING_STANDARD_AD');
    
  5. احفظ الإعلان عن طريق الاتصال بالرقم ads.insert().
    $result = $this->service->ads->insert($values['user_profile_id'], $ad);
    

Python

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    # Construct creative assignment.
    creative_assignment = {
        'active': 'true',
        'creativeId': creative_id,
        'clickThroughUrl': {
            'defaultLandingPage': 'true'
        }
    }
    
  2. أنشئ كائن CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض إعلانات بالتناوب، تأكَّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    # Construct creative rotation.
    creative_rotation = {
        'creativeAssignments': [creative_assignment],
        'type': 'CREATIVE_ROTATION_TYPE_RANDOM',
        'weightCalculationStrategy': 'WEIGHT_STRATEGY_OPTIMIZED'
    }
    
  3. أنشئ عنصر PlacementAssignment لكل موضع يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    # Construct placement assignment.
    placement_assignment = {
        'active': 'true',
        'placementId': placement_id,
    }
    
  4. أنشِئ كائن Ad. اضبط دالة CreativeRotation على الحقل creativeRotation للعنصر Ad ودالة PlacementAssignments في مصفوفة placementAssignments الخاصة بالعنصر Ad.
    # Construct delivery schedule.
    delivery_schedule = {
        'impressionRatio': '1',
        'priority': 'AD_PRIORITY_01'
    }
    
    # Construct and save ad.
    ad = {
        'active': 'true',
        'campaignId': campaign_id,
        'creativeRotation': creative_rotation,
        'deliverySchedule': delivery_schedule,
        'endTime': '%sT00:00:00Z' % campaign['endDate'],
        'name': 'Test Rotation Group',
        'placementAssignments': [placement_assignment],
        'startTime': '%sT23:59:59Z' % time.strftime('%Y-%m-%d'),
        'type': 'AD_SERVING_STANDARD_AD'
    }
    
  5. احفظ الإعلان عن طريق الاتصال بالرقم ads.insert().
    request = service.ads().insert(profileId=profile_id, body=ad)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشئ عنصر CreativeAssignment لكل تصميم إعلان يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل CreativeAssignment.active على "صحيح".
    # Construct creative assignment.
    creative_assignment =
      DfareportingUtils::API_NAMESPACE::CreativeAssignment.new(
        active: true,
        creative_id: creative_id,
        click_through_url: DfareportingUtils::API_NAMESPACE::ClickThroughUrl.new(
          default_landing_page: true
        )
      )
    
  2. أنشئ كائن CreativeRotation لتخزين عناصر CreativeAssignment. في حال إنشاء مجموعة عرض إعلانات بالتناوب، تأكَّد من ضبط الحقول الأخرى المطلوبة لعرض تصميمات الإعلانات بالتناوب.
    # Construct creative rotation.
    creative_rotation = DfareportingUtils::API_NAMESPACE::CreativeRotation.new(
      creative_assignments: [creative_assignment],
      type: 'CREATIVE_ROTATION_TYPE_RANDOM',
      weight_calculation_strategy: 'WEIGHT_STRATEGY_OPTIMIZED'
    )
    
  3. أنشئ عنصر PlacementAssignment لكل موضع يجب أن يرتبط به هذا الإعلان. تأكَّد من ضبط الحقل PlacementAssignment.active على "صحيح".
    # Construct placement assignment.
    placement_assignment =
      DfareportingUtils::API_NAMESPACE::PlacementAssignment.new(
        active: true,
        placement_id: placement_id
      )
    
  4. أنشِئ كائن Ad. اضبط دالة CreativeRotation على الحقل creativeRotation للعنصر Ad ودالة PlacementAssignments في مصفوفة placementAssignments الخاصة بالعنصر Ad.
    # Construct delivery schedule.
    delivery_schedule = DfareportingUtils::API_NAMESPACE::DeliverySchedule.new(
      impression_ratio: 1,
      priority: 'AD_PRIORITY_01'
    )
    
    # Construct and save ad.
    ad = DfareportingUtils::API_NAMESPACE::Ad.new(
      active: true,
      campaign_id: campaign_id,
      creative_rotation: creative_rotation,
      delivery_schedule: delivery_schedule,
      end_time: format('%sT00:00:00Z', campaign.end_date),
      name: 'Example Rotation Group',
      placement_assignments: [placement_assignment],
      start_time: format('%sT23:59:59Z', Time.now.strftime('%Y-%m-%d')),
      type: 'AD_SERVING_STANDARD_AD'
    )
    
  5. احفظ الإعلان عن طريق الاتصال بالرقم ads.insert().
    result = service.insert_ad(profile_id, ad)
    

ضمنيًا

C#

  1. أنشِئ Placement واحفظها.
  2. أنشِئ Creative واحفظها.
  3. اربط Creative بالمنتج Campaign نفسه المستخدَم مع Placement من خلال الاتصال بـ campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضع الإعلان.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.CreativeId = creativeId;
    
    // Insert the association.
    CampaignCreativeAssociation result =
        service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();
    

Java

  1. أنشِئ Placement واحفظه.
  2. أنشِئ Creative واحفظه.
  3. اربط Creative بالمنتج Campaign نفسه المستخدَم مع Placement من خلال الاتصال بـ campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضع الإعلان.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.setCreativeId(creativeId);
    
    // Insert the association.
    CampaignCreativeAssociation result = reporting
        .campaignCreativeAssociations().insert(profileId, campaignId, association)
        .execute();
    

PHP

  1. أنشِئ Placement واحفظها.
  2. أنشِئ Creative واحفظه.
  3. اربط Creative بالمنتج Campaign نفسه المستخدَم مع Placement من خلال الاتصال بـ campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضع الإعلان.
    $association =
        new Google_Service_Dfareporting_CampaignCreativeAssociation();
    $association->setCreativeId($values['creative_id']);
    
    $result = $this->service->campaignCreativeAssociations->insert(
        $values['user_profile_id'],
        $values['campaign_id'],
        $association
    );
    

Python

  1. أنشِئ Placement واحفظه.
  2. أنشِئ Creative واحفظها.
  3. اربط Creative بالمنتج Campaign نفسه المستخدَم مع Placement من خلال الاتصال بـ campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضع الإعلان.
    # Construct the request.
    association = {
        'creativeId': creative_id
    }
    
    request = service.campaignCreativeAssociations().insert(
        profileId=profile_id, campaignId=campaign_id, body=association)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. أنشِئ Placement واحفظه.
  2. أنشِئ Creative واحفظه.
  3. اربط Creative بالمنتج Campaign نفسه المستخدَم مع Placement من خلال الاتصال بـ campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكل من تصميم الإعلان وموضع الإعلان.
    # 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)
    

يؤدي إنشاء إعلان إلى توفير الخطوة الإضافية لإنشاء Ad بشكل ضمني. تجدر الإشارة إلى أنّه يمكن إجراء ذلك فقط في حال عدم وجود إعلان افتراضي بالحجم المحدّد في حملتك.

البحث عن عناصر

يمكنك البحث عن العناصر من خلال استدعاء العملية list() المعروضة من خلال الخدمة التي تحدّد الكائن للعثور عليه، مع تحديد المعايير الاختيارية المناسبة لنوع هذا الكائن. على سبيل المثال، للبحث عن كائنات الإعلانات، يمكنك طلب ads.list(). تعرض المعايير الاختيارية مجموعة من السمات المناسبة لهذا العنصر، ويمكنك ملء أكبر عدد ممكن من السمات في البحث عنها. لن يعرض البحث سوى العناصر التي تستوفي جميع معاييرك، ولا يمكنك إجراء بحث يتطابق مع أي معايير. تتيح السلاسل حرف البدل *، ولا تكون حسّاسة لحالة الأحرف، وتتطابق ضمن السلاسل الأكبر حجمًا.

لتحسين الأداء، يمكن طلب ردود جزئية باستخدام المعلَمة fields. وهذا يوجه الخادم إلى عرض الحقول التي تحددها فقط، بدلاً من التمثيل الكامل للموارد. يمكنك الاطّلاع على مزيد من المعلومات حول هذا الموضوع في دليل نصائح الأداء.

ترقيم الصفحات

قد لا يكون من المستحسن أحيانًا استرداد جميع النتائج لطلب list(). على سبيل المثال، قد تكون مهتمًا فقط بآخر 10 إعلانات من مجموعة الآلاف. للمساعدة في ذلك، تتيح لك العديد من طُرق list() طلب نتائج أقل من خلال عملية تُعرف باسم نقل الصفحات.

الطرق التي تتيح التقسيم على صفحات تعرض مجموعات فرعية من النتائج في مجموعات تُسمى الصفحات يبلغ الحد الأقصى لعدد النتائج لكل صفحة 1,000 نتيجة (العدد التلقائي). يمكنك تغيير عدد النتائج لكل صفحة من خلال ضبط maxResults، كما يمكنك التكرار خلال الصفحات باستخدام nextPageToken التي يتم عرضها في الاستجابة:

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

إنشاء علامات Floodlight

علامات Floodlight هي علامات HTML مضمّنة في إحدى الصفحات وتُستخدَم لتتبُّع إجراءات المستخدِمين (مثل عمليات الشراء) داخل الموقع الإلكتروني. لإنشاء علامات Floodlight، تحتاج إلى FloodlightActivity خاص بـ FloodlightActivityGroup:

C#

  1. يمكنك إنشاء مجموعة أنشطة جديدة على Floodlight مع ضبط قِيَم name وtype وfloodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.Name = groupName;
    floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId;
    floodlightActivityGroup.Type = "COUNTER";
    
  2. أنقِذ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، والذي سيعرض رقم تعريف المجموعة الجديدة.
    // Insert the activity group.
    FloodlightActivityGroup result =
        service.FloodlightActivityGroups.Insert(floodlightActivityGroup, profileId).Execute();
    
  3. أنشِئ نشاطًا جديدًا على Floodlight، واضبط رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    // Set floodlight activity structure.
    FloodlightActivity activity = new FloodlightActivity();
    activity.CountingMethod = "STANDARD_COUNTING";
    activity.Name = activityName;
    activity.FloodlightActivityGroupId = activityGroupId;
    activity.FloodlightTagType = "GLOBAL_SITE_TAG";
    activity.ExpectedUrl = url;
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والتي ستعرض رقم تعريف النشاط الجديد.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        service.FloodlightActivities.Insert(activity, profileId).Execute();
    
  5. إنشاء العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId من نشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    // Generate the floodlight activity tag.
    FloodlightActivitiesResource.GeneratetagRequest request =
        service.FloodlightActivities.Generatetag(profileId);
    request.FloodlightActivityId = activityId;
    
    FloodlightActivitiesGenerateTagResponse response = request.Execute();
    

Java

  1. يمكنك إنشاء مجموعة أنشطة جديدة على Floodlight مع ضبط قِيَم name وtype وfloodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.setName(groupName);
    floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId);
    floodlightActivityGroup.setType("COUNTER");
    
  2. أنقِذ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، والذي سيعرض رقم تعريف المجموعة الجديدة.
    // Insert the activity group.
    FloodlightActivityGroup result =
        reporting.floodlightActivityGroups().insert(profileId, floodlightActivityGroup).execute();
    
  3. أنشِئ نشاطًا جديدًا على Floodlight، واضبط رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    // Set floodlight activity structure.
    FloodlightActivity activity = new FloodlightActivity();
    activity.setName(activityName);
    activity.setCountingMethod("STANDARD_COUNTING");
    activity.setExpectedUrl(url);
    activity.setFloodlightActivityGroupId(activityGroupId);
    activity.setFloodlightTagType("GLOBAL_SITE_TAG");
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والتي ستعرض رقم تعريف النشاط الجديد.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        reporting.floodlightActivities().insert(profileId, activity).execute();
    
  5. إنشاء العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId من نشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    // Generate the floodlight activity tag.
    Generatetag request = reporting.floodlightActivities().generatetag(profileId);
    request.setFloodlightActivityId(activityId);
    
    FloodlightActivitiesGenerateTagResponse response = request.execute();
    

PHP

  1. يمكنك إنشاء مجموعة أنشطة جديدة على Floodlight مع ضبط قِيَم name وtype وfloodlightConfigurationId.
    $group = new Google_Service_Dfareporting_FloodlightActivityGroup();
    $group->setFloodlightConfigurationId($values['configuration_id']);
    $group->setName($values['group_name']);
    $group->setType('COUNTER');
    
  2. أنقِذ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، والذي سيعرض رقم تعريف المجموعة الجديدة.
    $result = $this->service->floodlightActivityGroups->insert(
        $values['user_profile_id'],
        $group
    );
    
  3. أنشِئ نشاطًا جديدًا على Floodlight، واضبط رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    $activity = new Google_Service_Dfareporting_FloodlightActivity();
    $activity->setCountingMethod('STANDARD_COUNTING');
    $activity->setExpectedUrl($values['url']);
    $activity->setFloodlightActivityGroupId($values['activity_group_id']);
    $activity->setFloodlightTagType('GLOBAL_SITE_TAG');
    $activity->setName($values['activity_name']);
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والتي ستعرض رقم تعريف النشاط الجديد.
    $result = $this->service->floodlightActivities->insert(
        $values['user_profile_id'],
        $activity
    );
    
  5. إنشاء العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId من نشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    $result = $this->service->floodlightActivities->generatetag(
        $values['user_profile_id'],
        ['floodlightActivityId' => $values['activity_id']]
    );
    

Python

  1. يمكنك إنشاء مجموعة أنشطة جديدة على Floodlight مع ضبط قِيَم name وtype وfloodlightConfigurationId.
    # Construct and save floodlight activity group.
    activity_group = {
        'name': 'Test Floodlight Activity Group',
        'floodlightConfigurationId': floodlight_config_id,
        'type': 'COUNTER'
    }
    
  2. أنقِذ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، والذي سيعرض رقم تعريف المجموعة الجديدة.
    request = service.floodlightActivityGroups().insert(
        profileId=profile_id, body=activity_group)
    
  3. أنشِئ نشاطًا جديدًا على Floodlight، واضبط رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    # Construct and save floodlight activity.
    floodlight_activity = {
        'countingMethod': 'STANDARD_COUNTING',
        'expectedUrl': 'http://www.google.com',
        'floodlightActivityGroupId': activity_group_id,
        'floodlightTagType': 'GLOBAL_SITE_TAG',
        'name': 'Test Floodlight Activity'
    }
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والتي ستعرض رقم تعريف النشاط الجديد.
    request = service.floodlightActivities().insert(
        profileId=profile_id, body=floodlight_activity)
    
  5. إنشاء العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId من نشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    # Construct the request.
    request = service.floodlightActivities().generatetag(
        profileId=profile_id, floodlightActivityId=activity_id)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. يمكنك إنشاء مجموعة أنشطة جديدة على Floodlight مع ضبط قِيَم name وtype وfloodlightConfigurationId.
    # Create a new floodlight activity group resource to insert.
    activity_group =
      DfareportingUtils::API_NAMESPACE::FloodlightActivityGroup.new(
        floodlight_configuration_id: floodlight_config_id,
        name:
          format('Example Floodlight Activity Group #%s', SecureRandom.hex(3)),
        type: 'COUNTER'
      )
    
  2. أنقِذ مجموعة أنشطة Floodlight من خلال الاتصال بالرقم floodlightActivityGroups.insert()، والذي سيعرض رقم تعريف المجموعة الجديدة.
    # Insert the floodlight activity group.
    result = service.insert_floodlight_activity_group(profile_id, activity_group)
    
  3. أنشِئ نشاطًا جديدًا على Floodlight، واضبط رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    # Create a new floodlight activity resource to insert.
    activity = DfareportingUtils::API_NAMESPACE::FloodlightActivity.new(
      counting_method: 'STANDARD_COUNTING',
      expected_url: 'http://www.google.com',
      floodlight_activity_group_id: activity_group_id,
      floodlight_tag_type: 'GLOBAL_SITE_TAG',
      name: format('Example Floodlight Activity #%s', SecureRandom.hex(3))
    )
    
  4. احفظ النشاط الجديد من خلال الاتصال بـ floodlightActivities.insert()، والتي ستعرض رقم تعريف النشاط الجديد.
    # Insert the floodlight activity.
    result = service.insert_floodlight_activity(profile_id, activity)
    
  5. إنشاء العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId من نشاطك الجديد. أرسِل العلامات إلى مشرف الموقع على الموقع الإلكتروني للمعلِن.
    # Construct the request.
    result = service.generatetag_floodlight_activity(profile_id,
      floodlight_activity_id: activity_id)
    

إنشاء علامات مواضع الإعلانات

تتمثل الخطوة الأخيرة في إنشاء علامات HTML لإرسالها إلى الناشر لعرض إعلاناتك. لإنشاء العلامات من خلال واجهة برمجة التطبيقات، قدِّم طلبًا إلى placements.generatetags()، مع تحديد مجموعة من placementIds و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])